From 1393b148dbdcd0001db50e2045d037087aa76241 Mon Sep 17 00:00:00 2001 From: Israel Garcia Date: Tue, 16 May 2017 02:20:30 -0400 Subject: [PATCH] Autocomplete final refactory --- dist/jsoneditor-minimalist.js | 29 ++++++- dist/jsoneditor-minimalist.map | 2 +- dist/jsoneditor-minimalist.min.js | 6 +- dist/jsoneditor.js | 29 ++++++- dist/jsoneditor.map | 2 +- dist/jsoneditor.min.js | 22 ++--- examples/06_custom_styling.html | 115 ++++++------------------- examples/11_autocomplete.html | 112 ++++++++++++++++++++++++ {src/js => examples}/autocomplete.js | 124 ++++++++------------------- src/js/treemode.js | 13 +-- 10 files changed, 249 insertions(+), 205 deletions(-) create mode 100644 examples/11_autocomplete.html rename {src/js => examples}/autocomplete.js (76%) diff --git a/dist/jsoneditor-minimalist.js b/dist/jsoneditor-minimalist.js index 35c43bb..239abd7 100644 --- a/dist/jsoneditor-minimalist.js +++ b/dist/jsoneditor-minimalist.js @@ -25,7 +25,7 @@ * * @author Jos de Jong, * @version 5.6.0 - * @date 2017-04-15 + * @date 2017-05-16 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -164,7 +164,7 @@ return /******/ (function(modules) { // webpackBootstrap // validate options if (options) { var VALID_OPTIONS = [ - 'ace', 'theme', + 'ace', 'theme','autocomplete', 'ajv', 'schema', 'onChange', 'onEditable', 'onError', 'onModeChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys' @@ -485,6 +485,7 @@ return /******/ (function(modules) { // webpackBootstrap var ModeSwitcher = __webpack_require__(11); var util = __webpack_require__(4); + // create a mixin with the functions for tree mode var treemode = {}; @@ -583,7 +584,8 @@ return /******/ (function(modules) { // webpackBootstrap history: true, mode: 'tree', name: undefined, // field name of root node - schema: null + schema: null, + autocomplete: null }; // copy all options @@ -1527,7 +1529,9 @@ return /******/ (function(modules) { // webpackBootstrap */ treemode._onKeyDown = function (event) { var keynum = event.which || event.keyCode; + var altKey = event.altKey; var ctrlKey = event.ctrlKey; + var metaKey = event.metaKey; var shiftKey = event.shiftKey; var handled = false; @@ -1573,6 +1577,25 @@ return /******/ (function(modules) { // webpackBootstrap } } + if ((this.options.autocomplete) && (!handled)) { + if (!ctrlKey && !altKey && !metaKey && (event.key.length == 1 || keynum == 8 || keynum == 46)) { + handled = false; + if ((this.options.autocomplete.ApplyTo.indexOf('values') >= 0 && event.target.className.indexOf("jsoneditor-value") >= 0) || + (this.options.autocomplete.ApplyTo.indexOf('name') >= 0 && event.target.className.indexOf("jsoneditor-field") >= 0)) { + var node = Node.getNodeFromTarget(event.target); + if (this.options.autocomplete.ActivationChar == null || event.target.innerText.startsWith(this.options.autocomplete.ActivationChar)) { // Activate autocomplete + setTimeout(function (hnode, element) { + if (element.innerText.length > 0) + this.options.autocomplete.Show(hnode, element); + else + this.options.autocomplete.Hide(); + + }.bind(this, node, event.target), 100); + } + } + } + } + if (handled) { event.preventDefault(); event.stopPropagation(); diff --git a/dist/jsoneditor-minimalist.map b/dist/jsoneditor-minimalist.map index d28e55e..69ea987 100644 --- a/dist/jsoneditor-minimalist.map +++ b/dist/jsoneditor-minimalist.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","Node","ModeSwitcher","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","hasOwnProperty","debounce","bind","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","reduce","all","findParents","parent","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","_onKeyDown","_startDragDistance","_updateDragDistance","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","getNodePath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","previous","next","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","push","click","onDuplicate","onRemove","close","show","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","index","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","obj","oldSelection","newSelection","jsonlint","jsonString","sanitize","jsString","curr","charAt","prev","chars","match","quote","test","pp","specialValues","key","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","removeClassName","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","element","buffer","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","createMenuItems","list","domItems","item","separator","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","path","getPath","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","titles","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","position","ace","indentation","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","on","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","row","getLine","column","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","lang","HashHandler","keyUtil","importCssString","showReplaceForm","div","$init","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","$syncOptions","setCssClass","$search","$options","renderer","updateBackMarkers","skipCurrent","backwards","preventScroll","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","getReadOnly","replaceAndFindNext","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","el","activeElement","Search","getTextRange","isDark","cssClass","cssText"],"mappings":"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","file":"jsoneditor-minimalist"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor-minimalist.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","e","code","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","Highlighter","History","SearchBox","ContextMenu","Node","ModeSwitcher","dom","highlighter","selection","undefined","multiselection","nodes","errorNodes","node","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","search","autocomplete","hasOwnProperty","debounce","bind","Function","content","table","params","field","value","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","updateField","focus","input","querySelector","menu","collapse","tbody","getDom","text","results","expandAll","collapseAll","_onAction","action","add","_onChange","setError","duplicateErrors","schemaErrors","errors","map","improveSchemaError","findNode","dataPath","filter","entry","concat","reduce","all","findParents","parent","child","message","type","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","slice","scrollTo","callback","editor","animateTimeout","animateCallback","finalScrollTop","Math","min","max","animate","diff","abs","setTimeout","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","title","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","_onKeyDown","_startDragDistance","_updateDragDistance","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","window","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","Array","first","startPath","getNodePath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","lastIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","next","key","ApplyTo","ActivationChar","innerText","startsWith","hnode","element","Show","Hide","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","items","push","click","onDuplicate","onRemove","close","show","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","index","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","sort","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","Date","splice","obj","oldSelection","newSelection","jsonlint","jsonString","sanitize","jsString","curr","charAt","prev","chars","match","quote","test","pp","specialValues","regexp","join","escapeUnicodeChars","replace","charCodeAt","toString","a","b","object","Number","String","Boolean","RegExp","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","split","removeClassName","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","j","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","exec","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","f","detachEvent","parsePath","jsonPath","remainder","substr","SyntaxError","substring","keyword","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","args","later","apply","callNow","textDiff","oldText","newText","len","oldEnd","newEnd","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","2","4","6","8","10","11","14","17","18","21","22","23","24","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","str","hash","lex","token","self","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","r","newState","expected","yyval","errStr","showPosition","line","loc","n","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","ch","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","rules","_currentRules","flex","begin","condition","popState","pop","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","createMenuItems","list","domItems","item","separator","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","overflow","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","fn","alreadyVisible","padding","display","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","path","getPath","unshift","shift","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","arr","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","toLowerCase","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","count","checkbox","tdCheckbox","checked","enum","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","level","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","oneOf","anyOf","allOf","childSchema","properties","_createDomValue","href","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","array","string","titles","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","s","insensitive","x","y","xN","yN","xD","parseInt","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","position","ace","indentation","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","format","buttonCompact","compact","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","Infinity","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","on","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","acequire","oop","TextHighlightRules","JsonHighlightRules","$rules","regex","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","row","getLine","column","openBracePos","findMatchingBracket","indent","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","source","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","depth","TextMode","Mode","HighlightRules","CstyleBehaviour","CStyleFoldMode","WorkerClient","$outdent","$behaviour","foldingRules","getNextLineIndent","tab","createWorker","worker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","src","lang","HashHandler","keyUtil","importCssString","showReplaceForm","div","$init","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","addListener","activeInput","t","getAttribute","$searchBarKb","addCommandKeyListener","hashId","keyString","keyCodeToString","command","findKeyCommand","stopEvent","$onChange","delayedCall","find","schedule","$closeSearchBarKb","bindKeys","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","findNext","Ctrl-Shift-G|Command-Shift-G","findPrev","esc","Return","Shift-Return","Alt-Return","replaceAll","findAll","Tab","addCommands","win","mac","$syncOptions","setCssClass","$search","$options","renderer","updateBackMarkers","skipCurrent","backwards","preventScroll","wrap","regExp","caseSensitive","wholeWord","noMatch","_emit","getReadOnly","replaceAndFindNext","keyBinding","removeKeyboardHandler","addKeyboardHandler","isFocused","el","activeElement","Search","getTextRange","isDark","cssClass","cssText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,KACpBK,KAAM,WACT,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUP,OAGnC,IAAIC,GAASO,EAAiBD,IAC7BP,WACAS,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOS,QAAS,EAGTT,EAAOD,QAvBf,GAAIQ,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAASL,EAAQD,EAASM,GAE/B,YAgDA,SAASS,GAAYC,EAAWC,EAASC,GACvC,KAAMd,eAAgBW,IACpB,KAAM,IAAII,OAAM,+CAIlB,IAAIC,GAAYC,EAAKC,4BACrB,KAAkB,GAAdF,GAAmBA,EAAY,EACjC,KAAM,IAAID,OAAM,iGAIlB,IAAIF,IAEEA,EAAQM,QACVC,QAAQC,KAAK,gDACbR,EAAQS,QAAUT,EAAQM,YACnBN,GAAQM,OAEbN,EAAQU,SACVH,QAAQC,KAAK,kDACbR,EAAQW,SAAWX,EAAQU,aACpBV,GAAQU,QAEbV,EAAQY,WACVL,QAAQC,KAAK,sDACbR,EAAQa,WAAab,EAAQY,eACtBZ,GAAQY,UAIbZ,GAAS,CACX,GAAIc,IACF,MAAO,QAAQ,eACf,MAAO,SACP,WAAY,aAAc,UAAW,eACrC,gBAAiB,UAAW,SAAU,OAAQ,QAAS,OAAQ,cAAe,iBAGhFC,QAAOC,KAAKhB,GAASiB,QAAQ,SAAUC,IACE,IAAnCJ,EAAcK,QAAQD,IACxBX,QAAQC,KAAK,mBAAqBU,EAAS,oCAM/CE,UAAUC,QACZlC,KAAKmC,QAAQvB,EAAWC,EAASC,GA9FrC,GAAIsB,EACJ,KACEA,EAAMlC,GAAsB,WAAkC,GAAImC,GAAI,GAAItB,OAAM,2BAA4D,MAA7BsB,GAAEC,KAAO,mBAA0BD,MAEpJ,MAAOE,IAIP,GAAIC,GAAWtC,EAAoB,GAC/BuC,EAAWvC,EAAoB,IAC/Be,EAAOf,EAAoB,EAuG/BS,GAAW+B,SAGX/B,EAAWgC,UAAUC,kBAAoB,IASzCjC,EAAWgC,UAAUR,QAAU,SAAUvB,EAAWC,EAASC,GAC3Dd,KAAKY,UAAYA,EACjBZ,KAAKa,QAAUA,MACfb,KAAKc,KAAOA,KAEZ,IAAI+B,GAAO7C,KAAKa,QAAQgC,MAAQ,MAChC7C,MAAK8C,QAAQD,IAMflC,EAAWgC,UAAUI,QAAU,aAM/BpC,EAAWgC,UAAUK,IAAM,SAAUlC,GACnCd,KAAKc,KAAOA,GAOdH,EAAWgC,UAAUM,IAAM,WACzB,MAAOjD,MAAKc,MAOdH,EAAWgC,UAAUO,QAAU,SAAUC,GACvCnD,KAAKc,KAAOG,EAAKmC,MAAMD,IAOzBxC,EAAWgC,UAAUU,QAAU,WAC7B,MAAOC,MAAKC,UAAUvD,KAAKc,OAO7BH,EAAWgC,UAAUa,QAAU,SAAUC,GAClCzD,KAAKa,UACRb,KAAKa,YAEPb,KAAKa,QAAQ4C,KAAOA,GAOtB9C,EAAWgC,UAAUe,QAAU,WAC7B,MAAO1D,MAAKa,SAAWb,KAAKa,QAAQ4C,MAStC9C,EAAWgC,UAAUG,QAAU,SAAUD,GACvC,GAGIc,GACAF,EAJA7C,EAAYZ,KAAKY,UACjBC,EAAUI,EAAK2C,UAAW5D,KAAKa,SAC/BgD,EAAUhD,EAAQgC,IAItBhC,GAAQgC,KAAOA,CACf,IAAIiB,GAASnD,EAAW+B,MAAMG,EAC9B,KAAIiB,EAqCF,KAAM,IAAI/C,OAAM,iBAAmBF,EAAQgC,KAAO,IApClD,KACE,GAAIkB,GAAyB,QAAfD,EAAOH,IAYrB,IAXAF,EAAOzD,KAAK0D,UACZC,EAAO3D,KAAK+D,EAAS,UAAY,SAEjC/D,KAAK+C,UACL9B,EAAK+C,MAAMhE,MACXiB,EAAK2C,OAAO5D,KAAM8D,EAAOG,OACzBjE,KAAKkE,OAAOtD,EAAWC,GAEvBb,KAAKwD,QAAQC,GACbzD,KAAK+D,EAAS,UAAY,OAAOJ,GAEN,kBAAhBG,GAAOK,KAChB,IACEL,EAAOK,KAAK5D,KAAKP,MAEnB,MAAOuC,GACLnB,QAAQD,MAAMoB,GAIlB,GAAoC,kBAAzB1B,GAAQuD,cAA+BvB,IAASgB,EACzD,IACEhD,EAAQuD,aAAavB,EAAMgB,GAE7B,MAAOtB,GACLnB,QAAQD,MAAMoB,IAIpB,MAAOA,GACLvC,KAAKqE,SAAS9B,KAYpB5B,EAAWgC,UAAU2B,QAAU,WAC7B,MAAOtE,MAAKa,QAAQgC,MAStBlC,EAAWgC,UAAU0B,SAAW,SAAS9B,GACvC,IAAIvC,KAAKa,SAA2C,kBAAzBb,MAAKa,QAAQS,QAItC,KAAMiB,EAHNvC,MAAKa,QAAQS,QAAQiB,IAYzB5B,EAAWgC,UAAU4B,UAAY,SAAUC,GAEzC,GAAIA,EAAQ,CACV,GAAIC,EACJ,KAEEA,EAAMzE,KAAKa,QAAQ4D,KAAOrC,GAAMsC,WAAW,EAAMC,SAAS,IAG5D,MAAOpC,GACLnB,QAAQC,KAAK,iMAGXoD,IACFzE,KAAK4E,eAAiBH,EAAII,QAAQL,GAIlCxE,KAAKa,QAAQ2D,OAASA,EAGtBxE,KAAK8E,YAGP9E,KAAK+E,cAIL/E,MAAK4E,eAAiB,KACtB5E,KAAKa,QAAQ2D,OAAS,KACtBxE,KAAK8E,WACL9E,KAAK+E,WAQTpE,EAAWgC,UAAUmC,SAAW,aAOhCnE,EAAWgC,UAAUoC,QAAU,aAuB/BpE,EAAWqE,aAAe,SAAUnC,GAClC,GAAIoC,GAAGC,CAEP,IAAIjE,EAAKkE,QAAQtC,GAEf,IAAKoC,EAAI,EAAGA,EAAIpC,EAAKX,OAAQ+C,IAC3BtE,EAAWqE,aAAanC,EAAKoC,QAG5B,CAEH,KAAM,QAAUpC,IAAO,KAAM,IAAI9B,OAAM,0BACvC,MAAM,SAAW8B,IAAO,KAAM,IAAI9B,OAAM,2BACxC,MAAM,QAAU8B,IAAO,KAAM,IAAI9B,OAAM,0BACvC,IAAI0C,GAAOZ,EAAKA,IAChB,IAAIY,IAAQ9C,GAAW+B,MACrB,KAAM,IAAI3B,OAAM,SAAW0C,EAAO,uBAIpC,IAAiC,kBAAtBZ,GAAKoB,MAAMC,OACpB,KAAM,IAAInD,OAAM,8CAElB,IAAIqE,IAAY,UAAW,eAAgB,QAC3C,KAAKH,EAAI,EAAGA,EAAIG,EAASlD,OAAQ+C,IAE/B,IADAC,EAAOE,EAASH,KACJpC,GAAKoB,MACf,KAAM,IAAIlD,OAAM,sBAAwBmE,EAAO,yBAInDvE,GAAW+B,MAAMe,GAAQZ,IAK7BlC,EAAWqE,aAAaxC,GACxB7B,EAAWqE,aAAavC,GAExB5C,EAAOD,QAAUe,GAKZ,SAASd,EAAQD,EAASM,GAE/B,YAGA,IAAImF,GAAcnF,EAAoB,GAClCoF,EAAUpF,EAAoB,GAC9BqF,EAAYrF,EAAoB,GAChCsF,EAActF,EAAoB,GAClCuF,EAAOvF,EAAoB,GAC3BwF,EAAexF,EAAoB,IACnCe,EAAOf,EAAoB,GAI3BsC,IAsBJA,GAAS0B,OAAS,SAAUtD,EAAWC,GACrC,IAAKD,EACH,KAAM,IAAIG,OAAM,iCAElBf,MAAKY,UAAYA,EACjBZ,KAAK2F,OACL3F,KAAK4F,YAAc,GAAIP,GACvBrF,KAAK6F,cAAYC,GACjB9F,KAAK+F,gBACHC,UAEFhG,KAAK4E,eAAiB,KACtB5E,KAAKiG,cAELjG,KAAKkG,KAAO,KACZlG,KAAKmG,YAAc,KAEnBnG,KAAKoG,YAAYvF,GAEbb,KAAKa,QAAQwF,SAAiC,SAAtBrG,KAAKa,QAAQgC,OACvC7C,KAAKqG,QAAU,GAAIf,GAAQtF,OAG7BA,KAAKsG,eACLtG,KAAKuG,gBAMP/D,EAASO,QAAU,WACb/C,KAAKwG,OAASxG,KAAKY,WAAaZ,KAAKwG,MAAMC,YAAczG,KAAKY,YAChEZ,KAAKY,UAAU8F,YAAY1G,KAAKwG,OAChCxG,KAAKwG,MAAQ,MAEfxG,KAAKY,UAAY,KAEjBZ,KAAK2F,IAAM,KAEX3F,KAAKgE,QACLhE,KAAKkG,KAAO,KACZlG,KAAKmG,YAAc,KACnBnG,KAAK6F,UAAY,KACjB7F,KAAK+F,eAAiB,KACtB/F,KAAKiG,WAAa,KAClBjG,KAAK4E,eAAiB,KACtB5E,KAAK2G,mBAAqB,KAEtB3G,KAAKqG,UACPrG,KAAKqG,QAAQtD,UACb/C,KAAKqG,QAAU,MAGbrG,KAAK4G,YACP5G,KAAK4G,UAAU7D,UACf/C,KAAK4G,UAAY,MAGf5G,KAAK6G,eACP7G,KAAK6G,aAAa9D,UAClB/C,KAAK6G,aAAe,OASxBrE,EAAS4D,YAAc,SAAUvF,GAW/B,GAVAb,KAAKa,SACHiG,QAAQ,EACRT,SAAS,EACTxD,KAAM,OACNY,SAAMqC,GACNtB,OAAQ,KACRuC,aAAc,MAIZlG,EACF,IAAK,GAAIqE,KAAQrE,GACXA,EAAQmG,eAAe9B,KACzBlF,KAAKa,QAAQqE,GAAQrE,EAAQqE,GAMnClF,MAAKuE,UAAUvE,KAAKa,QAAQ2D,QAG5BxE,KAAK2G,mBAAqB1F,EAAKgG,SAASjH,KAAK8E,SAASoC,KAAKlH,MAAOA,KAAK4C,oBASzEJ,EAASQ,IAAM,SAAUlC,EAAM2C,GAS7B,GAPIA,IAEFrC,QAAQC,KAAK,qEACbrB,KAAKa,QAAQ4C,KAAOA,GAIlB3C,YAAgBqG,eAAsBrB,KAAThF,EAC/Bd,KAAKgE,YAEF,CACHhE,KAAKoH,QAAQV,YAAY1G,KAAKqH,MAG9B,IAAIC,IACFC,MAAOvH,KAAKa,QAAQ4C,KACpB+D,MAAO1G,GAELoF,EAAO,GAAIT,GAAKzF,KAAMsH,EAC1BtH,MAAKyH,SAASvB,GAGdlG,KAAK8E,UAIL9E,MAAKkG,KAAKwB,QADI,GAGd1H,KAAKoH,QAAQO,YAAY3H,KAAKqH,OAI5BrH,KAAKqG,SACPrG,KAAKqG,QAAQrC,QAIXhE,KAAK4G,WACP5G,KAAK4G,UAAU5C,SAQnBxB,EAASS,IAAM,WAEb,GAAIjD,KAAKmG,YAAa,CACpB,GAAID,GAAOT,EAAKmC,kBAAkB5H,KAAKmG,YACnCD,IACFA,EAAK2B,OAIT,MAAI7H,MAAKkG,KACAlG,KAAKkG,KAAK4B,eAGjB,IAQJtF,EAASa,QAAU,WACjB,MAAOC,MAAKC,UAAUvD,KAAKiD,QAO7BT,EAASU,QAAU,SAASC,GAC1BnD,KAAKgD,IAAI/B,EAAKmC,MAAMD,KAOtBX,EAASgB,QAAU,SAAUC,GAC3BzD,KAAKa,QAAQ4C,KAAOA,EAChBzD,KAAKkG,MACPlG,KAAKkG,KAAK6B,YAAY/H,KAAKa,QAAQ4C,OAQvCjB,EAASkB,QAAU,WACjB,MAAO1D,MAAKa,QAAQ4C,MAUtBjB,EAASwF,MAAQ,WACf,GAAIC,GAAQjI,KAAKoH,QAAQc,cAAc,yBACnCD,GACFA,EAAMD,QAEChI,KAAKkG,KAAKP,IAAI+B,OACrB1H,KAAKkG,KAAKP,IAAI+B,OAAOM,QAEdhI,KAAKkG,KAAKP,IAAIwC,KACrBnI,KAAKkG,KAAKP,IAAIwC,KAAKH,SAInBC,EAAQjI,KAAKwG,MAAM0B,cAAc,YAE/BD,EAAMD,SAQZxF,EAASwB,MAAQ,WACXhE,KAAKkG,OACPlG,KAAKkG,KAAKkC,WACVpI,KAAKqI,MAAM3B,YAAY1G,KAAKkG,KAAKoC,gBAC1BtI,MAAKkG,OAShB1D,EAASiF,SAAW,SAAUvB,GAC5BlG,KAAKgE,QAELhE,KAAKkG,KAAOA,EAGZlG,KAAKqI,MAAMV,YAAYzB,EAAKoC,WAe9B9F,EAASsE,OAAS,SAAUyB,GAC1B,GAAIC,EAUJ,OATIxI,MAAKkG,MACPlG,KAAKoH,QAAQV,YAAY1G,KAAKqH,OAC9BmB,EAAUxI,KAAKkG,KAAKY,OAAOyB,GAC3BvI,KAAKoH,QAAQO,YAAY3H,KAAKqH,QAG9BmB,KAGKA,GAMThG,EAASiG,UAAY,WACfzI,KAAKkG,OACPlG,KAAKoH,QAAQV,YAAY1G,KAAKqH,OAC9BrH,KAAKkG,KAAKwB,SACV1H,KAAKoH,QAAQO,YAAY3H,KAAKqH,SAOlC7E,EAASkG,YAAc,WACjB1I,KAAKkG,OACPlG,KAAKoH,QAAQV,YAAY1G,KAAKqH,OAC9BrH,KAAKkG,KAAKkC,WACVpI,KAAKoH,QAAQO,YAAY3H,KAAKqH,SAkBlC7E,EAASmG,UAAY,SAAUC,EAAQtB,GAEjCtH,KAAKqG,SACPrG,KAAKqG,QAAQwC,IAAID,EAAQtB,GAG3BtH,KAAK8I,aASPtG,EAASsG,UAAY,WAKnB,GAHA9I,KAAK2G,qBAGD3G,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOe,GACLnB,QAAQD,MAAM,+BAAgCoB,KASpDC,EAASsC,SAAW,WAEd9E,KAAKiG,YACPjG,KAAKiG,WAAWnE,QAAQ,SAAUoE,GAChCA,EAAK6C,SAAS,OAIlB,IAAIrJ,GAAOM,KAAKkG,IAChB,IAAKxG,EAAL,CAKA,GAAIsJ,GAAkBtJ,EAAKoF,WAGvBmE,IACJ,IAAIjJ,KAAK4E,eAAgB,CACX5E,KAAK4E,eAAelF,EAAKoI,cAGnCmB,EAAejJ,KAAK4E,eAAesE,OAC9BC,IAAI,SAAUhI,GACb,MAAOF,GAAKmI,mBAAmBjI,KAEhCgI,IAAI,SAAmBhI,GACtB,OACE+E,KAAMxG,EAAK2J,SAASlI,EAAMmI,UAC1BnI,MAAOA,KAGVoI,OAAO,SAAkBC,GACxB,MAAqB,OAAdA,EAAMtD,QAMvBlG,KAAKiG,WAAa+C,EACbS,OAAOR,GACPS,OAAO,SAAwBC,EAAKH,GAGnC,MAAOA,GAAMtD,KACR0D,cACAT,IAAI,SAAUU,GACb,OACE3D,KAAM2D,EACNC,MAAON,EAAMtD,KACb/E,OACE4I,QAAyB,WAAhBF,EAAOG,KACV,8BACA,6BAIXP,OAAOE,GAAMH,SAGnBL,IAAI,SAAmBK,GAEtB,MADAA,GAAMtD,KAAK6C,SAASS,EAAMrI,MAAOqI,EAAMM,OAChCN,EAAMtD,SAOrB1D,EAASuC,QAAU,WACb/E,KAAKkG,MACPlG,KAAKkG,KAAK+D,WAAWC,SAAS,KASlC1H,EAAS2H,gBAAkB,SAAUC,GACnC,GAAIC,GAAKrK,KACLoH,EAAUpH,KAAKoH,QACfkD,EAAMrJ,EAAKsJ,eAAenD,GAC1BoD,EAASpD,EAAQqD,aACjBC,EAASJ,EAAME,CAIdJ,GAASE,EAHD,IAGkBlD,EAAQuD,UAAY,EACjD3K,KAAK4K,gBAAmBN,EAJb,GAI6BF,GAAU,EAE3CA,EAASM,EANL,IAOTF,EAASpD,EAAQuD,UAAYvD,EAAQyD,aACvC7K,KAAK4K,gBAAmBF,EARb,GAQgCN,GAAU,EAGrDpK,KAAK4K,mBAAiB9E,GAGpB9F,KAAK4K,eACF5K,KAAK8K,kBACR9K,KAAK8K,gBAAkBC,YAAY,WAC7BV,EAAGO,eACLxD,EAAQuD,WAAaN,EAAGO,eAGxBP,EAAGW,kBApBI,KA0BbhL,KAAKgL,kBAOTxI,EAASwI,eAAiB,WACpBhL,KAAK8K,kBACPG,aAAajL,KAAK8K,uBACX9K,MAAK8K,iBAEV9K,KAAK4K,sBACA5K,MAAK4K,gBAehBpI,EAAS0I,aAAe,SAAUrF,GAC3BA,IAID,aAAeA,IAAa7F,KAAKoH,UAEnCpH,KAAKoH,QAAQuD,UAAY9E,EAAU8E,WAEjC9E,EAAUG,OAEZhG,KAAKmL,OAAOtF,EAAUG,OAEpBH,EAAUuF,OACZnK,EAAKoK,mBAAmBxF,EAAUuF,OAEhCvF,EAAUF,KACZE,EAAUF,IAAIqC,UAalBxF,EAAS8I,aAAe,WACtB,GAAIF,GAAQnK,EAAKsK,oBAKjB,OAJIH,IAAsC,QAA7BA,EAAMxK,UAAU4K,WAC3BJ,EAAQ,OAIRzF,IAAK3F,KAAKmG,YACViF,MAAOA,EACPpF,MAAOhG,KAAK+F,eAAeC,MAAMyF,MAAM,GACvCd,UAAW3K,KAAKoH,QAAUpH,KAAKoH,QAAQuD,UAAY,IAavDnI,EAASkJ,SAAW,SAAUpB,EAAKqB,GACjC,GAAIvE,GAAUpH,KAAKoH,OACnB,IAAIA,EAAS,CACX,GAAIwE,GAAS5L,IAET4L,GAAOC,iBACTZ,aAAaW,EAAOC,sBACbD,GAAOC,gBAEZD,EAAOE,kBACTF,EAAOE,iBAAgB,SAChBF,GAAOE,gBAIhB,IAAItB,GAASpD,EAAQqD,aACjBC,EAAStD,EAAQyD,aAAeL,EAChCuB,EAAiBC,KAAKC,IAAID,KAAKE,IAAI5B,EAAME,EAAS,EAAG,GAAIE,GAGzDyB,EAAU,WACZ,GAAIxB,GAAYvD,EAAQuD,UACpByB,EAAQL,EAAiBpB,CACzBqB,MAAKK,IAAID,GAAQ,GACnBhF,EAAQuD,WAAayB,EAAO,EAC5BR,EAAOE,gBAAkBH,EACzBC,EAAOC,eAAiBS,WAAWH,EAAS,MAIxCR,GACFA,GAAS,GAEXvE,EAAQuD,UAAYoB,QACbH,GAAOC,qBACPD,GAAOE,iBAGlBK,SAGIR,IACFA,GAAS,IASfnJ,EAAS8D,aAAe,WAQtB,QAASiG,GAAQC,GAGXZ,EAAOa,UACTb,EAAOa,SAASD,GAVpBxM,KAAKwG,MAAQkG,SAASC,cAAc,OACpC3M,KAAKwG,MAAMoG,UAAY,8BAAgC5M,KAAKa,QAAQgC,KACpE7C,KAAKY,UAAU+G,YAAY3H,KAAKwG,MAGhC,IAAIoF,GAAS5L,IAQbA,MAAKwG,MAAMqG,QAAU,SAAUL,GAC7B,GAAIM,GAASN,EAAMM,MAEnBP,GAAQC,GAIe,UAAnBM,EAAOtB,UACTgB,EAAMO,kBAGV/M,KAAKwG,MAAMwG,QAAUT,EACrBvM,KAAKwG,MAAMyG,SAAWV,EACtBvM,KAAKwG,MAAM0G,UAAYX,EACvBvM,KAAKwG,MAAM2G,QAAUZ,EACrBvM,KAAKwG,MAAM4G,MAAQb,EACnBvM,KAAKwG,MAAM6G,QAAUd,EACrBvM,KAAKwG,MAAM8G,YAAcf,EACzBvM,KAAKwG,MAAM+G,UAAYhB,EACvBvM,KAAKwG,MAAMgH,YAAcjB,EACzBvM,KAAKwG,MAAMiH,WAAalB,EAIxBtL,EAAKyM,iBAAiB1N,KAAKwG,MAAO,QAAS+F,GAAS,GACpDtL,EAAKyM,iBAAiB1N,KAAKwG,MAAO,OAAQ+F,GAAS,GACnDvM,KAAKwG,MAAMmH,UAAYpB,EACvBvM,KAAKwG,MAAMoH,WAAarB,EAGxBvM,KAAKmI,KAAOuE,SAASC,cAAc,OACnC3M,KAAKmI,KAAKyE,UAAY,kBACtB5M,KAAKwG,MAAMmB,YAAY3H,KAAKmI,KAG5B,IAAIM,GAAYiE,SAASC,cAAc,SACvClE,GAAUuB,KAAO,SACjBvB,EAAUmE,UAAY,wBACtBnE,EAAUoF,MAAQ,oBAClBpF,EAAUoE,QAAU,WAClBjB,EAAOnD,aAETzI,KAAKmI,KAAKR,YAAYc,EAGtB,IAAIC,GAAcgE,SAASC,cAAc,SAUzC,IATAjE,EAAYsB,KAAO,SACnBtB,EAAYmF,MAAQ,sBACpBnF,EAAYkE,UAAY,0BACxBlE,EAAYmE,QAAU,WACpBjB,EAAOlD,eAET1I,KAAKmI,KAAKR,YAAYe,GAGlB1I,KAAKqG,QAAS,CAEhB,GAAIyH,GAAOpB,SAASC,cAAc,SAClCmB,GAAK9D,KAAO,SACZ8D,EAAKlB,UAAY,uCACjBkB,EAAKD,MAAQ,4BACbC,EAAKjB,QAAU,WACbjB,EAAOmC,WAET/N,KAAKmI,KAAKR,YAAYmG,GACtB9N,KAAK2F,IAAImI,KAAOA,CAGhB,IAAIE,GAAOtB,SAASC,cAAc,SAClCqB,GAAKhE,KAAO,SACZgE,EAAKpB,UAAY,kBACjBoB,EAAKH,MAAQ,sBACbG,EAAKnB,QAAU,WACbjB,EAAOqC,WAETjO,KAAKmI,KAAKR,YAAYqG,GACtBhO,KAAK2F,IAAIqI,KAAOA,EAGhBhO,KAAKqG,QAAQ7E,SAAW,WACtBsM,EAAKI,UAAYtC,EAAOvF,QAAQ8H,UAChCH,EAAKE,UAAYtC,EAAOvF,QAAQ+H,WAElCpO,KAAKqG,QAAQ7E,WAIf,GAAIxB,KAAKa,SAAWb,KAAKa,QAAQ6B,OAAS1C,KAAKa,QAAQ6B,MAAMR,OAAQ,CACnE,GAAImI,GAAKrK,IACTA,MAAK6G,aAAe,GAAInB,GAAa1F,KAAKmI,KAAMnI,KAAKa,QAAQ6B,MAAO1C,KAAKa,QAAQgC,KAAM,SAAkBA,GACvGwH,EAAGxD,aAAa9D,UAGhBsH,EAAGvH,QAAQD,GACXwH,EAAGxD,aAAamB,UAKhBhI,KAAKa,QAAQiG,SACf9G,KAAK4G,UAAY,GAAIrB,GAAUvF,KAAMA,KAAKmI,QAQ9C3F,EAASuL,QAAU,WACb/N,KAAKqG,UAEPrG,KAAKqG,QAAQyH,OAGb9N,KAAK8I,cAQTtG,EAASyL,QAAU,WACbjO,KAAKqG,UAEPrG,KAAKqG,QAAQ2H,OAGbhO,KAAK8I,cASTtG,EAASiK,SAAW,SAAUD,GACV,WAAdA,EAAMxC,MACRhK,KAAKqO,WAAW7B,GAGA,SAAdA,EAAMxC,OACRhK,KAAKmG,YAAcqG,EAAMM,QAGT,aAAdN,EAAMxC,MACRhK,KAAKsO,mBAAmB9B,GAER,aAAdA,EAAMxC,MAAqC,WAAdwC,EAAMxC,MAAmC,SAAdwC,EAAMxC,MAChEhK,KAAKuO,oBAAoB/B,EAG3B,IAAItG,GAAOT,EAAKmC,kBAAkB4E,EAAMM,OAExC,IAAI5G,GAAQA,EAAKsI,SAAU,CACzB,GAAkB,SAAdhC,EAAMxC,KAAiB,CACzB,GAAIwC,EAAMM,QAAU5G,EAAKP,IAAIwC,KAI3B,WAHAnI,MAAKyO,gBAAgBjC,EAAMM,OAOxBN,GAAMkC,UACT1O,KAAK2O,WAIS,aAAdnC,EAAMxC,MAERvE,EAAKmJ,YAAY5O,KAAK+F,eAAeC,MAAOwG,OAI5B,aAAdA,EAAMxC,OACRhK,KAAK2O,WAEDzI,GAAQsG,EAAMM,QAAU5G,EAAKP,IAAIkJ,KAEnCpJ,EAAKmJ,YAAY1I,EAAMsG,KAEftG,GAASsG,EAAMM,QAAU5G,EAAKP,IAAI4B,OAASiF,EAAMM,QAAU5G,EAAKP,IAAI6B,OAASgF,EAAMM,QAAU5G,EAAKP,IAAIwF,SAE9GnL,KAAK8O,oBAAoBtC,GAK3BtG,IACFA,EAAKqG,QAAQC,IAIjBhK,EAAS8L,mBAAqB,SAAU9B,GACtCxM,KAAK+O,mBACHC,cAAexC,EAAMM,OACrBmC,aAAczC,EAAM0C,MACpBC,aAAc3C,EAAM4C,MACpBC,aAAc,EACdX,UAAU,IAIdlM,EAAS+L,oBAAsB,SAAU/B,GAClCxM,KAAK+O,mBACR/O,KAAKsO,mBAAmB9B,EAG1B,IAAI8C,GAAQ9C,EAAM0C,MAAQlP,KAAK+O,kBAAkBE,aAC7CM,EAAQ/C,EAAM4C,MAAQpP,KAAK+O,kBAAkBI,YASjD,OAPAnP,MAAK+O,kBAAkBM,aAAerD,KAAKwD,KAAKF,EAAQA,EAAQC,EAAQA,GACxEvP,KAAK+O,kBAAkBL,SACnB1O,KAAK+O,kBAAkBL,UAAY1O,KAAK+O,kBAAkBM,aAAe,GAE7E7C,EAAM6C,aAAerP,KAAK+O,kBAAkBM,aAC5C7C,EAAMkC,SAAW1O,KAAK+O,kBAAkBL,SAEjClC,EAAM6C,cAQf7M,EAASsM,oBAAsB,SAAUtC,GACvC,GAAItG,GAAOT,EAAKmC,kBAAkB4E,EAAMM,OAExC,IAA0B,SAAtB9M,KAAKa,QAAQgC,UAA+CiD,KAA5B9F,KAAKa,QAAQa,WAAjD,CAMA1B,KAAK+F,gBACH0J,MAAOvJ,GAAQ,KACfwJ,IAAK,KACL1J,UAGFhG,KAAKsO,mBAAmB9B,EAExB,IAAIZ,GAAS5L,IACRA,MAAK2P,YACR3P,KAAK2P,UAAY1O,EAAKyM,iBAAiBkC,OAAQ,YAAa,SAAUpD,GACpEZ,EAAOiE,eAAerD,MAGrBxM,KAAK8P,UACR9P,KAAK8P,QAAU7O,EAAKyM,iBAAiBkC,OAAQ,UAAW,SAAUpD,GAChEZ,EAAOmE,kBAAkBvD,QAW/BhK,EAASqN,eAAiB,SAAUrD,GAIlC,GAHAA,EAAMO,iBAEN/M,KAAKuO,oBAAoB/B,GACpBA,EAAMkC,SAAX,CAIA,GAAIxI,GAAOT,EAAKmC,kBAAkB4E,EAAMM,OAEpC5G,KAC+B,MAA7BlG,KAAK+F,eAAe0J,QACtBzP,KAAK+F,eAAe0J,MAAQvJ,GAE9BlG,KAAK+F,eAAe2J,IAAMxJ,GAI5BlG,KAAK2O,UAGL,IAAIc,GAAQzP,KAAK+F,eAAe0J,MAC5BC,EAAM1P,KAAK+F,eAAe2J,KAAO1P,KAAK+F,eAAe0J,KACrDA,IAASC,IAEX1P,KAAK+F,eAAeC,MAAQhG,KAAKgQ,mBAAmBP,EAAOC,GAC3D1P,KAAKmL,OAAOnL,KAAK+F,eAAeC,UASpCxD,EAASuN,kBAAoB,SAAUvD,GAEjCxM,KAAK+F,eAAeC,MAAM,IAC5BhG,KAAK+F,eAAeC,MAAM,GAAGL,IAAIwC,KAAKH,QAGxChI,KAAK+F,eAAe0J,MAAQ,KAC5BzP,KAAK+F,eAAe2J,IAAM,KAGtB1P,KAAK2P,YACP1O,EAAKgP,oBAAoBL,OAAQ,YAAa5P,KAAK2P,iBAC5C3P,MAAK2P,WAEV3P,KAAK8P,UACP7O,EAAKgP,oBAAoBL,OAAQ,UAAW5P,KAAK8P,eAC1C9P,MAAK8P,UAShBtN,EAASmM,SAAW,SAAUuB,GAC5BlQ,KAAK+F,eAAeC,MAAMlE,QAAQ,SAAUoE,GAC1CA,EAAKiK,aAAY,KAEnBnQ,KAAK+F,eAAeC,SAEhBkK,IACFlQ,KAAK+F,eAAe0J,MAAQ,KAC5BzP,KAAK+F,eAAe2J,IAAM,OAQ9BlN,EAAS2I,OAAS,SAAUnF,GAC1B,IAAKoK,MAAMjL,QAAQa,GACjB,MAAOhG,MAAKmL,QAAQnF,GAGtB,IAAIA,EAAO,CACThG,KAAK2O,WAEL3O,KAAK+F,eAAeC,MAAQA,EAAMyF,MAAM,EAExC,IAAI4E,GAAQrK,EAAM,EAClBA,GAAMlE,QAAQ,SAAUoE,GACtBA,EAAKiK,aAAY,EAAMjK,IAASmK,OActC7N,EAASwN,mBAAqB,SAAUP,EAAOC,GAI7C,IAHA,GAAIY,GAAYb,EAAMc,cAClBC,EAAUd,EAAIa,cACdtL,EAAI,EACDA,EAAIqL,EAAUpO,QAAUoO,EAAUrL,KAAOuL,EAAQvL,IACtDA,GAEF,IAAIvF,GAAO4Q,EAAUrL,EAAI,GACrBwL,EAAaH,EAAUrL,GACvByL,EAAWF,EAAQvL,EAgBvB,IAdKwL,GAAeC,IACdhR,EAAKmK,QAEP4G,EAAa/Q,EACbgR,EAAWhR,EACXA,EAAOA,EAAKmK,SAIZ4G,EAAa/Q,EAAKiR,OAAO,GACzBD,EAAWhR,EAAKiR,OAAOjR,EAAKiR,OAAOzO,OAAS,KAI5CxC,GAAQ+Q,GAAcC,EAAU,CAClC,GAAIE,GAAalR,EAAKiR,OAAO3O,QAAQyO,GACjCI,EAAWnR,EAAKiR,OAAO3O,QAAQ0O,GAC/BI,EAAa9E,KAAKC,IAAI2E,EAAYC,GAClCE,EAAY/E,KAAKE,IAAI0E,EAAYC,EAErC,OAAOnR,GAAKiR,OAAOlF,MAAMqF,EAAYC,EAAY,GAGjD,UASJvO,EAAS6L,WAAa,SAAU7B,GAC9B,GAAIwE,GAASxE,EAAMyE,OAASzE,EAAM0E,QAC9BC,EAAS3E,EAAM2E,OACfC,EAAU5E,EAAM4E,QAChBC,EAAU7E,EAAM6E,QAChBC,EAAW9E,EAAM8E,SACjBC,GAAU,CAEd,IAAc,GAAVP,EAAa,CACf,GAAI3G,GAAKrK,IACTsM,YAAW,WAETrL,EAAKuQ,sBAAsBnH,EAAGlE,cAC7B,GAGL,GAAInG,KAAK4G,UACP,GAAIwK,GAAqB,IAAVJ,EACbhR,KAAK4G,UAAUjB,IAAImB,OAAOkB,QAC1BhI,KAAK4G,UAAUjB,IAAImB,OAAOqE,SAC1BoG,GAAU,MAEP,IAAc,KAAVP,GAAkBI,GAAqB,IAAVJ,EAAe,CAE9CM,EAMHtR,KAAK4G,UAAU6K,UAPL,GAGVzR,KAAK4G,UAAU8K,MAHL,GAUZH,GAAU,EAiBd,GAbIvR,KAAKqG,UACH+K,IAAYE,GAAsB,IAAVN,GAE1BhR,KAAK+N,UACLwD,GAAU,GAEHH,GAAWE,GAAsB,IAAVN,IAE9BhR,KAAKiO,UACLsD,GAAU,IAITvR,KAAKa,QAAoB,eAAO0Q,KAC5BH,GAAYD,GAAWE,GAAgC,GAApB7E,EAAMmF,IAAIzP,QAAyB,GAAV8O,GAAyB,IAAVA,KAC5EO,GAAU,EACLvR,KAAKa,QAAQkG,aAAa6K,QAAQ5P,QAAQ,WAAa,GAAKwK,EAAMM,OAAOF,UAAU5K,QAAQ,qBAAuB,GAClHhC,KAAKa,QAAQkG,aAAa6K,QAAQ5P,QAAQ,SAAW,GAAKwK,EAAMM,OAAOF,UAAU5K,QAAQ,qBAAuB,GAAI,CACrH,GAAIkE,GAAOT,EAAKmC,kBAAkB4E,EAAMM,SACQ,MAA5C9M,KAAKa,QAAQkG,aAAa8K,gBAA0BrF,EAAMM,OAAOgF,UAAUC,WAAW/R,KAAKa,QAAQkG,aAAa8K,kBAChHvF,WAAW,SAAU0F,EAAOC,GACpBA,EAAQH,UAAU5P,OAAS,EAC3BlC,KAAKa,QAAQkG,aAAamL,KAAKF,EAAOC,GAEtCjS,KAAKa,QAAQkG,aAAaoL,QAEhCjL,KAAKlH,KAAMkG,EAAMsG,EAAMM,QAAS,KAM9CyE,IACF/E,EAAMO,iBACNP,EAAM4F,oBAQV5P,EAAS+D,aAAe,WACtB,GAAI8L,GAAe3F,SAASC,cAAc,MAC1C0F,GAAazF,UAAY,mBACzB5M,KAAKqS,aAAeA,EAEpBrS,KAAKoH,QAAUsF,SAASC,cAAc,OACtC3M,KAAKoH,QAAQwF,UAAY,kBACzByF,EAAa1K,YAAY3H,KAAKoH,SAE9BpH,KAAKqH,MAAQqF,SAASC,cAAc,SACpC3M,KAAKqH,MAAMuF,UAAY,kBACvB5M,KAAKoH,QAAQO,YAAY3H,KAAKqH,MAI9B,IAAIiL,EACJtS,MAAKuS,gBAAkB7F,SAASC,cAAc,YACpB,SAAtB3M,KAAKa,QAAQgC,OACfyP,EAAM5F,SAASC,cAAc,OAC7B2F,EAAIE,MAAQ,OACZxS,KAAKuS,gBAAgB5K,YAAY2K,IAEnCA,EAAM5F,SAASC,cAAc,OAC7B2F,EAAIE,MAAQ,OACZxS,KAAKuS,gBAAgB5K,YAAY2K,GACjCA,EAAM5F,SAASC,cAAc,OAC7B3M,KAAKuS,gBAAgB5K,YAAY2K,GACjCtS,KAAKqH,MAAMM,YAAY3H,KAAKuS,iBAE5BvS,KAAKqI,MAAQqE,SAASC,cAAc,SACpC3M,KAAKqH,MAAMM,YAAY3H,KAAKqI,OAE5BrI,KAAKwG,MAAMmB,YAAY0K,IAUzB7P,EAASiM,gBAAkB,SAAUgE,EAAQC,GAC3C,GAAIC,MACA/G,EAAS5L,IAGb2S,GAAMC,MACJrK,KAAM,YACNsF,MAAO,qCACPjB,UAAW,uBACXiG,MAAO,WACLpN,EAAKqN,YAAYlH,EAAO7F,eAAeC,UAK3C2M,EAAMC,MACJrK,KAAM,SACNsF,MAAO,oCACPjB,UAAW,oBACXiG,MAAO,WACLpN,EAAKsN,SAASnH,EAAO7F,eAAeC,UAI7B,GAAIR,GAAYmN,GAAQK,MAAON,IACrCO,KAAKR,EAAQzS,KAAKoH,UAKzBvH,EAAOD,UAEHiD,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,SAGNd,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,SAGNd,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,UAOL,SAAS9D,EAAQD,GAEtB,YAOA,SAASyF,KACPrF,KAAKkT,QAAS,EAOhB7N,EAAY1C,UAAUwQ,UAAY,SAAUjN,GACtClG,KAAKkT,SAILlT,KAAKkG,MAAQA,IAEXlG,KAAKkG,MACPlG,KAAKkG,KAAKkN,cAAa,GAIzBpT,KAAKkG,KAAOA,EACZlG,KAAKkG,KAAKkN,cAAa,IAIzBpT,KAAKqT,uBAOPhO,EAAY1C,UAAU2Q,YAAc,WAClC,IAAItT,KAAKkT,OAAT,CAIA,GAAI7I,GAAKrK,IACLA,MAAKkG,OACPlG,KAAKqT,qBAKLrT,KAAKuT,iBAAmBjH,WAAW,WACjCjC,EAAGnE,KAAKkN,cAAa,GACrB/I,EAAGnE,SAAOJ,GACVuE,EAAGkJ,qBAAmBzN,IACrB,MAQPT,EAAY1C,UAAU0Q,mBAAqB,WACrCrT,KAAKuT,mBACPtI,aAAajL,KAAKuT,kBAClBvT,KAAKuT,qBAAmBzN,KAQ5BT,EAAY1C,UAAU6Q,KAAO,WAC3BxT,KAAKkT,QAAS,GAMhB7N,EAAY1C,UAAU8Q,OAAS,WAC7BzT,KAAKkT,QAAS,GAGhBrT,EAAOD,QAAUyF,GAKZ,SAASxF,EAAQD,EAASM,GAE/B,YASA,SAASoF,GAASsG,GAChB5L,KAAK4L,OAASA,EACd5L,KAAKqG,WACLrG,KAAK0T,OAAS,EAEd1T,KAAKgE,QAGLhE,KAAK2T,SACHC,WACE9F,KAAQ,SAAUxG,GAChBA,EAAOpB,KAAK6B,YAAYT,EAAOuM,WAEjC7F,KAAQ,SAAU1G,GAChBA,EAAOpB,KAAK6B,YAAYT,EAAOwM,YAGnCC,WACEjG,KAAQ,SAAUxG,GAChBA,EAAOpB,KAAK8N,YAAY1M,EAAOuM,WAEjC7F,KAAQ,SAAU1G,GAChBA,EAAOpB,KAAK8N,YAAY1M,EAAOwM,YAGnCG,YACEnG,KAAQ,SAAUxG,GAChBA,EAAOpB,KAAK+N,WAAW3M,EAAO4M,UAEhClG,KAAQ,SAAU1G,GAChBA,EAAOpB,KAAK+N,WAAW3M,EAAO6M,WAIlCC,aACEtG,KAAQ,SAAUxG,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOnD,YAAYR,MAG9B8H,KAAQ,SAAU1G,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOlC,YAAYzB,OAIhCmO,mBACEvG,KAAQ,SAAUxG,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOnD,YAAYR,MAG9B8H,KAAQ,SAAU1G,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOyK,aAAapO,EAAMoB,EAAOiN,gBAI9CC,kBACE1G,KAAQ,SAAUxG,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOnD,YAAYR,MAG9B8H,KAAQ,SAAU1G,GAChB,GAAImN,GAAYnN,EAAOmN,SACvBnN,GAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAO6K,YAAYpN,EAAOpB,KAAMuO,GACvCA,EAAYvO,MAIlByO,aACE7G,KAAQ,SAAUxG,GAChB,GAAIuC,GAASvC,EAAOuC,OAChB0K,EAAa1K,EAAO8G,OAAOrJ,EAAOoM,QAAU7J,EAAO+K,MACvDtN,GAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7B2D,EAAOyK,aAAapO,EAAMqO,MAG9BvG,KAAQ,SAAU1G,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOnD,YAAYR,OAIhC2O,gBACE/G,KAAQ,SAAUxG,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAOnD,YAAYR,MAG9B8H,KAAQ,SAAU1G,GAChB,GAAImN,GAAYnN,EAAOmN,SACvBnN,GAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOuC,OAAO6K,YAAYxO,EAAMuO,GAChCA,EAAYvO,MAIlB4O,WACEhH,KAAQ,SAAUxG,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAOyN,cAAclL,OAAOmL,WAAW9O,EAAMoB,EAAOyN,kBAGxD/G,KAAQ,SAAU1G,GAChBA,EAAOtB,MAAMlE,QAAQ,SAAUoE,GAC7BoB,EAAO2N,cAAcpL,OAAOmL,WAAW9O,EAAMoB,EAAO2N,mBAK1DC,MACEpH,KAAQ,SAAUxG,GAChB,GAAIpB,GAAOoB,EAAOpB,IAClBA,GAAKiP,aACLjP,EAAKgP,KAAO5N,EAAO8N,QACnBlP,EAAKyK,OAASrJ,EAAO+N,UACrBnP,EAAKoP,cAEPtH,KAAQ,SAAU1G,GAChB,GAAIpB,GAAOoB,EAAOpB,IAClBA,GAAKiP,aACLjP,EAAKgP,KAAO5N,EAAOiO,QACnBrP,EAAKyK,OAASrJ,EAAOkO,UACrBtP,EAAKoP,gBArIFpV,EAAoB,EAkJ/BoF,GAAQ3C,UAAUnB,SAAW,aAa7B8D,EAAQ3C,UAAUkG,IAAM,SAAUD,EAAQtB,GACxCtH,KAAK0T,QACL1T,KAAKqG,QAAQrG,KAAK0T,QAChB9K,OAAUA,EACVtB,OAAUA,EACVmO,UAAa,GAAIC,OAIf1V,KAAK0T,MAAQ1T,KAAKqG,QAAQnE,OAAS,GACrClC,KAAKqG,QAAQsP,OAAO3V,KAAK0T,MAAQ,EAAG1T,KAAKqG,QAAQnE,OAASlC,KAAK0T,MAAQ,GAIzE1T,KAAKwB,YAMP8D,EAAQ3C,UAAUqB,MAAQ,WACxBhE,KAAKqG,WACLrG,KAAK0T,OAAS,EAGd1T,KAAKwB,YAOP8D,EAAQ3C,UAAUwL,QAAU,WAC1B,MAAQnO,MAAK0T,OAAS,GAOxBpO,EAAQ3C,UAAUyL,QAAU,WAC1B,MAAQpO,MAAK0T,MAAQ1T,KAAKqG,QAAQnE,OAAS,GAM7CoD,EAAQ3C,UAAUmL,KAAO,WACvB,GAAI9N,KAAKmO,UAAW,CAClB,GAAIyH,GAAM5V,KAAKqG,QAAQrG,KAAK0T,MAC5B,IAAIkC,EAAK,CACP,GAAIhN,GAAS5I,KAAK2T,QAAQiC,EAAIhN,OAC1BA,IAAUA,EAAOkF,MACnBlF,EAAOkF,KAAK8H,EAAItO,QACZsO,EAAItO,OAAOuO,cACb7V,KAAK4L,OAAOV,aAAa0K,EAAItO,OAAOuO,eAItCzU,QAAQD,MAAM,GAAIJ,OAAM,mBAAqB6U,EAAIhN,OAAS,MAG9D5I,KAAK0T,QAGL1T,KAAKwB,aAOT8D,EAAQ3C,UAAUqL,KAAO,WACvB,GAAIhO,KAAKoO,UAAW,CAClBpO,KAAK0T,OAEL,IAAIkC,GAAM5V,KAAKqG,QAAQrG,KAAK0T,MAC5B,IAAIkC,EAAK,CACP,GAAIhN,GAAS5I,KAAK2T,QAAQiC,EAAIhN,OAC1BA,IAAUA,EAAOoF,MACnBpF,EAAOoF,KAAK4H,EAAItO,QACZsO,EAAItO,OAAOwO,cACb9V,KAAK4L,OAAOV,aAAa0K,EAAItO,OAAOwO,eAItC1U,QAAQD,MAAM,GAAIJ,OAAM,mBAAqB6U,EAAIhN,OAAS,MAK9D5I,KAAKwB,aAOT8D,EAAQ3C,UAAUI,QAAU,WAC1B/C,KAAK4L,OAAS,KAEd5L,KAAKqG,WACLrG,KAAK0T,OAAS,GAGhB7T,EAAOD,QAAU0F,GAKZ,SAASzF,EAAQD,EAASM,GAE/B,YAEA,IAAI6V,GAAW7V,EAAoB,EAQnCN,GAAQwD,MAAQ,SAAe4S,GAC7B,IACE,MAAO1S,MAAKF,MAAM4S,GAEpB,MAAOzT,GAKL,KAHA3C,GAAQkF,SAASkR,GAGXzT,IAYV3C,EAAQqW,SAAW,SAAUC,GAc3B,QAASC,KAAU,MAAOD,GAASE,OAAOnR,GAC1C,QAASyM,KAAU,MAAOwE,GAASE,OAAOnR,EAAI,GAC9C,QAASoR,KAAU,MAAOH,GAASE,OAAOnR,EAAI,GAd9C,GAAIqR,MACArR,EAAI,EAKJsR,EAAQL,EAASK,MAAM,uEA+F3B,KA9FIA,IACFL,EAAWK,EAAM,IA6FbtR,EAAIiR,EAAShU,QAAQ,CACzB,GAAIzB,GAAI0V,GAEE,OAAN1V,GAAwB,MAAXiR,IAxEnB,WAEE,IADAzM,GAAK,EACEA,EAAIiR,EAAShU,SAAsB,MAAXiU,KAA6B,MAAXzE,MAC/CzM,GAEFA,IAAK,KAsEU,MAANxE,GAAwB,MAAXiR,IAlExB,WAEE,IADAzM,GAAK,EACEA,EAAIiR,EAAShU,QAAsB,OAAXiU,KAC7BlR,OAkEa,MAANxE,GAAoB,MAANA,EA7DzB,SAAqB+V,GACnBF,EAAM1D,KAAK,KACX3N,GAEA,KADA,GAAIxE,GAAI0V,IACDlR,EAAIiR,EAAShU,QAAUzB,IAAM+V,GACxB,MAAN/V,GAAwB,OAAX4V,KAEfC,EAAM1D,KAAK,MAIH,OAANnS,IACFwE,IAIU,OAHVxE,EAAI0V,MAIFG,EAAM1D,KAAK,OAGf0D,EAAM1D,KAAKnS,GAEXwE,IACAxE,EAAI0V,GAEF1V,KAAM+V,IACRF,EAAM1D,KAAK,KACX3N,MAmCYxE,GAEL,aAAagW,KAAKhW,KAAmD,KAA5C,IAAK,KAAKuB,QAhG9C,WAGE,IAFA,GAAItB,GAAI4V,EAAMpU,OAAS,EAEhBxB,GAAK,GAAG,CACb,GAAIgW,GAAKJ,EAAM5V,EACf,IAAW,MAAPgW,GAAqB,OAAPA,GAAsB,OAAPA,GAAsB,OAAPA,EAC9C,MAAOA,EAEThW,KAGF,MAAO,OAqDT,WAME,IALA,GAAIiW,IAAiB,OAAQ,OAAQ,SACjChF,EAAM,GACNlR,EAAI0V,IAEJS,EAAS,eACNA,EAAOH,KAAKhW,IACjBkR,GAAOlR,EACPwE,IACAxE,EAAI0V,KAG8B,IAAhCQ,EAAc3U,QAAQ2P,GACxB2E,EAAM1D,KAAK,IAAMjB,EAAM,KAGvB2E,EAAM1D,KAAKjB,OAqBX2E,EAAM1D,KAAKnS,GACXwE,KAIJ,MAAOqR,GAAMO,KAAK,KASpBjX,EAAQkX,mBAAqB,SAAUvO,GAIrC,MAAOA,GAAKwO,QAAQ,mBAAoB,SAAStW,GAC/C,MAAO,OAAO,OAASA,EAAEuW,WAAW,GAAGC,SAAS,KAAKxL,OAAO,MAWhE7L,EAAQkF,SAAW,SAAkBkR,OACX,KAAd,EACRD,EAAS3S,MAAM4S,GAGf1S,KAAKF,MAAM4S,IAUfpW,EAAQgE,OAAS,SAAgBsT,EAAGC,GAClC,IAAK,GAAIjS,KAAQiS,GACXA,EAAEnQ,eAAe9B,KACnBgS,EAAEhS,GAAQiS,EAAEjS,GAGhB,OAAOgS,IAQTtX,EAAQoE,MAAQ,SAAgBkT,GAC9B,IAAK,GAAIhS,KAAQgS,GACXA,EAAElQ,eAAe9B,UACZgS,GAAEhS,EAGb,OAAOgS,IAQTtX,EAAQoK,KAAO,SAAeoN,GAC5B,MAAe,QAAXA,EACK,WAEMtR,KAAXsR,EACK,YAEJA,YAAkBC,SAA8B,gBAAXD,GACjC,SAEJA,YAAkBE,SAA8B,gBAAXF,GACjC,SAEJA,YAAkBG,UAA+B,iBAAXH,GAClC,UAEJA,YAAkBI,SAA8B,gBAAXJ,GACjC,SAELxX,EAAQuF,QAAQiS,GACX,QAGF,SAQT,IAAIK,GAAa,kBACjB7X,GAAQ8X,MAAQ,SAAgBnP,GAC9B,OAAuB,gBAARA,IAAoBA,YAAgB+O,UAC/CG,EAAWhB,KAAKlO,IAQtB3I,EAAQuF,QAAU,SAAUyQ,GAC1B,MAA+C,mBAAxChU,OAAOe,UAAUsU,SAAS1W,KAAKqV,IASxChW,EAAQ+X,gBAAkB,SAAyBC,GAEjD,MADWA,GAAKC,wBACJC,KAAOlI,OAAOmI,aAAerL,SAASsL,YAAc,GASlEpY,EAAQ2K,eAAiB,SAAwBqN,GAE/C,MADWA,GAAKC,wBACJvN,IAAMsF,OAAOqI,aAAevL,SAAS/B,WAAa,GAQhE/K,EAAQsY,aAAe,SAAsBN,EAAMhL,GACjD,GAAIuL,GAAUP,EAAKhL,UAAUwL,MAAM,MACA,GAA/BD,EAAQnW,QAAQ4K,KAClBuL,EAAQvF,KAAKhG,GACbgL,EAAKhL,UAAYuL,EAAQtB,KAAK,OASlCjX,EAAQyY,gBAAkB,SAAyBT,EAAMhL,GACvD,GAAIuL,GAAUP,EAAKhL,UAAUwL,MAAM,KAC/B1E,EAAQyE,EAAQnW,QAAQ4K,IACd,GAAV8G,IACFyE,EAAQxC,OAAOjC,EAAO,GACtBkE,EAAKhL,UAAYuL,EAAQtB,KAAK,OASlCjX,EAAQ0Y,gBAAkB,SAAyBC,GAEjD,IAAK,GADD5H,GAAS4H,EAAWC,WACfvT,EAAI,EAAGwT,EAAO9H,EAAOzO,OAAQ+C,EAAIwT,EAAMxT,IAAK,CACnD,GAAI6E,GAAQ6G,EAAO1L,EAGf6E,GAAM4O,OAER5O,EAAM6O,gBAAgB,QAIxB,IAAIC,GAAa9O,EAAM8O,UACvB,IAAIA,EACF,IAAK,GAAIC,GAAID,EAAW1W,OAAS,EAAG2W,GAAK,EAAGA,IAAK,CAC/C,GAAIC,GAAYF,EAAWC,IACC,IAAxBC,EAAUC,WACZjP,EAAM6O,gBAAgBG,EAAUrV,MAMtC7D,EAAQ0Y,gBAAgBxO,KAW5BlK,EAAQoZ,wBAA0B,SAAiCC,GACjE,GAAI7N,GAAOvF,CACR6G,UAASwM,cACV9N,EAAQsB,SAASwM,cACjB9N,EAAM+N,mBAAmBF,GACzB7N,EAAMhD,UAAS,GACfvC,EAAY+J,OAAOtE,eACnBzF,EAAUuT,kBACVvT,EAAUwT,SAASjO,KASvBxL,EAAQ4R,sBAAwB,SAA+ByH,GAC7D,GAAKA,GAA6D,OAAnCA,EAAuBzN,SAAtD,CAIA,GAAI8N,GAAKlO,CACLwE,QAAOtE,cAAgBoB,SAASwM,cAClC9N,EAAQsB,SAASwM,cACjB9N,EAAM+N,mBAAmBF,GACzBK,EAAM1J,OAAOtE,eACbgO,EAAIF,kBACJE,EAAID,SAASjO,MASjBxL,EAAQ0L,aAAe,WACrB,GAAIsE,OAAOtE,aAAc,CACvB,GAAIgO,GAAM1J,OAAOtE,cACjB,IAAIgO,EAAIC,YAAcD,EAAIE,WACxB,MAAOF,GAAIC,WAAW,GAG1B,MAAO,OAQT3Z,EAAQsL,aAAe,SAAsBE,GAC3C,GAAIA,GACEwE,OAAOtE,aAAc,CACvB,GAAIgO,GAAM1J,OAAOtE,cACjBgO,GAAIF,kBACJE,EAAID,SAASjO,KAcnBxL,EAAQ2L,mBAAqB,WAC3B,GAAIH,GAAQxL,EAAQ0L,cAEpB,OAAIF,IAAS,eAAiBA,IAAS,aAAeA,IAClDA,EAAMqO,gBAAmBrO,EAAMqO,gBAAkBrO,EAAMsO,cAEvDC,YAAavO,EAAMuO,YACnBC,UAAWxO,EAAMwO,UACjBhZ,UAAWwK,EAAMqO,eAAehT,YAI7B,MAUT7G,EAAQyL,mBAAqB,SAA4B/D,GACvD,GAAIoF,SAASwM,aAAetJ,OAAOtE,aAAc,CAE/C,GADgBsE,OAAOtE,eACT,CACZ,GAAIF,GAAQsB,SAASwM,aAEhB5R,GAAO1G,UAAUiZ,YACpBvS,EAAO1G,UAAU+G,YAAY+E,SAASoN,eAAe,KAKvD1O,EAAM2O,SAASzS,EAAO1G,UAAUiZ,WAAYvS,EAAOqS,aACnDvO,EAAM4O,OAAO1S,EAAO1G,UAAUiZ,WAAYvS,EAAOsS,WAEjDha,EAAQsL,aAAaE,MAW3BxL,EAAQqa,aAAe,SAAsBhI,EAASiI,GAiBpD,OAhBuBpU,IAAVoU,IAEXA,GACE3R,KAAQ,GACR4R,MAAS,WACP,GAAI5R,GAAOvI,KAAKuI,IAEhB,OADAvI,MAAKuI,KAAO,GACLA,GAETvF,IAAO,SAAUuF,GACfvI,KAAKuI,KAAOA,KAMd0J,EAAQmI,UACV,MAAOF,GAAOC,QAAUlI,EAAQmI,SAIlC,IAAInI,EAAQoI,gBAAiB,CAI3B,IAAK,GAHD7B,GAAavG,EAAQuG,WACrB1G,EAAY,GAEP7M,EAAI,EAAGwT,EAAOD,EAAWtW,OAAQ+C,EAAIwT,EAAMxT,IAAK,CACvD,GAAI6E,GAAQ0O,EAAWvT,EAEvB,IAAsB,OAAlB6E,EAAM0B,UAAuC,KAAlB1B,EAAM0B,SAAiB,CACpD,GAAI8O,GAAY9B,EAAWvT,EAAI,GAC3BsV,EAAWD,EAAYA,EAAU9O,aAAW1F,EAC5CyU,IAAwB,OAAZA,GAAiC,KAAZA,GAA+B,MAAZA,IACtDzI,GAAa,KACboI,EAAOC,SAETrI,GAAalS,EAAQqa,aAAanQ,EAAOoQ,GACzCA,EAAOlX,IAAI,UAEc,MAAlB8G,EAAM0B,UACbsG,GAAaoI,EAAOC,QACpBD,EAAOlX,IAAI,OAGX8O,GAAalS,EAAQqa,aAAanQ,EAAOoQ,GAI7C,MAAOpI,GAGP,MAAwB,KAApBG,EAAQzG,WAA4D,GAAzC5L,EAAQsB,6BAM9BgZ,EAAOC,QAKX,IASTva,EAAQsB,2BAA6B,WACnC,IAAmB,GAAfsZ,EAAkB,CACpB,GAAIC,IAAM,CACV,IAAyB,+BAArBC,UAAUC,QACd,CACE,GAAIC,GAAKF,UAAUG,SAEA,OADT,GAAIrD,QAAO,8BACdsD,KAAKF,KACVH,EAAKM,WAAYvD,OAAOwD,KAI5BR,EAAaC,EAGf,MAAOD,IAOT5a,EAAQqb,UAAY,WAClB,OAAmD,GAA3CP,UAAUG,UAAU7Y,QAAQ,WAQtC,IAAIwY,IAAc,CAWlB5a,GAAQ8N,iBAAmB,SAA0BuE,EAASrJ,EAAQsS,EAAUC,GAC9E,GAAIlJ,EAAQvE,iBASV,WARmB5H,KAAfqV,IACFA,GAAa,GAEA,eAAXvS,GAA2BhJ,EAAQqb,cACrCrS,EAAS,kBAGXqJ,EAAQvE,iBAAiB9E,EAAQsS,EAAUC,GACpCD,CACF,IAAIjJ,EAAQmJ,YAAa,CAE9B,GAAIC,GAAI,WACN,MAAOH,GAAS3a,KAAK0R,EAASrC,OAAOpD,OAGvC,OADAyF,GAAQmJ,YAAY,KAAOxS,EAAQyS,GAC5BA,IAWXzb,EAAQqQ,oBAAsB,SAA6BgC,EAASrJ,EAAQsS,EAAUC,GAChFlJ,EAAQhC,yBACSnK,KAAfqV,IACFA,GAAa,GAEA,eAAXvS,GAA2BhJ,EAAQqb,cACrCrS,EAAS,kBAGXqJ,EAAQhC,oBAAoBrH,EAAQsS,EAAUC,IACrClJ,EAAQqJ,aAEjBrJ,EAAQqJ,YAAY,KAAO1S,EAAQsS,IASvCtb,EAAQ2b,UAAY,QAASA,GAAUC,GACrC,GAAItW,GAAMuW,CAEV,IAAwB,IAApBD,EAAStZ,OACX,QAIF,IAAIqU,GAAQiF,EAASjF,MAAM,WAC3B,IAAIA,EACFrR,EAAOqR,EAAM,GACbkF,EAAYD,EAASE,OAAOxW,EAAKhD,OAAS,OAEvC,CAAA,GAAoB,MAAhBsZ,EAAS,GAqBhB,KAAM,IAAIG,aAAY,uBAnBtB,IAAIjM,GAAM8L,EAASxZ,QAAQ,IAC3B,KAAa,IAAT0N,EACF,KAAM,IAAIiM,aAAY,+BAExB,IAAY,IAARjM,EACF,KAAM,IAAIiM,aAAY,yBAGxB,IAAInU,GAAQgU,EAASI,UAAU,EAAGlM,EACjB,OAAblI,EAAM,KAGRA,EAAQ,IAAOA,EAAMoU,UAAU,EAAGpU,EAAMtF,OAAS,GAAK,KAGxDgD,EAAiB,MAAVsC,EAAgBA,EAAQlE,KAAKF,MAAMoE,GAC1CiU,EAAYD,EAASE,OAAOhM,EAAM,GAMpC,OAAQxK,GAAMuE,OAAO8R,EAAUE,KAQjC7b,EAAQwJ,mBAAqB,SAAUjI,GACrC,GAAsB,SAAlBA,EAAM0a,SAAsBzL,MAAMjL,QAAQhE,EAAMqD,QAAS,CAC3D,GAAIsX,GAAQ3a,EAAMqD,MAClB,IAAIsX,EAAO,CAKT,GAJAA,EAAQA,EAAM3S,IAAI,SAAU3B,GAC1B,MAAOlE,MAAKC,UAAUiE,KAGpBsU,EAAM5Z,OAAS,EAAG,CACpB,GAAI6Z,IAAQ,KAAOD,EAAM5Z,OAAS,GAAK,YACvC4Z,GAAQA,EAAMrQ,MAAM,EAAG,GACvBqQ,EAAMlJ,KAAKmJ,GAEb5a,EAAM4I,QAAU,8BAAgC+R,EAAMjF,KAAK,OAQ/D,MAJsB,yBAAlB1V,EAAM0a,UACR1a,EAAM4I,QAAU,wCAA0C5I,EAAMmG,OAAO0U,oBAGlE7a,GASTvB,EAAQqc,WAAa,SAAUpS,EAAQC,EAAOoS,GAC5C,GAAIC,OAAqBrW,KAAXoW,EAAuBA,EAAS,CAC9C,OAAOpS,GAAMgO,KAASqE,GAAWtS,EAAOiO,MACjChO,EAAMsS,MAASD,GAAWtS,EAAOuS,OACjCtS,EAAMQ,IAAS6R,GAAWtS,EAAOS,KACjCR,EAAMY,OAASyR,GAAWtS,EAAOa,QAiB1C9K,EAAQqH,SAAW,SAAkBoV,EAAMC,EAAMC,GAC/C,GAAIC,EACJ,OAAO,YACL,GAAIC,GAAUzc,KAAM0c,EAAOza,UACvB0a,EAAQ,WACVH,EAAU,KACLD,GAAWF,EAAKO,MAAMH,EAASC,IAElCG,EAAUN,IAAcC,CAC5BvR,cAAauR,GACbA,EAAUlQ,WAAWqQ,EAAOL,GACxBO,GAASR,EAAKO,MAAMH,EAASC,KAYrC9c,EAAQkd,SAAW,SAAkBC,EAASC,GAM5C,IALA,GAAIC,GAAMD,EAAQ9a,OACduN,EAAQ,EACRyN,EAASH,EAAQ7a,OACjBib,EAASH,EAAQ9a,OAEd8a,EAAQ5G,OAAO3G,KAAWsN,EAAQ3G,OAAO3G,IAC7CA,EAAQwN,GACTxN,GAGF,MAAOuN,EAAQ5G,OAAO+G,EAAS,KAAOJ,EAAQ3G,OAAO8G,EAAS,IAC3DC,EAAS1N,GAASyN,EAAS,GAC5BC,IACAD,GAGF,QAAQzN,MAAOA,EAAOC,IAAKyN,KAMxB,SAAStd,EAAQD,EAASM,GAG/B,GAAI6V,GAAW,WACf,GAAIqH,IAAUC,MAAO,aACrBC,MACAC,UAAWpc,MAAQ,EAAEqc,WAAa,EAAEC,OAAS,EAAEC,WAAa,EAAEC,OAAS,EAAEC,gBAAkB,EAAEC,KAAO,EAAEC,mBAAqB,EAAEC,KAAO,GAAGC,MAAQ,GAAGC,SAAW,GAAGC,UAAY,GAAGC,IAAM,GAAGC,WAAa,GAAGC,UAAY,GAAGC,IAAI,GAAGC,IAAI,GAAGC,eAAiB,GAAGC,WAAa,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,gBAAkB,GAAGC,QAAU,EAAEC,KAAO,GAC7UC,YAAaC,EAAE,QAAQC,EAAE,SAASC,EAAE,SAASC,EAAE,OAAOC,GAAG,OAAOC,GAAG,QAAQC,GAAG,MAAMC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,KAC1HC,cAAe,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAC5JC,cAAe,SAAmBC,EAAOC,EAAOC,EAAS7C,EAAG8C,EAAQC,EAAGC,GAEvE,GAAIC,GAAKF,EAAGne,OAAS,CACrB,QAAQke,GACR,IAAK,GACKpgB,KAAKwgB,EAAIP,EAAOlJ,QAAQ,YAAa,MACzBA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,KAErC,MACA,KAAK,GAAE/W,KAAKwgB,EAAInJ,OAAO4I,EACvB,MACA,KAAK,GAAEjgB,KAAKwgB,EAAI,IAChB,MACA,KAAK,GAAExgB,KAAKwgB,GAAI,CAChB,MACA,KAAK,GAAExgB,KAAKwgB,GAAI,CAChB,MACA,KAAK,GAAE,MAAOxgB,MAAKwgB,EAAIH,EAAGE,EAAG,EAE7B,KAAK,IAAGvgB,KAAKwgB,IACb,MACA,KAAK,IAAGxgB,KAAKwgB,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGvgB,KAAKwgB,GAAKH,EAAGE,EAAG,GAAIF,EAAGE,GAC/B,MACA,KAAK,IAAGvgB,KAAKwgB,KAAQxgB,KAAKwgB,EAAEH,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EAChD,MACA,KAAK,IAAGvgB,KAAKwgB,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGF,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EACxD,MACA,KAAK,IAAGvgB,KAAKwgB,IACb,MACA,KAAK,IAAGxgB,KAAKwgB,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGvgB,KAAKwgB,GAAKH,EAAGE,GACrB,MACA,KAAK,IAAGvgB,KAAKwgB,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAG3N,KAAKyN,EAAGE,MAI5ClZ,QAASoZ,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIsB,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAMoB,GAAG,KAAKzB,IAAI,EAAE,MAAMA,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAGC,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKN,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,GAAGE,IAAI,EAAE,KAAKW,EAAE,GAAGtB,GAAG,EAAE,IAAIO,IAAI,EAAE,IAAIwB,GAAG,GAAGC,GAAG,KAAKV,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIsB,GAAG,KAAKH,GAAG,EAAE,KAAKzB,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMJ,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMD,IAAI,EAAE,MAAMH,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMN,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMW,EAAE,GAAGtB,GAAG,EAAE,IAAIgC,GAAG,KAAKV,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAML,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMW,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,IAAIuB,EAAE,EAAEtB,GAAG,EAAE,GAAGuB,EAAE,EAAEtB,IAAI,EAAE,IAAIC,IAAI,EAAE,IAAIuB,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAEvB,IAAI,EAAE,IAAII,IAAI,EAAE,MAAMH,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMF,IAAI,EAAE,IAAIE,IAAI,EAAE,MAAMA,IAAI,EAAE,IAAIE,IAAI,EAAE,MACtwCuB,gBAAiBL,IAAI,EAAE,IACvBM,WAAY,SAAoBC,EAAKC,GACjC,KAAM,IAAIzgB,OAAMwgB,IAEpBne,MAAO,SAAe6E,GAgClB,QAASwZ,KACL,GAAIC,EAMJ,OALAA,GAAQC,EAAKC,MAAMH,OAAS,EAEP,gBAAVC,KACPA,EAAQC,EAAKpE,SAASmE,IAAUA,GAE7BA,EAtCX,GAAIC,GAAO3hB,KACP6hB,GAAS,GACTC,GAAU,MACVC,KACA1a,EAAQrH,KAAKqH,MACb4Y,EAAS,GACTE,EAAW,EACXD,EAAS,EACT8B,EAAa,EACbC,EAAS,CAKbjiB,MAAK4hB,MAAMM,SAASja,GACpBjI,KAAK4hB,MAAMtE,GAAKtd,KAAKsd,GACrBtd,KAAKsd,GAAGsE,MAAQ5hB,KAAK4hB,UACW,KAArB5hB,KAAK4hB,MAAMO,SAClBniB,KAAK4hB,MAAMO,UACf,IAAIC,GAAQpiB,KAAK4hB,MAAMO,MACvBJ,GAAOnP,KAAKwP,GAEsB,kBAAvBpiB,MAAKsd,GAAGgE,aACfthB,KAAKshB,WAAathB,KAAKsd,GAAGgE,WAmB9B,KADA,GAAIe,GAAQC,EAAgBC,EAAO3Z,EAAW4Z,EAAY9hB,EAAEuc,EAAIwF,EAAUC,EAAzBC,OACpC,CAgBT,GAdAJ,EAAQV,EAAMA,EAAM3f,OAAO,GAGvBlC,KAAKqhB,eAAekB,GACpB3Z,EAAS5I,KAAKqhB,eAAekB,IAEf,MAAVF,IACAA,EAASZ,KAEb7Y,EAASvB,EAAMkb,IAAUlb,EAAMkb,GAAOF,QAKpB,KAAXzZ,IAA2BA,EAAO1G,SAAW0G,EAAO,GAAI,CAE/D,IAAKoZ,EAAY,CAEbU,IACA,KAAKhiB,IAAK2G,GAAMkb,GAAYviB,KAAKif,WAAWve,IAAMA,EAAI,GAClDgiB,EAAS9P,KAAK,IAAI5S,KAAKif,WAAWve,GAAG,IAEzC,IAAIkiB,GAAS,EAETA,GADA5iB,KAAK4hB,MAAMiB,aACF,wBAAwB1C,EAAS,GAAG,MAAMngB,KAAK4hB,MAAMiB,eAAe,eAAeH,EAAS7L,KAAK,MAAQ,UAAY7W,KAAKif,WAAWoD,GAAS,IAE9I,wBAAwBlC,EAAS,GAAG,iBACpB,GAAVkC,EAAsB,eACV,KAAKriB,KAAKif,WAAWoD,IAAWA,GAAQ,KAEvEriB,KAAKshB,WAAWsB,GACXra,KAAMvI,KAAK4hB,MAAMrL,MAAOmL,MAAO1hB,KAAKif,WAAWoD,IAAWA,EAAQS,KAAM9iB,KAAK4hB,MAAMzB,SAAU4C,IAAKX,EAAOM,SAAUA,IAI5H,GAAkB,GAAdV,EAAiB,CACjB,GAtEF,GAsEMK,EACA,KAAM,IAAIthB,OAAM6hB,GAAU,kBAI9B1C,GAASlgB,KAAK4hB,MAAM1B,OACpBD,EAASjgB,KAAK4hB,MAAM3B,OACpBE,EAAWngB,KAAK4hB,MAAMzB,SACtBiC,EAAQpiB,KAAK4hB,MAAMO,OACnBE,EAASZ,IAIb,OAAU,CAEN,GAAKQ,EAAOhL,YAAe5P,GAAMkb,GAC7B,KAEJ,IAAa,GAATA,EACA,KAAM,IAAIxhB,OAAM6hB,GAAU,oBA1E1C,SAAmBI,GACfnB,EAAM3f,OAAS2f,EAAM3f,OAAS,EAAE8gB,EAChClB,EAAO5f,OAAS4f,EAAO5f,OAAS8gB,EAChCjB,EAAO7f,OAAS6f,EAAO7f,OAAS8gB,GAyEf,GACTT,EAAQV,EAAMA,EAAM3f,OAAO,GAG/BogB,EAAiBD,EACjBA,EAASJ,EACTM,EAAQV,EAAMA,EAAM3f,OAAO,GAC3B0G,EAASvB,EAAMkb,IAAUlb,EAAMkb,GAAON,GACtCD,EAAa,EAIjB,GAAIpZ,EAAO,YAAcwH,QAASxH,EAAO1G,OAAS,EAC9C,KAAM,IAAInB,OAAM,oDAAoDwhB,EAAM,YAAYF,EAG1F,QAAQzZ,EAAO,IAEX,IAAK,GAGDiZ,EAAMjP,KAAKyP,GACXP,EAAOlP,KAAK5S,KAAK4hB,MAAM3B,QACvB8B,EAAOnP,KAAK5S,KAAK4hB,MAAMO,QACvBN,EAAMjP,KAAKhK,EAAO,IAClByZ,EAAS,KACJC,GAQDD,EAASC,EACTA,EAAiB,OARjBpC,EAASlgB,KAAK4hB,MAAM1B,OACpBD,EAASjgB,KAAK4hB,MAAM3B,OACpBE,EAAWngB,KAAK4hB,MAAMzB,SACtBiC,EAAQpiB,KAAK4hB,MAAMO,OACfH,EAAa,GACbA,IAKR,MAEJ,KAAK,GAgBD,GAbA/E,EAAMjd,KAAK+f,aAAanX,EAAO,IAAI,GAGnC+Z,EAAMnC,EAAIsB,EAAOA,EAAO5f,OAAO+a,GAE/B0F,EAAMrC,IACF2C,WAAYlB,EAAOA,EAAO7f,QAAQ+a,GAAK,IAAIgG,WAC3CC,UAAWnB,EAAOA,EAAO7f,OAAO,GAAGghB,UACnCC,aAAcpB,EAAOA,EAAO7f,QAAQ+a,GAAK,IAAIkG,aAC7CC,YAAarB,EAAOA,EAAO7f,OAAO,GAAGkhB,iBAIxB,MAFjBZ,EAAIxiB,KAAKggB,cAAczf,KAAKoiB,EAAO1C,EAAQC,EAAQC,EAAUngB,KAAKsd,GAAI1U,EAAO,GAAIkZ,EAAQC,IAGrF,MAAOS,EAIPvF,KACA4E,EAAQA,EAAMpW,MAAM,GAAG,EAAEwR,EAAI,GAC7B6E,EAASA,EAAOrW,MAAM,GAAI,EAAEwR,GAC5B8E,EAASA,EAAOtW,MAAM,GAAI,EAAEwR,IAGhC4E,EAAMjP,KAAK5S,KAAK+f,aAAanX,EAAO,IAAI,IACxCkZ,EAAOlP,KAAK+P,EAAMnC,GAClBuB,EAAOnP,KAAK+P,EAAMrC,IAElBmC,EAAWpb,EAAMwa,EAAMA,EAAM3f,OAAO,IAAI2f,EAAMA,EAAM3f,OAAO,IAC3D2f,EAAMjP,KAAK6P,EACX,MAEJ,KAAK,GACD,OAAO,GAKnB,OAAO,IAGPb,EAAQ,WACZ,GAAIA,IAAUzD,IAAI,EAClBmD,WAAW,SAAoBC,EAAKC,GAC5B,IAAIxhB,KAAKsd,GAAGgE,WAGR,KAAM,IAAIvgB,OAAMwgB,EAFhBvhB,MAAKsd,GAAGgE,WAAWC,EAAKC,IAKpCU,SAAS,SAAUja,GAOX,MANAjI,MAAKqjB,OAASpb,EACdjI,KAAKsjB,MAAQtjB,KAAKujB,MAAQvjB,KAAKwjB,MAAO,EACtCxjB,KAAKmgB,SAAWngB,KAAKkgB,OAAS,EAC9BlgB,KAAKigB,OAASjgB,KAAKyjB,QAAUzjB,KAAKuW,MAAQ,GAC1CvW,KAAK0jB,gBAAkB,WACvB1jB,KAAKmiB,QAAUc,WAAW,EAAEE,aAAa,EAAED,UAAU,EAAEE,YAAY,GAC5DpjB,MAEfiI,MAAM,WACE,GAAI0b,GAAK3jB,KAAKqjB,OAAO,EAQrB,OAPArjB,MAAKigB,QAAQ0D,EACb3jB,KAAKkgB,SACLlgB,KAAKuW,OAAOoN,EACZ3jB,KAAKyjB,SAASE,EACFA,EAAGpN,MAAM,OACVvW,KAAKmgB,WAChBngB,KAAKqjB,OAASrjB,KAAKqjB,OAAO5X,MAAM,GACzBkY,GAEfC,MAAM,SAAUD,GAER,MADA3jB,MAAKqjB,OAASM,EAAK3jB,KAAKqjB,OACjBrjB,MAEf+b,KAAK,WAEG,MADA/b,MAAKsjB,OAAQ,EACNtjB,MAEf6jB,KAAK,SAAUb,GACPhjB,KAAKqjB,OAASrjB,KAAKuW,MAAM9K,MAAMuX,GAAKhjB,KAAKqjB,QAEjDS,UAAU,WACF,GAAIC,GAAO/jB,KAAKyjB,QAAQ/H,OAAO,EAAG1b,KAAKyjB,QAAQvhB,OAASlC,KAAKuW,MAAMrU,OACnE,QAAQ6hB,EAAK7hB,OAAS,GAAK,MAAM,IAAM6hB,EAAKrI,QAAQ,IAAI3E,QAAQ,MAAO,KAE/EiN,cAAc,WACN,GAAItS,GAAO1R,KAAKuW,KAIhB,OAHI7E,GAAKxP,OAAS,KACdwP,GAAQ1R,KAAKqjB,OAAO3H,OAAO,EAAG,GAAGhK,EAAKxP,UAElCwP,EAAKgK,OAAO,EAAE,KAAKhK,EAAKxP,OAAS,GAAK,MAAM,KAAK6U,QAAQ,MAAO,KAEhF8L,aAAa,WACL,GAAIoB,GAAMjkB,KAAK8jB,YACXrjB,EAAI,GAAI2P,OAAM6T,EAAI/hB,OAAS,GAAG2U,KAAK,IACvC,OAAOoN,GAAMjkB,KAAKgkB,gBAAkB,KAAOvjB,EAAE,KAErDiR,KAAK,WACG,GAAI1R,KAAKwjB,KACL,MAAOxjB,MAAKme,GAEXne,MAAKqjB,SAAQrjB,KAAKwjB,MAAO,EAE9B,IAAI9B,GACAnL,EACA2N,EACAxQ,EAEAyQ,CACCnkB,MAAKsjB,QACNtjB,KAAKigB,OAAS,GACdjgB,KAAKuW,MAAQ,GAGjB,KAAK,GADD6N,GAAQpkB,KAAKqkB,gBACRpf,EAAE,EAAEA,EAAImf,EAAMliB,WACnBgiB,EAAYlkB,KAAKqjB,OAAO9M,MAAMvW,KAAKokB,MAAMA,EAAMnf,OAC5BsR,KAAS2N,EAAU,GAAGhiB,OAASqU,EAAM,GAAGrU,UACvDqU,EAAQ2N,EACRxQ,EAAQzO,EACHjF,KAAKa,QAAQyjB,OALKrf,KAQ/B,MAAIsR,IACA4N,EAAQ5N,EAAM,GAAGA,MAAM,SACnB4N,IAAOnkB,KAAKmgB,UAAYgE,EAAMjiB,QAClClC,KAAKmiB,QAAUc,WAAYjjB,KAAKmiB,OAAOe,UACxBA,UAAWljB,KAAKmgB,SAAS,EACzBgD,aAAcnjB,KAAKmiB,OAAOiB,YAC1BA,YAAae,EAAQA,EAAMA,EAAMjiB,OAAO,GAAGA,OAAO,EAAIlC,KAAKmiB,OAAOiB,YAAc7M,EAAM,GAAGrU,QACxGlC,KAAKigB,QAAU1J,EAAM,GACrBvW,KAAKuW,OAASA,EAAM,GACpBvW,KAAKkgB,OAASlgB,KAAKigB,OAAO/d,OAC1BlC,KAAKsjB,OAAQ,EACbtjB,KAAKqjB,OAASrjB,KAAKqjB,OAAO5X,MAAM8K,EAAM,GAAGrU,QACzClC,KAAKyjB,SAAWlN,EAAM,GACtBmL,EAAQ1hB,KAAKggB,cAAczf,KAAKP,KAAMA,KAAKsd,GAAItd,KAAMokB,EAAM1Q,GAAO1T,KAAK0jB,eAAe1jB,KAAK0jB,eAAexhB,OAAO,IAC7GlC,KAAKwjB,MAAQxjB,KAAKqjB,SAAQrjB,KAAKwjB,MAAO,GACtC9B,OACC,IAEW,KAAhB1hB,KAAKqjB,OACErjB,KAAKme,QAEZne,MAAKshB,WAAW,0BAA0BthB,KAAKmgB,SAAS,GAAG,yBAAyBngB,KAAK6iB,gBAChFta,KAAM,GAAImZ,MAAO,KAAMoB,KAAM9iB,KAAKmgB,YAGvDsB,IAAI,WACI,GAAIe,GAAIxiB,KAAK0R,MACb,YAAiB,KAAN8Q,EACAA,EAEAxiB,KAAKyhB,OAGxB8C,MAAM,SAAeC,GACbxkB,KAAK0jB,eAAe9Q,KAAK4R,IAEjCC,SAAS,WACD,MAAOzkB,MAAK0jB,eAAegB,OAEnCL,cAAc,WACN,MAAOrkB,MAAK2kB,WAAW3kB,KAAK0jB,eAAe1jB,KAAK0jB,eAAexhB,OAAO,IAAIkiB,OAElFQ,SAAS,WACD,MAAO5kB,MAAK0jB,eAAe1jB,KAAK0jB,eAAexhB,OAAO,IAE9D2iB,UAAU,SAAeL,GACjBxkB,KAAKukB,MAAMC,IA0CnB,OAxCA5C,GAAM/gB,WACN+gB,EAAM5B,cAAgB,SAAmB1C,EAAGwH,EAAIC,EAA0BC,GAG1E,OAAOD,GACP,IAAK,GACL,KACA,KAAK,GAAE,MAAO,EAEd,KAAK,GAAkD,MAAhDD,GAAI7E,OAAS6E,EAAI7E,OAAOvE,OAAO,EAAEoJ,EAAI5E,OAAO,GAAW,CAE9D,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,EAEf,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,YAIf0B,EAAMwC,OAAS,WAAW,8DAA8D,sEAAqE,UAAU,UAAU,UAAU,UAAU,SAAS,SAAS,cAAc,eAAe,cAAc,SAAS,UAC3QxC,EAAM+C,YAAcM,SAAWb,OAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAIc,WAAY,IAI9EtD,IAEP,OADAxE,GAAOwE,MAAQA,EACRxE,IAGLxd,GAAQwd,OAASrH,EACjBnW,EAAQwD,MAAQ2S,EAAS3S,MAAM8D,KAAK6O,IAKjC,SAASlW,EAAQD,GAEtB,YASA,SAAS2F,GAAWqG,EAAQhL,GAC1B,GAAIgG,GAAY5G,IAEhBA,MAAK4L,OAASA,EACd5L,KAAKwc,YAAU1W,GACf9F,KAAKmlB,MAAQ,IACbnlB,KAAKolB,aAAWtf,GAEhB9F,KAAK2F,OACL3F,KAAK2F,IAAI/E,UAAYA,CAErB,IAAIyG,GAAQqF,SAASC,cAAc,QACnC3M,MAAK2F,IAAI0B,MAAQA,EACjBA,EAAMuF,UAAY,oBAClBhM,EAAU+G,YAAYN,EACtB,IAAIgB,GAAQqE,SAASC,cAAc,QACnC3M,MAAK2F,IAAI0C,MAAQA,EACjBhB,EAAMM,YAAYU,EAClB,IAAIgd,GAAK3Y,SAASC,cAAc,KAChCtE,GAAMV,YAAY0d,EAElB,IAAIC,GAAK5Y,SAASC,cAAc,KAChC0Y,GAAG1d,YAAY2d,EACf,IAAI9c,GAAUkE,SAASC,cAAc,MACrC3M,MAAK2F,IAAI6C,QAAUA,EACnBA,EAAQoE,UAAY,qBACpB0Y,EAAG3d,YAAYa,GAEf8c,EAAK5Y,SAASC,cAAc,MAC5B0Y,EAAG1d,YAAY2d,EACf,IAAIC,GAAW7Y,SAASC,cAAc,MACtC3M,MAAK2F,IAAIsC,MAAQsd,EACjBA,EAAS3Y,UAAY,mBACrB2Y,EAAS1X,MAAQ,2BACjByX,EAAG3d,YAAY4d,EAGf,IAAIC,GAAa9Y,SAASC,cAAc,QACxC4Y,GAAS5d,YAAY6d,EACrB,IAAIC,GAAc/Y,SAASC,cAAc,QACzC6Y,GAAW7d,YAAY8d,GACvBJ,EAAK3Y,SAASC,cAAc,MAC5B8Y,EAAY9d,YAAY0d,EAExB,IAAIK,GAAgBhZ,SAASC,cAAc,SAC3C+Y,GAAc1b,KAAO,SACrB0b,EAAc9Y,UAAY,qBAC1B0Y,EAAK5Y,SAASC,cAAc,MAC5B2Y,EAAG3d,YAAY+d,GACfL,EAAG1d,YAAY2d,EAEf,IAAIxe,GAAS4F,SAASC,cAAc,QAEpC3M,MAAK2F,IAAImB,OAASA,EAClBA,EAAOkG,QAAU,SAAUR,GACzB5F,EAAU+e,iBAAiBnZ,IAE7B1F,EAAOmG,SAAW,SAAUT,GAC1B5F,EAAUgf,aAEZ9e,EAAOoG,UAAY,SAAUV,GAC3B5F,EAAUyH,WAAW7B,IAEvB1F,EAAOqG,QAAU,SAAUX,GACzB5F,EAAUif,SAASrZ,IAErBkZ,EAAc7Y,QAAU,SAAUL,GAChC1F,EAAOqE,UAITma,EAAK5Y,SAASC,cAAc,MAC5B2Y,EAAG3d,YAAYb,GACfue,EAAG1d,YAAY2d,EAEf,IAAIQ,GAAapZ,SAASC,cAAc,SACxCmZ,GAAW9b,KAAO,SAClB8b,EAAWjY,MAAQ,sBACnBiY,EAAWlZ,UAAY,kBACvBkZ,EAAWjZ,QAAU,WACnBjG,EAAU8K,QAEZ4T,EAAK5Y,SAASC,cAAc,MAC5B2Y,EAAG3d,YAAYme,GACfT,EAAG1d,YAAY2d,EAEf,IAAIS,GAAiBrZ,SAASC,cAAc,SAC5CoZ,GAAe/b,KAAO,SACtB+b,EAAelY,MAAQ,gCACvBkY,EAAenZ,UAAY,sBAC3BmZ,EAAelZ,QAAU,WACvBjG,EAAU6K,YAEZ6T,EAAK5Y,SAASC,cAAc,MAC5B2Y,EAAG3d,YAAYoe,GACfV,EAAG1d,YAAY2d,GAQjB/f,EAAU5C,UAAU+O,KAAO,SAAS1J,GAClC,OAAoBlC,IAAhB9F,KAAKwI,QAAsB,CAC7B,GAAIkL,OAA6B5N,IAApB9F,KAAKgmB,YAA4BhmB,KAAKgmB,YAAc,EAAI,CACjEtS,GAAQ1T,KAAKwI,QAAQtG,OAAS,IAChCwR,EAAQ,GAEV1T,KAAKimB,iBAAiBvS,EAAO1L,KASjCzC,EAAU5C,UAAU8O,SAAW,SAASzJ,GACtC,OAAoBlC,IAAhB9F,KAAKwI,QAAsB,CAC7B,GAAI0D,GAAMlM,KAAKwI,QAAQtG,OAAS,EAC5BwR,MAA6B5N,IAApB9F,KAAKgmB,YAA4BhmB,KAAKgmB,YAAc,EAAI9Z,CACjEwH,GAAQ,IACVA,EAAQxH,GAEVlM,KAAKimB,iBAAiBvS,EAAO1L,KAWjCzC,EAAU5C,UAAUsjB,iBAAmB,SAASvS,EAAO1L,GAErD,GAAIhI,KAAKkmB,aAAc,CACrB,GAAIC,GAAWnmB,KAAKkmB,aAAahgB,IAEjB,UADDlG,KAAKkmB,aAAatO,WAExBuO,GAASC,wBAGTD,GAASE,kBAElBF,EAASlc,YAGX,IAAKjK,KAAKwI,UAAYxI,KAAKwI,QAAQkL,GAIjC,MAFA1T,MAAKgmB,gBAAclgB,QACnB9F,KAAKkmB,iBAAepgB,GAItB9F,MAAKgmB,YAActS,CAGnB,IAAIxN,GAAOlG,KAAKwI,QAAQxI,KAAKgmB,aAAa9f,KACtC0R,EAAO5X,KAAKwI,QAAQxI,KAAKgmB,aAAapO,IAC9B,UAARA,EACF1R,EAAKkgB,mBAAoB,EAGzBlgB,EAAKmgB,mBAAoB,EAE3BrmB,KAAKkmB,aAAelmB,KAAKwI,QAAQxI,KAAKgmB,aACtC9f,EAAK+D,YAGL/D,EAAKwF,SAAS,WACR1D,GACF9B,EAAK8B,MAAM4P,MASjBrS,EAAU5C,UAAU2jB,YAAc,eACZxgB,IAAhB9F,KAAKwc,UACPvR,aAAajL,KAAKwc,eACXxc,MAAKwc,UAUhBjX,EAAU5C,UAAUgjB,iBAAmB,SAAUnZ,GAG/CxM,KAAKsmB,aACL,IAAI1f,GAAY5G,IAChBA,MAAKwc,QAAUlQ,WAAW,SAAUE,GAClC5F,EAAUgf,aAEZ5lB,KAAKmlB,QAUP5f,EAAU5C,UAAUijB,UAAY,SAAUW,GACxCvmB,KAAKsmB,aAEL,IAAI9e,GAAQxH,KAAK2F,IAAImB,OAAOU,MACxBe,EAAQf,EAAMtF,OAAS,EAAKsF,MAAQ1B,EACxC,IAAIyC,GAAQvI,KAAKolB,UAAYmB,EAO3B,GALAvmB,KAAKolB,SAAW7c,EAChBvI,KAAKwI,QAAUxI,KAAK4L,OAAO9E,OAAOyB,GAClCvI,KAAKimB,qBAAiBngB,QAGVA,IAARyC,EAAmB,CACrB,GAAIie,GAAcxmB,KAAKwI,QAAQtG,MAC/B,QAAQskB,GACN,IAAK,GAAGxmB,KAAK2F,IAAI6C,QAAQie,UAAY,iBAAmB,MACxD,KAAK,GAAGzmB,KAAK2F,IAAI6C,QAAQie,UAAY,eAAiB,MACtD,SAASzmB,KAAK2F,IAAI6C,QAAQie,UAAYD,EAAc,qBAItDxmB,MAAK2F,IAAI6C,QAAQie,UAAY,IAUnClhB,EAAU5C,UAAU0L,WAAa,SAAU7B,GACzC,GAAIwE,GAASxE,EAAMyE,KACL,KAAVD,GACFhR,KAAK2F,IAAImB,OAAOU,MAAQ,GACxBxH,KAAK4lB,YACLpZ,EAAMO,iBACNP,EAAM4F,mBAEW,IAAVpB,IACHxE,EAAM4E,QAERpR,KAAK4lB,WAAU,GAERpZ,EAAM8E,SAEbtR,KAAKyR,WAILzR,KAAK0R,OAEPlF,EAAMO,iBACNP,EAAM4F,oBASV7M,EAAU5C,UAAUkjB,SAAW,SAAUrZ,GACvC,GAAIwE,GAASxE,EAAM0E,OACL,KAAVF,GAA0B,IAAVA,GAClBhR,KAAK2lB,iBAAiBnZ,IAO1BjH,EAAU5C,UAAUqB,MAAQ,WAC1BhE,KAAK2F,IAAImB,OAAOU,MAAQ,GACxBxH,KAAK4lB,aAMPrgB,EAAU5C,UAAUI,QAAU,WAC5B/C,KAAK4L,OAAS,KACd5L,KAAK2F,IAAI/E,UAAU8F,YAAY1G,KAAK2F,IAAI0B,OACxCrH,KAAK2F,IAAM,KAEX3F,KAAKwI,QAAU,KACfxI,KAAKkmB,aAAe,KAEpBlmB,KAAKsmB,eAIPzmB,EAAOD,QAAU2F,GAKZ,SAAS1F,EAAQD,EAASM,GAE/B,YAaA,SAASsF,GAAamN,EAAO9R,GAuC3B,QAAS6lB,GAAiBC,EAAMC,EAAUjU,GACxCA,EAAM7Q,QAAQ,SAAU+kB,GACtB,GAAiB,aAAbA,EAAK7c,KAAqB,CAE5B,GAAI8c,GAAYpa,SAASC,cAAc,MACvCma,GAAUla,UAAY,uBACtBma,EAAKra,SAASC,cAAc,MAC5Boa,EAAGpf,YAAYmf,GACfH,EAAKhf,YAAYof,OAEd,CACH,GAAIC,MAGAD,EAAKra,SAASC,cAAc,KAChCga,GAAKhf,YAAYof,EAGjB,IAAIE,GAASva,SAASC,cAAc,SAiBpC,IAhBAsa,EAAOjd,KAAO,SACdid,EAAOra,UAAYia,EAAKja,UACxBoa,EAAQC,OAASA,EACbJ,EAAKhZ,QACPoZ,EAAOpZ,MAAQgZ,EAAKhZ,OAElBgZ,EAAKhU,QACPoU,EAAOpa,QAAU,SAAUL,GACzBA,EAAMO,iBACN1C,EAAG6c,OACHL,EAAKhU,UAGTkU,EAAGpf,YAAYsf,GAGXJ,EAAKM,QAAS,CAEhB,GAAIC,GAAU1a,SAASC,cAAc,MACrCya,GAAQxa,UAAY,kBACpBqa,EAAOtf,YAAYyf,GACnBH,EAAOtf,YAAY+E,SAASoN,eAAe+M,EAAKte,MAEhD,IAAI8e,EACJ,IAAIR,EAAKhU,MAAO,CAEdoU,EAAOra,WAAa,qBAEpB,IAAI0a,GAAe5a,SAASC,cAAc,SAC1C2a,GAAatd,KAAO,SACpBgd,EAAQM,aAAeA,EACvBA,EAAa1a,UAAY,oBACzB0a,EAAab,UAAY,wCACzBM,EAAGpf,YAAY2f,GACXT,EAAKU,eACPD,EAAazZ,MAAQgZ,EAAKU,cAG5BF,EAAgBC,MAEb,CAEH,GAAIE,GAAY9a,SAASC,cAAc,MACvC6a,GAAU5a,UAAY,oBACtBqa,EAAOtf,YAAY6f,GAEnBH,EAAgBJ,EAIlBI,EAAcxa,QAAU,SAAUL,GAChCA,EAAMO,iBACN1C,EAAGod,cAAcT,GACjBK,EAAcrf,QAIhB,IAAI0f,KACJV,GAAQW,SAAWD,CACnB,IAAIE,GAAKlb,SAASC,cAAc,KAChCqa,GAAQY,GAAKA,EACbA,EAAGhb,UAAY,kBACfgb,EAAGlP,MAAMlO,OAAS,IAClBuc,EAAGpf,YAAYigB,GACflB,EAAgBkB,EAAIF,EAAab,EAAKM,aAItCF,GAAOR,UAAY,sCAAwCI,EAAKte,IAGlEqe,GAAShU,KAAKoU,MAhIpBhnB,KAAK2F,MAEL,IAAI0E,GAAKrK,KACL2F,EAAM3F,KAAK2F,GACf3F,MAAKyS,WAAS3M,GACd9F,KAAK2S,MAAQA,EACb3S,KAAK6nB,kBACL7nB,KAAK6F,cAAYC,GACjB9F,KAAK0S,QAAU7R,EAAUA,EAAQmS,UAAQlN,EAGzC,IAAIpG,GAAOgN,SAASC,cAAc,MAClCjN,GAAKkN,UAAY,8BACjBjH,EAAIjG,KAAOA,CAGX,IAAIyI,GAAOuE,SAASC,cAAc,MAClCxE,GAAKyE,UAAY,yBACjBjH,EAAIwC,KAAOA,EACXzI,EAAKiI,YAAYQ,EAGjB,IAAIwe,GAAOja,SAASC,cAAc,KAClCga,GAAK/Z,UAAY,kBACjBzE,EAAKR,YAAYgf,GACjBhhB,EAAIghB,KAAOA,EACXhhB,EAAIgN,QAGJ,IAAImV,GAAcpb,SAASC,cAAc,SACzCmb,GAAY9d,KAAO,SACnBrE,EAAImiB,YAAcA,CAClB,IAAIf,GAAKra,SAASC,cAAc,KAChCoa,GAAGrO,MAAMqP,SAAW,SACpBhB,EAAGrO,MAAMlO,OAAS,IAClBuc,EAAGpf,YAAYmgB,GACfnB,EAAKhf,YAAYof,GAgGjBL,EAAgBC,EAAM3mB,KAAK2F,IAAIgN,MAAOA,GAKtC3S,KAAKgoB,UAAY,EACjBrV,EAAM7Q,QAAQ,SAAU+kB,GACtB,GAAIrc,GAAqE,IAA3DmI,EAAMzQ,QAAU2kB,EAAKM,QAAUN,EAAKM,QAAQjlB,OAAS,GACnEmI,GAAG2d,UAAYhc,KAAKE,IAAI7B,EAAG2d,UAAWxd,KAxJ1C,GAAIvJ,GAAOf,EAAoB,EAiK/BsF,GAAY7C,UAAUslB,mBAAqB,WACzC,GAAIC,MACA7d,EAAKrK,IAiBT,OAhBAA,MAAK2F,IAAIgN,MAAM7Q,QAAQ,SAAU+kB,GAC/BqB,EAAQtV,KAAKiU,EAAKI,QACdJ,EAAKS,cACPY,EAAQtV,KAAKiU,EAAKS,cAEhBT,EAAKc,UAAYd,GAAQxc,EAAG8d,cAC9BtB,EAAKc,SAAS7lB,QAAQ,SAAUsmB,GAC9BF,EAAQtV,KAAKwV,EAAQnB,QACjBmB,EAAQd,cACVY,EAAQtV,KAAKwV,EAAQd,kBAOtBY,GAIT1iB,EAAY6iB,gBAAcviB,GAQ1BN,EAAY7C,UAAUsQ,KAAO,SAAUR,EAAQ6V,GAC7CtoB,KAAKknB,MAGL,IAAIqB,IAAY,CAChB,IAAID,EAAe,CACjB,GAAIE,GAAa/V,EAAOoF,wBACpB4Q,EAAcH,EAAczQ,uBAE5B2Q,GAAW9d,OAAS1K,KAAKgoB,UAAYS,EAAY/d,QAG5C8d,EAAWle,IAAMtK,KAAKgoB,UAAYS,EAAYne,MAErDie,GAAY,GAQhB,GAAIA,EAAW,CAEb,GAAIG,GAAejW,EAAOkW,YAC1B3oB,MAAK2F,IAAIwC,KAAKuQ,MAAMZ,KAAO,MAC3B9X,KAAK2F,IAAIwC,KAAKuQ,MAAMpO,IAAMoe,EAAe,KACzC1oB,KAAK2F,IAAIwC,KAAKuQ,MAAMhO,OAAS,OAI7B1K,MAAK2F,IAAIwC,KAAKuQ,MAAMZ,KAAO,MAC3B9X,KAAK2F,IAAIwC,KAAKuQ,MAAMpO,IAAM,GAC1BtK,KAAK2F,IAAIwC,KAAKuQ,MAAMhO,OAAS,KAI/B,IAAIb,GAAS4I,EAAOhM,UACpBoD,GAAOyK,aAAatU,KAAK2F,IAAIjG,KAAMmK,EAAOgQ,WAG1C,IAAIxP,GAAKrK,KACL2mB,EAAO3mB,KAAK2F,IAAIghB,IACpB3mB,MAAK6nB,eAAee,UAAY3nB,EAAKyM,iBAAiBkC,OAAQ,YAAa,SAAUpD,GAEnF,GAAIM,GAASN,EAAMM,MACdA,IAAU6Z,GAAUtc,EAAGwe,WAAW/b,EAAQ6Z,KAC7Ctc,EAAG6c,OACH1a,EAAM4F,kBACN5F,EAAMO,oBAGV/M,KAAK6nB,eAAeiB,QAAU7nB,EAAKyM,iBAAiBkC,OAAQ,UAAW,SAAUpD,GAC/EnC,EAAGgE,WAAW7B,KAIhBxM,KAAK6F,UAAY5E,EAAKqK,eACtBtL,KAAKyS,OAASA,EACdnG,WAAW,WACTjC,EAAG1E,IAAImiB,YAAY9f,SAClB,GAECxC,EAAY6iB,aACd7iB,EAAY6iB,YAAYnB,OAE1B1hB,EAAY6iB,YAAcroB,MAM5BwF,EAAY7C,UAAUukB,KAAO,WAEvBlnB,KAAK2F,IAAIjG,KAAK+G,aAChBzG,KAAK2F,IAAIjG,KAAK+G,WAAWC,YAAY1G,KAAK2F,IAAIjG,MAC1CM,KAAK0S,SACP1S,KAAK0S,UAMT,KAAK,GAAIjP,KAAQzD,MAAK6nB,eACpB,GAAI7nB,KAAK6nB,eAAe7gB,eAAevD,GAAO,CAC5C,GAAIslB,GAAK/oB,KAAK6nB,eAAepkB,EACzBslB,IACF9nB,EAAKgP,oBAAoBL,OAAQnM,EAAMslB,SAElC/oB,MAAK6nB,eAAepkB,GAI3B+B,EAAY6iB,aAAeroB,OAC7BwF,EAAY6iB,gBAAcviB,KAU9BN,EAAY7C,UAAU8kB,cAAgB,SAAUT,GAC9C,GAAI3c,GAAKrK,KACLgpB,EAAkBhC,GAAWhnB,KAAKmoB,aAGlCA,EAAenoB,KAAKmoB,YAcxB,IAbIA,IAEFA,EAAaP,GAAGlP,MAAMlO,OAAS,IAC/B2d,EAAaP,GAAGlP,MAAMuQ,QAAU,GAChC3c,WAAW,WACLjC,EAAG8d,cAAgBA,IACrBA,EAAaP,GAAGlP,MAAMwQ,QAAU,GAChCjoB,EAAKoX,gBAAgB8P,EAAaP,GAAGnhB,WAAY,yBAElD,KACHzG,KAAKmoB,iBAAeriB,KAGjBkjB,EAAgB,CACnB,GAAIpB,GAAKZ,EAAQY,EACjBA,GAAGlP,MAAMwQ,QAAU,OACNtB,GAAGnd,YAChB6B,YAAW,WACLjC,EAAG8d,cAAgBnB,IACrBY,EAAGlP,MAAMlO,OAAiC,GAAvBod,EAAGpP,WAAWtW,OAAe,KAChD0lB,EAAGlP,MAAMuQ,QAAU,aAEpB,GACHhoB,EAAKiX,aAAa0P,EAAGnhB,WAAY,uBACjCzG,KAAKmoB,aAAenB,IASxBxhB,EAAY7C,UAAU0L,WAAa,SAAU7B,GAC3C,GAGI0b,GAASiB,EAAaC,EAAYC,EAHlCvc,EAASN,EAAMM,OACfkE,EAASxE,EAAMyE,MACfM,GAAU,CAGA,KAAVP,GAIEhR,KAAK6F,WACP5E,EAAKiK,aAAalL,KAAK6F,WAErB7F,KAAKyS,QACPzS,KAAKyS,OAAOzK,QAGdhI,KAAKknB,OAEL3V,GAAU,GAEO,GAAVP,EACFxE,EAAM8E,UAUT4W,EAAUloB,KAAKioB,qBAEI,IADnBkB,EAAcjB,EAAQlmB,QAAQ8K,MAG5Bob,EAAQA,EAAQhmB,OAAS,GAAG8F,QAC5BuJ,GAAU,KAdZ2W,EAAUloB,KAAKioB,sBACfkB,EAAcjB,EAAQlmB,QAAQ8K,KACXob,EAAQhmB,OAAS,IAElCgmB,EAAQ,GAAGlgB,QACXuJ,GAAU,IAaG,IAAVP,GACiB,qBAApBlE,EAAOF,YACTsb,EAAUloB,KAAKioB,qBACfkB,EAAcjB,EAAQlmB,QAAQ8K,IAC9Bsc,EAAalB,EAAQiB,EAAc,KAEjCC,EAAWphB,SAGfuJ,GAAU,GAEO,IAAVP,GACPkX,EAAUloB,KAAKioB,qBACfkB,EAAcjB,EAAQlmB,QAAQ8K,GAC9Bsc,EAAalB,EAAQiB,EAAc,GAC/BC,GAAsC,qBAAxBA,EAAWxc,YAE3Bwc,EAAalB,EAAQiB,EAAc,IAEhCC,IAEHA,EAAalB,EAAQA,EAAQhmB,OAAS,IAEpCknB,GACFA,EAAWphB,QAEbuJ,GAAU,GAEO,IAAVP,GACPkX,EAAUloB,KAAKioB,qBACfkB,EAAcjB,EAAQlmB,QAAQ8K,GAC9Buc,EAAanB,EAAQiB,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWzc,WAC3Byc,EAAWrhB,QAEbuJ,GAAU,GAEO,IAAVP,IACPkX,EAAUloB,KAAKioB,qBACfkB,EAAcjB,EAAQlmB,QAAQ8K,GAC9Buc,EAAanB,EAAQiB,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWzc,YAE3Byc,EAAanB,EAAQiB,EAAc,IAEhCE,IAEHA,EAAanB,EAAQ,IAEnBmB,IACFA,EAAWrhB,QACXuJ,GAAU,GAEZA,GAAU,GAIRA,IACF/E,EAAM4F,kBACN5F,EAAMO,mBAUVvH,EAAY7C,UAAUkmB,WAAa,SAAU/e,EAAOD,GAElD,IADA,GAAIxH,GAAIyH,EAAMrD,WACPpE,GAAG,CACR,GAAIA,GAAKwH,EACP,OAAO,CAETxH,GAAIA,EAAEoE,WAGR,OAAO,GAGT5G,EAAOD,QAAU4F,GAKZ,SAAS3F,EAAQD,EAASM,GAE/B,YAkBA,SAASuF,GAAMmG,EAAQtE,GAErBtH,KAAK4L,OAASA,EACd5L,KAAK2F,OACL3F,KAAKspB,UAAW,EAEbhiB,GAAWA,YAAkB1F,SAC9B5B,KAAKupB,SAASjiB,EAAOC,MAAOD,EAAOkiB,eACnCxpB,KAAKypB,SAASniB,EAAOE,MAAOF,EAAO0C,QAGnChK,KAAKupB,SAAS,IACdvpB,KAAKypB,SAAS,OAGhBzpB,KAAK0pB,wBAA0BzoB,EAAKgG,SAASjH,KAAK2pB,eAAeziB,KAAKlH,MAAOyF,EAAK9C,UAAUC,mBAC5F5C,KAAK4pB,wBAA0B3oB,EAAKgG,SAASjH,KAAK6pB,eAAe3iB,KAAKlH,MAAOyF,EAAK9C,UAAUC,mBAhC9F,GAAIknB,GAAc5pB,EAAoB,GAClCsF,EAActF,EAAoB,GAClC6pB,EAAoB7pB,EAAoB,IACxCe,EAAOf,EAAoB,EAiC/BuF,GAAK9C,UAAUC,kBAAoB,IAMnC6C,EAAK9C,UAAUqnB,mBAAqB,WAMlC,GALAhqB,KAAKyB,UACH8F,OAAO,EACPC,OAAO,GAGLxH,KAAK4L,SACP5L,KAAKyB,SAAS8F,MAAqC,SAA7BvH,KAAK4L,OAAO/K,QAAQgC,KAC1C7C,KAAKyB,SAAS+F,MAAqC,SAA7BxH,KAAK4L,OAAO/K,QAAQgC,MAER,SAA7B7C,KAAK4L,OAAO/K,QAAQgC,MAAgD,SAA7B7C,KAAK4L,OAAO/K,QAAQgC,OACjB,kBAAnC7C,MAAK4L,OAAO/K,QAAQa,YAA4B,CAC1D,GAAID,GAAWzB,KAAK4L,OAAO/K,QAAQa,YACjC6F,MAAOvH,KAAKuH,MACZC,MAAOxH,KAAKwH,MACZyiB,KAAMjqB,KAAKkqB,WAGW,kBAAbzoB,IACTzB,KAAKyB,SAAS8F,MAAQ9F,EACtBzB,KAAKyB,SAAS+F,MAAQ/F,IAGQ,iBAAnBA,GAAS8F,QAAqBvH,KAAKyB,SAAS8F,MAAQ9F,EAAS8F,OAC1C,iBAAnB9F,GAAS+F,QAAqBxH,KAAKyB,SAAS+F,MAAQ/F,EAAS+F,UAUhF/B,EAAK9C,UAAUunB,QAAU,WAGvB,IAFA,GAAIhkB,GAAOlG,KACPiqB,KACG/jB,GAAM,CACX,GAAIqB,GAASrB,EAAK2D,OAEU,SAApB3D,EAAK2D,OAAOG,KACV9D,EAAKqB,MACLrB,EAAKwN,UAHT5N,OAKQA,KAAVyB,GACF0iB,EAAKE,QAAQ5iB,GAEfrB,EAAOA,EAAK2D,OAEd,MAAOogB,IAQTxkB,EAAK9C,UAAU0G,SAAW,SAAUmS,GAGlC,IAFA,GAAIyO,GAAOhpB,EAAKsa,UAAUC,GACtBtV,EAAOlG,KACJkG,GAAQ+jB,EAAK/nB,OAAS,GAAG,CAC9B,GAAIgD,GAAO+kB,EAAKG,OAChB,IAAoB,gBAATllB,GAAmB,CAC5B,GAAkB,UAAdgB,EAAK8D,KACP,KAAM,IAAIjJ,OAAM,kCAAoCmE,EAAO,qBAE7DgB,GAAOA,EAAKyK,OAAOzL,OAEhB,CACH,GAAkB,WAAdgB,EAAK8D,KACP,KAAM,IAAIjJ,OAAM,yBAA2BmE,EAAO,sBAEpDgB,GAAOA,EAAKyK,OAAOpH,OAAO,SAAUO,GAClC,MAAOA,GAAMvC,QAAUrC,IACtB,IAIP,MAAOgB,IAQTT,EAAK9C,UAAUiH,YAAc,WAG3B,IAFA,GAAIygB,MACAxgB,EAAS7J,KAAK6J,OACXA,GACLwgB,EAAQF,QAAQtgB,GAChBA,EAASA,EAAOA,MAElB,OAAOwgB,IAWT5kB,EAAK9C,UAAUoG,SAAW,SAAU5H,EAAO2I,GAEzC9J,KAAKsI,SAELtI,KAAKmB,MAAQA,CACb,IAAImpB,GAAUtqB,KAAK2F,IAAI2kB,OACvB,IAAInpB,EAAO,CACJmpB,IACHA,EAAU5d,SAASC,cAAc,MACjC3M,KAAK2F,IAAI2kB,QAAUA,EACnBtqB,KAAK2F,IAAI4kB,QAAQ9jB,WAAWkB,YAAY2iB,GAG1C,IAAIE,GAAU9d,SAASC,cAAc,MACrC6d,GAAQ5d,UAAY,sCACpB4d,EAAQ7iB,YAAY+E,SAASoN,eAAe3Y,EAAM4I,SAElD,IAAIkd,GAASva,SAASC,cAAc,SAsCpC,KArCAsa,EAAOjd,KAAO,SACdid,EAAOra,UAAY,0BACnBqa,EAAOtf,YAAY6iB,GAGnBvD,EAAOzZ,YAAcyZ,EAAOwD,QAAU,WAEpC,IAAK,GADDC,IAAc,QAAS,QAAS,QAAS,QACpCzlB,EAAI,EAAGA,EAAIylB,EAAWxoB,OAAQ+C,IAAK,CAC1C,GAAI0lB,GAAYD,EAAWzlB,EAC3BulB,GAAQ5d,UAAY,iCAAmC+d,CAEvD,IAAIlC,GAAczoB,KAAK4L,OAAOxE,QAAQyQ,wBAClC+S,EAAcJ,EAAQ3S,uBAI1B,IAFU5W,EAAKgb,WAAWwM,EAAamC,EAD1B,IAIX,QAGJ1jB,KAAKlH,MAIH8J,IACFmd,EAAOpa,QAAU,WACf/C,EAAMF,cAAc9H,QAAQ,SAAU+H,GACpCA,EAAOnC,QAAO,KAGhBoC,EAAM4B,SAAS,WACb5B,EAAM9B,YAMLsiB,EAAQzQ,YACbyQ,EAAQ5jB,YAAY4jB,EAAQzQ,WAE9ByQ,GAAQ3iB,YAAYsf,OAGhBqD,KACFtqB,KAAK2F,IAAI2kB,QAAQ7jB,WAAWC,YAAY1G,KAAK2F,IAAI2kB,eAC1CtqB,MAAK2F,IAAI2kB,UAUtB7kB,EAAK9C,UAAUkoB,SAAW,WACxB,MAAO7qB,MAAK6J,OAAS7J,KAAK6J,OAAO8G,OAAO3O,QAAQhC,OAAS,GAO3DyF,EAAK9C,UAAUmoB,UAAY,SAASjhB,GAClC7J,KAAK6J,OAASA,GAQhBpE,EAAK9C,UAAU4mB,SAAW,SAAShiB,EAAOiiB,GACxCxpB,KAAKuH,MAAQA,EACbvH,KAAK+qB,cAAgBxjB,EACrBvH,KAAKwpB,eAAmC,IAAlBA,GAOxB/jB,EAAK9C,UAAUqoB,SAAW,WAKxB,WAJmBllB,KAAf9F,KAAKuH,OACPvH,KAAKirB,eAGAjrB,KAAKuH,OASd9B,EAAK9C,UAAU8mB,SAAW,SAASjiB,EAAOwC,GACxC,GAAIkhB,GAAYphB,EAGZ6G,EAAS3Q,KAAK2Q,MAClB,IAAIA,EACF,KAAOA,EAAOzO,QACZlC,KAAK0G,YAAYiK,EAAO,GAS5B,IAHA3Q,KAAKgK,KAAOhK,KAAKmrB,SAAS3jB,GAGtBwC,GAAQA,GAAQhK,KAAKgK,KAAM,CAC7B,GAAY,UAARA,GAAiC,QAAbhK,KAAKgK,KAI3B,KAAM,IAAIjJ,OAAM,6CACoBf,KAAKgK,KACrC,2BAA6BA,EAAO,IALxChK,MAAKgK,KAAOA,EAShB,GAAiB,SAAbhK,KAAKgK,KAAiB,CAExBhK,KAAK2Q,SACL,KAAK,GAAI1L,GAAI,EAAGwT,EAAOjR,EAAMtF,OAAQ+C,EAAIwT,EAAMxT,QAE1Ba,MADnBolB,EAAa1jB,EAAMvC,KACeimB,YAAsB/jB,YAEtD2C,EAAQ,GAAIrE,GAAKzF,KAAK4L,QACpBpE,MAAO0jB,IAETlrB,KAAK2H,YAAYmC,GAGrB9J,MAAKwH,MAAQ,OAEV,IAAiB,UAAbxH,KAAKgK,KAAkB,CAE9BhK,KAAK2Q,SACL,KAAK,GAAIya,KAAc5jB,GACjBA,EAAMR,eAAeokB,SAEJtlB,MADnBolB,EAAa1jB,EAAM4jB,KACeF,YAAsB/jB,YAEtD2C,EAAQ,GAAIrE,GAAKzF,KAAK4L,QACpBrE,MAAO6jB,EACP5jB,MAAO0jB,IAETlrB,KAAK2H,YAAYmC,IAIvB9J,MAAKwH,MAAQ,IAG8B,IAAvCxH,KAAK4L,OAAO/K,QAAQwqB,gBACtBrrB,KAAKkV,KAAK,WAKZlV,MAAK2Q,WAAS7K,GACd9F,KAAKwH,MAAQA,CAGfxH,MAAKsrB,cAAgBtrB,KAAKwH,OAO5B/B,EAAK9C,UAAUmF,SAAW,WAGxB,GAAiB,SAAb9H,KAAKgK,KAAiB,CACxB,GAAIuhB,KAIJ,OAHAvrB,MAAK2Q,OAAO7O,QAAS,SAAUgI,GAC7ByhB,EAAI3Y,KAAK9I,EAAMhC,cAEVyjB,EAEJ,GAAiB,UAAbvrB,KAAKgK,KAAkB,CAC9B,GAAI4L,KAIJ,OAHA5V,MAAK2Q,OAAO7O,QAAS,SAAUgI,GAC7B8L,EAAI9L,EAAMkhB,YAAclhB,EAAMhC,aAEzB8N,EAOP,WAJmB9P,KAAf9F,KAAKwH,OACPxH,KAAKwrB,eAGAxrB,KAAKwH,OAQhB/B,EAAK9C,UAAU8oB,SAAW,WACxB,MAAQzrB,MAAK6J,OAAS7J,KAAK6J,OAAO4hB,WAAa,EAAI,GAOrDhmB,EAAK9C,UAAU4N,YAAc,WAC3B,GAAI0Z,GAAOjqB,KAAK6J,OAAS7J,KAAK6J,OAAO0G,gBAErC,OADA0Z,GAAKrX,KAAK5S,MACHiqB,GASTxkB,EAAK9C,UAAU+oB,MAAQ,WACrB,GAAIA,GAAQ,GAAIjmB,GAAKzF,KAAK4L,OAS1B,IARA8f,EAAM1hB,KAAOhK,KAAKgK,KAClB0hB,EAAMnkB,MAAQvH,KAAKuH,MACnBmkB,EAAMC,eAAiB3rB,KAAK2rB,eAC5BD,EAAMlC,cAAgBxpB,KAAKwpB,cAC3BkC,EAAMlkB,MAAQxH,KAAKwH,MACnBkkB,EAAME,eAAiB5rB,KAAK4rB,eAC5BF,EAAMpC,SAAWtpB,KAAKspB,SAElBtpB,KAAK2Q,OAAQ,CAEf,GAAIkb,KACJ7rB,MAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5B,GAAIgiB,GAAahiB,EAAM4hB,OACvBI,GAAWhB,UAAUY,GACrBG,EAAYjZ,KAAKkZ,KAEnBJ,EAAM/a,OAASkb,MAIfH,GAAM/a,WAAS7K,EAGjB,OAAO4lB,IAQTjmB,EAAK9C,UAAU+E,OAAS,SAASwC,GAC1BlK,KAAK2Q,SAKV3Q,KAAKspB,UAAW,EACZtpB,KAAK2F,IAAI+B,SACX1H,KAAK2F,IAAI+B,OAAOkF,UAAY,uBAG9B5M,KAAKsV,cAEW,IAAZpL,GACFlK,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BA,EAAMpC,OAAOwC,OAUnBzE,EAAK9C,UAAUyF,SAAW,SAAS8B,GAC5BlK,KAAK2Q,SAIV3Q,KAAKmV,cAGW,IAAZjL,GACFlK,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BA,EAAM1B,SAAS8B,KAMflK,KAAK2F,IAAI+B,SACX1H,KAAK2F,IAAI+B,OAAOkF,UAAY,wBAE9B5M,KAAKspB,UAAW,IAMlB7jB,EAAK9C,UAAU2S,WAAa,WAE1B,GADatV,KAAK2Q,QAIb3Q,KAAKspB,SAAV,CAIA,GAAIjE,GAAKrlB,KAAK2F,IAAI0f,GACdhe,EAAQge,EAAKA,EAAG5e,eAAaX,EACjC,IAAIuB,EAAO,CAET,GAAIuN,GAAS5U,KAAK+rB,YACdC,EAAS3G,EAAG4G,WACZD,GACF3kB,EAAMiN,aAAaM,EAAQoX,GAG3B3kB,EAAMM,YAAYiN,GAIpB5U,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BzC,EAAMiN,aAAaxK,EAAMxB,SAAUsM,GACnC9K,EAAMwL,kBAQZ7P,EAAK9C,UAAUukB,KAAO,WACpB,GAAI7B,GAAKrlB,KAAK2F,IAAI0f,GACdhe,EAAQge,EAAKA,EAAG5e,eAAaX,EAC7BuB,IACFA,EAAMX,YAAY2e,GAEpBrlB,KAAKmV,cAOP1P,EAAK9C,UAAUwS,WAAa,WAE1B,GADanV,KAAK2Q,QAIb3Q,KAAKspB,SAAV,CAKA,GAAI1U,GAAS5U,KAAK+rB,WACdnX,GAAOnO,YACTmO,EAAOnO,WAAWC,YAAYkO,GAIhC5U,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BA,EAAMod,WAUVzhB,EAAK9C,UAAUgF,YAAc,SAASzB,GACpC,GAAIlG,KAAKksB,aAAc,CASrB,GAPAhmB,EAAK4kB,UAAU9qB,MACfkG,EAAKsjB,cAA8B,UAAbxpB,KAAKgK,KACV,SAAbhK,KAAKgK,OACP9D,EAAKwN,MAAQ1T,KAAK2Q,OAAOzO,QAE3BlC,KAAK2Q,OAAOiC,KAAK1M,GAEblG,KAAKspB,SAAU,CAEjB,GAAI6C,GAAQjmB,EAAKoC,SACb8jB,EAAWpsB,KAAK+rB,YAChB1kB,EAAQ+kB,EAAWA,EAAS3lB,eAAaX,EACzCsmB,IAAY/kB,GACdA,EAAMiN,aAAa6X,EAAOC,GAG5BlmB,EAAKoP,aAGPtV,KAAKiK,WAAWoiB,eAAiB,IACjCnmB,EAAK+D,WAAWC,SAAW,MAW/BzE,EAAK9C,UAAUqS,WAAa,SAAS9O,EAAMqO,GACzC,GAAIvU,KAAKksB,aAAc,CAGrB,GAAI7jB,GAASrI,KAAK2F,IAAM,GAAI3F,KAAK2F,IAAI0f,GAAG5e,eAAaX,EACrD,IAAIuC,EAAO,CACT,GAAIikB,GAAS5f,SAASC,cAAc,KACpC2f,GAAO5T,MAAMlO,OAASnC,EAAMoC,aAAe,KAC3CpC,EAAMV,YAAY2kB,GAGhBpmB,EAAK2D,QACP3D,EAAK2D,OAAOnD,YAAYR,GAGtBqO,YAAsBgY,GACxBvsB,KAAK2H,YAAYzB,GAGjBlG,KAAKsU,aAAapO,EAAMqO,GAGtBlM,GACFA,EAAM3B,YAAY4lB,KAYxB7mB,EAAK9C,UAAU6pB,OAAS,SAAUtmB,EAAMwN,GACtC,GAAIxN,EAAK2D,QAAU7J,KAAM,CAEJA,KAAK2Q,OAAO3O,QAAQkE,GACpBwN,GAEjBA,IAIJ,GAAIa,GAAavU,KAAK2Q,OAAO+C,IAAU1T,KAAK4U,MAC5C5U,MAAKgV,WAAW9O,EAAMqO,IASxB9O,EAAK9C,UAAU2R,aAAe,SAASpO,EAAMqO,GAC3C,GAAIvU,KAAKksB,aAAc,CACrB,GAAI3X,GAAcvU,KAAK4U,OAIrB1O,EAAK4kB,UAAU9qB,MACfkG,EAAKsjB,cAA8B,UAAbxpB,KAAKgK,KAC3BhK,KAAK2Q,OAAOiC,KAAK1M,OAEd,CAEH,GAAIwN,GAAQ1T,KAAK2Q,OAAO3O,QAAQuS,EAChC,KAAc,GAAVb,EACF,KAAM,IAAI3S,OAAM,iBAIlBmF,GAAK4kB,UAAU9qB,MACfkG,EAAKsjB,cAA8B,UAAbxpB,KAAKgK,KAC3BhK,KAAK2Q,OAAOgF,OAAOjC,EAAO,EAAGxN,GAG/B,GAAIlG,KAAKspB,SAAU,CAEjB,GAAI6C,GAAQjmB,EAAKoC,SACb0jB,EAASzX,EAAWjM,SACpBjB,EAAQ2kB,EAASA,EAAOvlB,eAAaX,EACrCkmB,IAAU3kB,GACZA,EAAMiN,aAAa6X,EAAOH,GAG5B9lB,EAAKoP,aAGPtV,KAAKiK,WAAWoiB,eAAiB,IACjCnmB,EAAK+D,WAAWC,SAAW,MAU/BzE,EAAK9C,UAAU+R,YAAc,SAASxO,EAAMuO,GAC1C,GAAIzU,KAAKksB,aAAc,CACrB,GAAIxY,GAAQ1T,KAAK2Q,OAAO3O,QAAQyS,GAC5BF,EAAavU,KAAK2Q,OAAO+C,EAAQ,EACjCa,GACFvU,KAAKsU,aAAapO,EAAMqO,GAGxBvU,KAAK2H,YAAYzB,KAYvBT,EAAK9C,UAAUmE,OAAS,SAASyB,GAC/B,GACImL,GADAlL,KAEA1B,EAASyB,EAAOA,EAAKkkB,kBAAgB3mB,EAOzC,UAJO9F,MAAK0sB,kBACL1sB,MAAK2sB,gBAGM7mB,IAAd9F,KAAKuH,MAAoB,CAE3BmM,EADY4D,OAAOtX,KAAKuH,OAAOklB,cACjBzqB,QAAQ8E,IACR,GAAV4M,IACF1T,KAAK0sB,aAAc,EACnBlkB,EAAQoK,MACN1M,KAAQlG,KACR4X,KAAQ,WAKZ5X,KAAK4sB,kBAIP,GAAI5sB,KAAKksB,aAAc,CAIrB,GAAIlsB,KAAK2Q,OAAQ,CACf,GAAIkc,KACJ7sB,MAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5B+iB,EAAeA,EAAapjB,OAAOK,EAAMhD,OAAOyB,MAElDC,EAAUA,EAAQiB,OAAOojB,GAI3B,OAAc/mB,IAAVgB,EAAqB,CAEI,GAAvB+lB,EAAa3qB,OACflC,KAAKoI,UAFO,GAKZpI,KAAK0H,QALO,QASb,CAEH,OAAkB5B,IAAd9F,KAAKwH,MAAqB,CAE5BkM,EADY4D,OAAOtX,KAAKwH,OAAOilB,cACjBzqB,QAAQ8E,IACR,GAAV4M,IACF1T,KAAK2sB,aAAc,EACnBnkB,EAAQoK,MACN1M,KAAQlG,KACR4X,KAAQ,WAMd5X,KAAK8sB,kBAGP,MAAOtkB,IAQT/C,EAAK9C,UAAU+I,SAAW,SAASC,GACjC,IAAK3L,KAAK2F,IAAI0f,KAAOrlB,KAAK2F,IAAI0f,GAAG5e,WAI/B,IAFA,GAAIoD,GAAS7J,KAAK6J,OAEXA,GACLA,EAAOnC,QAFK,GAGZmC,EAASA,EAAOA,MAIhB7J,MAAK2F,IAAI0f,IAAMrlB,KAAK2F,IAAI0f,GAAG5e,YAC7BzG,KAAK4L,OAAOF,SAAS1L,KAAK2F,IAAI0f,GAAG0H,UAAWphB,IAMhDlG,EAAKunB,iBAAelnB,GAQpBL,EAAK9C,UAAUqF,MAAQ,SAASilB,GAG9B,GAFAxnB,EAAKunB,aAAeC,EAEhBjtB,KAAK2F,IAAI0f,IAAMrlB,KAAK2F,IAAI0f,GAAG5e,WAAY,CACzC,GAAId,GAAM3F,KAAK2F,GAEf,QAAQsnB,GACN,IAAK,OACCtnB,EAAIkJ,KACNlJ,EAAIkJ,KAAK7G,QAGTrC,EAAIwC,KAAKH,OAEX,MAEF,KAAK,OACHrC,EAAIwC,KAAKH,OACT,MAEF,KAAK,SACChI,KAAKksB,aACPvmB,EAAI+B,OAAOM,QAEJrC,EAAI4B,OAASvH,KAAKwpB,eACzB7jB,EAAI4B,MAAMS,QACV/G,EAAKuQ,sBAAsB7L,EAAI4B,QAExB5B,EAAI6B,QAAUxH,KAAKksB,cAC1BvmB,EAAI6B,MAAMQ,QACV/G,EAAKuQ,sBAAsB7L,EAAI6B,QAG/B7B,EAAIwC,KAAKH,OAEX,MAEF,KAAK,QACCrC,EAAI4B,OAASvH,KAAKwpB,eACpB7jB,EAAI4B,MAAMS,QACV/G,EAAKuQ,sBAAsB7L,EAAI4B,QAExB5B,EAAI6B,QAAUxH,KAAKksB,cAC1BvmB,EAAI6B,MAAMQ,QACV/G,EAAKuQ,sBAAsB7L,EAAI6B,QAExBxH,KAAKksB,aACZvmB,EAAI+B,OAAOM,QAGXrC,EAAIwC,KAAKH,OAEX,MAEF,KAAK,QACL,QACMrC,EAAIwF,OAENxF,EAAIwF,OAAOnD,QAEJrC,EAAI6B,QAAUxH,KAAKksB,cAC1BvmB,EAAI6B,MAAMQ,QACV/G,EAAKuQ,sBAAsB7L,EAAI6B,QAExB7B,EAAI4B,OAASvH,KAAKwpB,eACzB7jB,EAAI4B,MAAMS,QACV/G,EAAKuQ,sBAAsB7L,EAAI4B,QAExBvH,KAAKksB,aACZvmB,EAAI+B,OAAOM,QAGXrC,EAAIwC,KAAKH,WAWnBvC,EAAK0F,OAAS,SAAS+hB,GACrB5gB,WAAW,WACTrL,EAAKuQ,sBAAsB0b,IAC1B,IAMLznB,EAAK9C,UAAUkF,KAAO,WAEpB7H,KAAKwrB,cAAa,GAClBxrB,KAAKirB,cAAa,IASpBxlB,EAAK9C,UAAUwqB,aAAe,SAASjnB,GACrC,GAAIlG,MAAQkG,EACV,OAAO,CAGT,IAAIyK,GAAS3Q,KAAK2Q,MAClB,IAAIA,EAEF,IAAK,GAAI1L,GAAI,EAAGwT,EAAO9H,EAAOzO,OAAQ+C,EAAIwT,EAAMxT,IAC9C,GAAI0L,EAAO1L,GAAGkoB,aAAajnB,GACzB,OAAO,CAKb,QAAO,GAWTT,EAAK9C,UAAUyqB,MAAQ,SAASlnB,EAAMqO,GACpC,GAAIrO,GAAQqO,EAAZ,CAMA,GAAIrO,EAAKinB,aAAantB,MACpB,KAAM,IAAIe,OAAM,6CAIdmF,GAAK2D,QACP3D,EAAK2D,OAAOnD,YAAYR,EAI1B,IAAIwlB,GAAQxlB,EAAKwlB,OACjBxlB,GAAKmnB,WAGD9Y,EACFvU,KAAKsU,aAAaoX,EAAOnX,GAGzBvU,KAAK2H,YAAY+jB,KAgBrBjmB,EAAK9C,UAAU+D,YAAc,SAASR,GACpC,GAAIlG,KAAK2Q,OAAQ,CACf,GAAI+C,GAAQ1T,KAAK2Q,OAAO3O,QAAQkE,EAEhC,KAAc,GAAVwN,EAAa,CACfxN,EAAKghB,aAGEhhB,GAAKwmB,kBACLxmB,GAAKymB,WAEZ,IAAIW,GAActtB,KAAK2Q,OAAOgF,OAAOjC,EAAO,GAAG,EAK/C,OAJA4Z,GAAYzjB,OAAS,KAErB7J,KAAKiK,WAAWoiB,eAAiB,IAE1BiB,KAcb7nB,EAAK9C,UAAU4qB,QAAU,SAAUrnB,GACjClG,KAAK0G,YAAYR,IAOnBT,EAAK9C,UAAUsR,WAAa,SAAUE,GACpC,GAAID,GAAUlU,KAAKgK,IAEnB,IAAIkK,GAAWC,EAAf,CAKA,GAAgB,UAAXA,GAAkC,QAAXA,GACZ,UAAXD,GAAkC,QAAXA,EAIvB,CAEH,GACIsZ,GADAnmB,EAAQrH,KAAK2F,IAAI0f,GAAKrlB,KAAK2F,IAAI0f,GAAG5e,eAAaX,EAGjD0nB,GADExtB,KAAKspB,SACEtpB,KAAK+rB,YAGL/rB,KAAKsI,QAEhB,IAAI0jB,GAAUwB,GAAUA,EAAO/mB,WAAc+mB,EAAOvB,gBAAcnmB,EAGlE9F,MAAKknB,OACLlnB,KAAKqtB,WAGLrtB,KAAKgK,KAAOmK,EAGG,UAAXA,GACGnU,KAAK2Q,SACR3Q,KAAK2Q,WAGP3Q,KAAK2Q,OAAO7O,QAAQ,SAAUgI,EAAO4J,GACnC5J,EAAMujB,iBACCvjB,GAAM4J,MACb5J,EAAM0f,eAAgB,MACH1jB,IAAfgE,EAAMvC,QACRuC,EAAMvC,MAAQ,MAIH,UAAX2M,GAAkC,QAAXA,IACzBlU,KAAKspB,UAAW,IAGA,SAAXnV,GACFnU,KAAK2Q,SACR3Q,KAAK2Q,WAGP3Q,KAAK2Q,OAAO7O,QAAQ,SAAUgI,EAAO4J,GACnC5J,EAAMujB,WACNvjB,EAAM0f,eAAgB,EACtB1f,EAAM4J,MAAQA,IAGD,UAAXQ,GAAkC,QAAXA,IACzBlU,KAAKspB,UAAW,IAIlBtpB,KAAKspB,UAAW,EAIdjiB,IACE2kB,EACF3kB,EAAMiN,aAAatU,KAAKsI,SAAU0jB,GAGlC3kB,EAAMM,YAAY3H,KAAKsI,WAG3BtI,KAAKsV,iBApELtV,MAAKgK,KAAOmK,CAuEC,SAAXA,GAAgC,UAAXA,IAGrBnU,KAAKwH,MADQ,UAAX2M,EACWmD,OAAOtX,KAAKwH,OAGZxH,KAAKytB,YAAYnW,OAAOtX,KAAKwH,QAG5CxH,KAAKgI,SAGPhI,KAAKiK,WAAWoiB,eAAiB,MASnC5mB,EAAK9C,UAAU6oB,aAAe,SAASkC,GAKrC,GAJI1tB,KAAK2F,IAAI6B,OAAsB,SAAbxH,KAAKgK,MAAgC,UAAbhK,KAAKgK,OACjDhK,KAAK4rB,eAAiB3qB,EAAKgZ,aAAaja,KAAK2F,IAAI6B,YAGxB1B,IAAvB9F,KAAK4rB,eACP,IAEE,GAAIpkB,EACJ,IAAiB,UAAbxH,KAAKgK,KACPxC,EAAQxH,KAAK2tB,cAAc3tB,KAAK4rB,oBAE7B,CACH,GAAIrK,GAAMvhB,KAAK2tB,cAAc3tB,KAAK4rB,eAClCpkB,GAAQxH,KAAKytB,YAAYlM,GAEvB/Z,IAAUxH,KAAKwH,QACjBxH,KAAKwH,MAAQA,EACbxH,KAAK0pB,2BAGT,MAAOnnB,GAGL,GAFAvC,KAAKwH,UAAQ1B,IAEE,IAAX4nB,EACF,KAAMnrB,KAUdkD,EAAK9C,UAAUgnB,eAAiB,WAG9B,GAAI9T,GAAe7V,KAAK4L,OAAON,cAC/B,IAAIuK,EAAazK,MAAO,CACtB,GAAIwiB,GAAW3sB,EAAK6b,SAASxF,OAAOtX,KAAKwH,OAAQ8P,OAAOtX,KAAKsrB,eAC7DzV,GAAazK,MAAMuO,YAAciU,EAASne,MAC1CoG,EAAazK,MAAMwO,UAAYgU,EAASle,IAE1C,GAAIoG,GAAe9V,KAAK4L,OAAON,cAC/B,IAAIwK,EAAa1K,MAAO,CACtB,GAAIyiB,GAAW5sB,EAAK6b,SAASxF,OAAOtX,KAAKsrB,eAAgBhU,OAAOtX,KAAKwH,OACrEsO,GAAa1K,MAAMuO,YAAckU,EAASpe,MAC1CqG,EAAa1K,MAAMwO,UAAYiU,EAASne,IAG1C1P,KAAK4L,OAAOjD,UAAU,aACpBzC,KAAMlG,KACN6T,SAAU7T,KAAKsrB,cACfxX,SAAU9T,KAAKwH,MACfqO,aAAcA,EACdC,aAAcA,IAGhB9V,KAAKsrB,cAAgBtrB,KAAKwH,OAO5B/B,EAAK9C,UAAUknB,eAAiB,WAG9B,GAAIhU,GAAe7V,KAAK4L,OAAON,cAC/B,IAAIuK,EAAazK,MAAO,CACtB,GAAIwiB,GAAW3sB,EAAK6b,SAAS9c,KAAKuH,MAAOvH,KAAK+qB,cAC9ClV,GAAazK,MAAMuO,YAAciU,EAASne,MAC1CoG,EAAazK,MAAMwO,UAAYgU,EAASle,IAE1C,GAAIoG,GAAe9V,KAAK4L,OAAON,cAC/B,IAAIwK,EAAa1K,MAAO,CACtB,GAAIyiB,GAAW5sB,EAAK6b,SAAS9c,KAAK+qB,cAAe/qB,KAAKuH,MACtDuO,GAAa1K,MAAMuO,YAAckU,EAASpe,MAC1CqG,EAAa1K,MAAMwO,UAAYiU,EAASne,IAG1C1P,KAAK4L,OAAOjD,UAAU,aACpBzC,KAAMlG,KACN6T,SAAU7T,KAAK+qB,cACfjX,SAAU9T,KAAKuH,MACfsO,aAAcA,EACdC,aAAcA,IAGhB9V,KAAK+qB,cAAgB/qB,KAAKuH,OAU5B9B,EAAK9C,UAAUmqB,gBAAkB,WAC/B,GAAIgB,GAAW9tB,KAAK2F,IAAI6B,KACxB,IAAIsmB,EAAU,CACZ,GAAIC,IAAc,oBAIdvmB,EAAQxH,KAAKwH,MACbwC,EAAqB,QAAbhK,KAAKgK,KAAkB/I,EAAK+I,KAAKxC,GAASxH,KAAKgK,KACvD0N,EAAgB,UAAR1N,GAAoB/I,EAAKyW,MAAMlQ,EAC3CumB,GAAWnb,KAAK,cAAgB5I,GAC5B0N,GACFqW,EAAWnb,KAAK,iBAoBlB,IAhBqC,IAAtB0E,OAAOtX,KAAKwH,QAA6B,SAAbxH,KAAKgK,MAAgC,UAAbhK,KAAKgK,MAEtE+jB,EAAWnb,KAAK,oBAId5S,KAAKqmB,mBACP0H,EAAWnb,KAAK,+BAEd5S,KAAK2sB,aACPoB,EAAWnb,KAAK,wBAGlBkb,EAASlhB,UAAYmhB,EAAWlX,KAAK,KAGzB,SAAR7M,GAA2B,UAARA,EAAkB,CACvC,GAAIgkB,GAAQhuB,KAAK2Q,OAAS3Q,KAAK2Q,OAAOzO,OAAS,CAC/C4rB,GAASjgB,MAAQ7N,KAAKgK,KAAO,eAAiBgkB,EAAQ,aAE/CtW,IAAS1X,KAAKyB,SAAS+F,MAC9BsmB,EAASjgB,MAAQ,qDAGjBigB,EAASjgB,MAAQ,EA0BnB,IAtBa,YAAT7D,GAAsBhK,KAAKyB,SAAS+F,OACjCxH,KAAK2F,IAAIsoB,WACZjuB,KAAK2F,IAAIsoB,SAAWvhB,SAASC,cAAc,SAC3C3M,KAAK2F,IAAIsoB,SAASjkB,KAAO,WACzBhK,KAAK2F,IAAIuoB,WAAaxhB,SAASC,cAAc,MAC7C3M,KAAK2F,IAAIuoB,WAAWthB,UAAY,kBAChC5M,KAAK2F,IAAIuoB,WAAWvmB,YAAY3H,KAAK2F,IAAIsoB,UAEzCjuB,KAAK2F,IAAI4kB,QAAQ9jB,WAAW6N,aAAatU,KAAK2F,IAAIuoB,WAAYluB,KAAK2F,IAAI4kB,UAGzEvqB,KAAK2F,IAAIsoB,SAASE,QAAUnuB,KAAKwH,OAI7BxH,KAAK2F,IAAIuoB,aACXluB,KAAK2F,IAAIuoB,WAAWznB,WAAWC,YAAY1G,KAAK2F,IAAIuoB,kBAC7CluB,MAAK2F,IAAIuoB,iBACTluB,MAAK2F,IAAIsoB,UAIhBjuB,KAAKouB,MAAQpuB,KAAKyB,SAAS+F,MAAO,CAEpC,IAAKxH,KAAK2F,IAAIwF,OAAQ,CACpBnL,KAAK2F,IAAIwF,OAASuB,SAASC,cAAc,UACzC3M,KAAKK,GAAKL,KAAKuH,MAAQ,KAAM,GAAImO,OAAO2Y,qBACxCruB,KAAK2F,IAAIwF,OAAO9K,GAAKL,KAAKK,GAC1BL,KAAK2F,IAAIwF,OAAO1H,KAAOzD,KAAK2F,IAAIwF,OAAO9K,GAGvCL,KAAK2F,IAAIwF,OAAOpJ,OAAS2K,SAASC,cAAc,UAChD3M,KAAK2F,IAAIwF,OAAOpJ,OAAOyF,MAAQ,GAC/BxH,KAAK2F,IAAIwF,OAAOpJ,OAAO0kB,UAAY,KACnCzmB,KAAK2F,IAAIwF,OAAOxD,YAAY3H,KAAK2F,IAAIwF,OAAOpJ,OAG5C,KAAI,GAAIkD,GAAI,EAAGA,EAAIjF,KAAKouB,KAAKlsB,OAAQ+C,IACnCjF,KAAK2F,IAAIwF,OAAOpJ,OAAS2K,SAASC,cAAc,UAChD3M,KAAK2F,IAAIwF,OAAOpJ,OAAOyF,MAAQxH,KAAKouB,KAAKnpB,GACzCjF,KAAK2F,IAAIwF,OAAOpJ,OAAO0kB,UAAYzmB,KAAKouB,KAAKnpB,GAC1CjF,KAAK2F,IAAIwF,OAAOpJ,OAAOyF,OAASxH,KAAKwH,QACtCxH,KAAK2F,IAAIwF,OAAOpJ,OAAOyM,UAAW,GAEpCxO,KAAK2F,IAAIwF,OAAOxD,YAAY3H,KAAK2F,IAAIwF,OAAOpJ,OAG9C/B,MAAK2F,IAAI2oB,SAAW5hB,SAASC,cAAc,MAC3C3M,KAAK2F,IAAI2oB,SAAS1hB,UAAY,kBAC9B5M,KAAK2F,IAAI2oB,SAAS3mB,YAAY3H,KAAK2F,IAAIwF,QACvCnL,KAAK2F,IAAI4kB,QAAQ9jB,WAAW6N,aAAatU,KAAK2F,IAAI2oB,SAAUtuB,KAAK2F,IAAI4kB,UAKpEvqB,KAAKwE,QACHxE,KAAKwE,OAAOwC,eAAe,UAC3BhH,KAAKwE,OAAOwC,eAAe,UAC3BhH,KAAKwE,OAAOwC,eAAe,eAMvBhH,MAAKuuB,gBAJZvuB,KAAKuuB,eAAiBvuB,KAAK2F,IAAI4kB,QAAQ9D,UACvCzmB,KAAK2F,IAAI4kB,QAAQ7R,MAAM8V,WAAa,SACpCxuB,KAAK2F,IAAI4kB,QAAQ9D,UAAY,QAO3BzmB,MAAK2F,IAAI2oB,WACXtuB,KAAK2F,IAAI2oB,SAAS7nB,WAAWC,YAAY1G,KAAK2F,IAAI2oB,gBAC3CtuB,MAAK2F,IAAI2oB,eACTtuB,MAAK2F,IAAIwF,OAChBnL,KAAK2F,IAAI4kB,QAAQ9D,UAAYzmB,KAAKuuB,eAClCvuB,KAAK2F,IAAI4kB,QAAQ7R,MAAM8V,WAAa,SAC7BxuB,MAAKuuB,eAKhBttB,GAAKqX,gBAAgBwV,KAWzBroB,EAAK9C,UAAUiqB,gBAAkB,WAC/B,GAAI6B,GAAWzuB,KAAK2F,IAAI4B,KACxB,IAAIknB,EAAU,CAEyB,IAAtBnX,OAAOtX,KAAKuH,QAAoC,SAApBvH,KAAK6J,OAAOG,KAErD/I,EAAKiX,aAAauW,EAAU,oBAG5BxtB,EAAKoX,gBAAgBoW,EAAU,oBAI7BzuB,KAAKomB,kBACPnlB,EAAKiX,aAAauW,EAAU,+BAG5BxtB,EAAKoX,gBAAgBoW,EAAU,+BAE7BzuB,KAAK0sB,YACPzrB,EAAKiX,aAAauW,EAAU,wBAG5BxtB,EAAKoX,gBAAgBoW,EAAU,wBAIjCxtB,EAAKqX,gBAAgBmW,KAUzBhpB,EAAK9C,UAAUsoB,aAAe,SAASyC,GAKrC,GAJI1tB,KAAK2F,IAAI4B,OAASvH,KAAKwpB,gBACzBxpB,KAAK2rB,eAAiB1qB,EAAKgZ,aAAaja,KAAK2F,IAAI4B,YAGxBzB,IAAvB9F,KAAK2rB,eACP,IACE,GAAIpkB,GAAQvH,KAAK2tB,cAAc3tB,KAAK2rB,eAEhCpkB,KAAUvH,KAAKuH,QACjBvH,KAAKuH,MAAQA,EACbvH,KAAK4pB,2BAGT,MAAOrnB,GAGL,GAFAvC,KAAKuH,UAAQzB,IAEE,IAAX4nB,EACF,KAAMnrB,KAUdkD,EAAK9C,UAAUmC,SAAW,WACxB,GAAIoE,KAGJ,IAAkB,WAAdlJ,KAAKgK,KAAmB,CAG1B,IAAK,GAFDnI,MACA6sB,KACKzpB,EAAI,EAAGA,EAAIjF,KAAK2Q,OAAOzO,OAAQ+C,IAAK,CAC3C,GAAI6E,GAAQ9J,KAAK2Q,OAAO1L,EACpBpD,GAAKmF,eAAe8C,EAAMvC,QAC5BmnB,EAAc9b,KAAK9I,EAAMvC,OAE3B1F,EAAKiI,EAAMvC,QAAS,EAGlBmnB,EAAcxsB,OAAS,IACzBgH,EAASlJ,KAAK2Q,OACTpH,OAAO,SAAUrD,GAChB,OAA8C,IAAvCwoB,EAAc1sB,QAAQkE,EAAKqB,SAEnC4B,IAAI,SAAUjD,GACb,OACEA,KAAMA,EACN/E,OACE4I,QAAS,kBAAoB7D,EAAKqB,MAAQ,SAQxD,GAAIvH,KAAK2Q,OACP,IAAK,GAAI1L,GAAI,EAAGA,EAAIjF,KAAK2Q,OAAOzO,OAAQ+C,IAAK,CAC3C,GAAI5C,GAAIrC,KAAK2Q,OAAO1L,GAAGH,UACnBzC,GAAEH,OAAS,IACbgH,EAASA,EAAOO,OAAOpH,IAK7B,MAAO6G,IAMTzD,EAAK9C,UAAU0qB,SAAW,WAKxBrtB,KAAK2F,QAQPF,EAAK9C,UAAU2F,OAAS,WACtB,GAAI3C,GAAM3F,KAAK2F,GACf,IAAIA,EAAI0f,GACN,MAAO1f,GAAI0f,EASb,IANArlB,KAAKgqB,qBAGLrkB,EAAI0f,GAAK3Y,SAASC,cAAc,MAChChH,EAAI0f,GAAGnf,KAAOlG,KAEmB,SAA7BA,KAAK4L,OAAO/K,QAAQgC,KAAiB,CACvC,GAAI8rB,GAASjiB,SAASC,cAAc,KACpC,IAAI3M,KAAKyB,SAAS8F,OAEZvH,KAAK6J,OAAQ,CACf,GAAI+kB,GAAUliB,SAASC,cAAc,SACrCiiB,GAAQ5kB,KAAO,SACfrE,EAAIkJ,KAAO+f,EACXA,EAAQhiB,UAAY,sBACpBgiB,EAAQ/gB,MAAQ,6CAChB8gB,EAAOhnB,YAAYinB,GAGvBjpB,EAAI0f,GAAG1d,YAAYgnB,EAGnB,IAAIE,GAASniB,SAASC,cAAc,MAChCxE,EAAOuE,SAASC,cAAc,SAClCxE,GAAK6B,KAAO,SACZrE,EAAIwC,KAAOA,EACXA,EAAKyE,UAAY,yBACjBzE,EAAK0F,MAAQ,0CACbghB,EAAOlnB,YAAYhC,EAAIwC,MACvBxC,EAAI0f,GAAG1d,YAAYknB,GAIrB,GAAIC,GAAUpiB,SAASC,cAAc,KAOrC,OANAhH,GAAI0f,GAAG1d,YAAYmnB,GACnBnpB,EAAIopB,KAAO/uB,KAAKgvB,iBAChBF,EAAQnnB,YAAYhC,EAAIopB,MAExB/uB,KAAKiK,WAAWoiB,eAAiB,IAE1B1mB,EAAI0f,IAQb5f,EAAKmJ,YAAc,SAAU5I,EAAOwG,GAClC,IAAK4D,MAAMjL,QAAQa,GACjB,MAAOP,GAAKmJ,aAAa5I,GAAQwG,EAEnC,IAAqB,IAAjBxG,EAAM9D,OAAV,CAIA,GAAI+sB,GAAYjpB,EAAM,GAClBkpB,EAAWlpB,EAAMA,EAAM9D,OAAS,GAChCitB,EAAc1pB,EAAKmC,kBAAkB4E,EAAMM,QAC3CyH,EAAa2a,EAASE,eACtBxjB,EAASqjB,EAAUrjB,OAInByjB,EAAUpuB,EAAKsJ,eAAe4kB,EAAYxpB,IAAI0f,IAAMpkB,EAAKsJ,eAAe0kB,EAAUtpB,IAAI0f,GAErFzZ,GAAO+D,YACV/D,EAAO+D,UAAY1O,EAAKyM,iBAAiBkC,OAAQ,YAAa,SAAUpD,GACtE/G,EAAK6pB,OAAOtpB,EAAOwG,MAIlBZ,EAAOkE,UACVlE,EAAOkE,QAAU7O,EAAKyM,iBAAiBkC,OAAQ,UAAU,SAAUpD,GACjE/G,EAAK8pB,UAAUvpB,EAAOwG,MAI1BZ,EAAOhG,YAAY4N,OACnB5H,EAAOiD,MACL2gB,UAAW9iB,SAAS+iB,KAAK/W,MAAMgX,OAC/B7Z,aAAcjK,EAAON,eACrByJ,cAAeR,EACfob,OAAQnjB,EAAM0C,MACdmgB,QAASA,EACTO,MAAOX,EAAUxD,YAEnB/e,SAAS+iB,KAAK/W,MAAMgX,OAAS,OAE7BljB,EAAMO,mBAQRtH,EAAK6pB,OAAS,SAAUtpB,EAAOwG,GAC7B,IAAK4D,MAAMjL,QAAQa,GACjB,MAAOP,GAAK6pB,QAAQtpB,GAAQwG,EAE9B,IAAqB,IAAjBxG,EAAM9D,OAAV,CAKA,GAGI2tB,GAAQC,EAAQC,EAAQC,EAASC,EAAQC,EACzCC,EAAUC,EACVC,EAASC,EAASC,EAAUC,EAAYC,EAAYC,EALpD9kB,EAAS5F,EAAM,GAAG4F,OAClBxB,EAASoC,EAAM4C,MAAQxD,EAAOiD,KAAKwgB,QACnCM,EAASnjB,EAAM0C,MAIfyhB,GAAQ,EAKR1B,EAAYjpB,EAAM,EAItB,IAHA6pB,EAASZ,EAAUtpB,IAAI0f,GACvBgL,EAAUpvB,EAAKsJ,eAAeslB,GAC9BW,EAAaX,EAAOlH,aAChBve,EAASimB,EAAS,CAEpBP,EAASD,CACT,IACEC,EAASA,EAAOc,gBAChBT,EAAW1qB,EAAKmC,kBAAkBkoB,GAClCQ,EAAUR,EAAS7uB,EAAKsJ,eAAeulB,GAAU,QAE5CA,GAAU1lB,EAASkmB,EAEtBH,KAAaA,EAAStmB,SACxBsmB,MAAWrqB,IAGRqqB,IAEHD,EAASL,EAAOppB,WAAWoT,WAC3BiW,EAASI,EAASA,EAAOjE,gBAAcnmB,IACvCqqB,EAAW1qB,EAAKmC,kBAAkBkoB,KAClBb,IACdkB,MAAWrqB,KAIXqqB,IAEFL,EAASK,EAASxqB,IAAI0f,GACtBiL,EAAUR,EAAS7uB,EAAKsJ,eAAeulB,GAAU,EAC7C1lB,EAASkmB,EAAUE,IACrBL,MAAWrqB,KAIXqqB,IACFnqB,EAAMlE,QAAQ,SAAUoE,GACtBiqB,EAAStmB,OAAOmL,WAAW9O,EAAMiqB,KAEnCQ,GAAQ,OAGP,CAEH,GAAIzB,GAAWlpB,EAAMA,EAAM9D,OAAS,EAGpC,IAFA+tB,EAAUf,EAAS5F,UAAY4F,EAASta,OAAUsa,EAASta,OAAOtM,SAAW4mB,EAASvpB,IAAI0f,GAC1F2K,EAAUC,EAASA,EAAOhE,gBAAcnmB,GAC3B,CACXyqB,EAAWtvB,EAAKsJ,eAAeylB,GAC/BD,EAASC,CACT,IACEI,EAAW3qB,EAAKmC,kBAAkBmoB,GAC9BA,IACFU,EAAaV,EAAO9D,YAChBhrB,EAAKsJ,eAAewlB,EAAO9D,aAAe,EAC9CyE,EAAaX,EAAUU,EAAaF,EAAY,EAE5CH,EAASvmB,OAAO8G,OAAOzO,QAAU8D,EAAM9D,QACvCkuB,EAASvmB,OAAO8G,OAAO3K,EAAM9D,OAAS,IAAMgtB,IAG9CmB,GAAW,KAKfN,EAASA,EAAO9D,kBAEX8D,GAAU3lB,EAASimB,EAAUK,EAEpC,IAAIN,GAAYA,EAASvmB,OAAQ,CAE/B,GAAIyF,GAASqgB,EAAS/jB,EAAOiD,KAAK8gB,OAC9BkB,EAAY7kB,KAAK8kB,MAAMxhB,EAAQ,GAAK,GACpCsgB,EAAQhkB,EAAOiD,KAAK+gB,MAAQiB,EAC5BE,EAAYX,EAAS3E,UAIzB,KADAqE,EAASM,EAASzqB,IAAI0f,GAAGuL,gBAClBG,EAAYnB,GAASE,GAAQ,CAClCK,EAAW1qB,EAAKmC,kBAAkBkoB,EAMlC,IAJoB9pB,EAAMgrB,KAAK,SAAU9qB,GACvC,MAAOA,KAASiqB,GAAYA,EAAStH,WAAW3iB,UAM7C,CAAA,KAAIiqB,YAAoB5D,IAe3B,KAdA,IAAI5b,GAASwf,EAAStmB,OAAO8G,MAC7B,IAAIA,EAAOzO,QAAU8D,EAAM9D,QAAUyO,EAAO3K,EAAM9D,OAAS,IAAMgtB,EAS/D,KAJAkB,GAAW3qB,EAAKmC,kBAAkBkoB,GAClCiB,EAAYX,EAAS3E,WAUzBqE,EAASA,EAAOc,gBAIdX,EAAOhE,aAAemE,EAASzqB,IAAI0f,KACrCrf,EAAMlE,QAAQ,SAAUoE,GACtBkqB,EAASvmB,OAAOmL,WAAW9O,EAAMkqB,KAEnCO,GAAQ,KAMZA,IAEF/kB,EAAOiD,KAAK8gB,OAASA,EACrB/jB,EAAOiD,KAAK+gB,MAAQX,EAAUxD,YAIhC7f,EAAOzB,gBAAgBC,GAEvBoC,EAAMO,mBAQRtH,EAAK8pB,UAAY,SAAUvpB,EAAOwG,GAChC,IAAK4D,MAAMjL,QAAQa,GACjB,MAAOP,GAAK6pB,QAAQtpB,GAAQwG;2CAE9B,IAAqB,IAAjBxG,EAAM9D,OAAV,CAIA,GAAI+sB,GAAYjpB,EAAM,GAClB4F,EAASqjB,EAAUrjB,OACnB/B,EAASolB,EAAUplB,OACnBiH,EAAajH,EAAO8G,OAAO3O,QAAQitB,GACnC1a,EAAa1K,EAAO8G,OAAOG,EAAa9K,EAAM9D,SAAW2H,EAAO+K,MAGhE5O,GAAM,IACRA,EAAM,GAAGL,IAAIwC,KAAKH,OAGpB,IAAIV,IACFtB,MAAOA,EACP6P,aAAcjK,EAAOiD,KAAKgH,aAC1BC,aAAclK,EAAON,eACrByJ,cAAenJ,EAAOiD,KAAKkG,cAC3BE,cAAeV,EAGbjN,GAAOyN,eAAiBzN,EAAO2N,eAEjCrJ,EAAOjD,UAAU,YAAarB,GAGhCoF,SAAS+iB,KAAK/W,MAAMgX,OAAS9jB,EAAOiD,KAAK2gB,UACzC5jB,EAAOhG,YAAY6N,SACnBzN,EAAMlE,QAAQ,SAAUoE,GAClBsG,EAAMM,SAAW5G,EAAKP,IAAIkJ,MAAQrC,EAAMM,SAAW5G,EAAKP,IAAIwC,MAC9DyD,EAAOhG,YAAY0N,sBAGhB1H,GAAOiD,KAEVjD,EAAO+D,YACT1O,EAAKgP,oBAAoBL,OAAQ,YAAahE,EAAO+D,iBAC9C/D,GAAO+D,WAEZ/D,EAAOkE,UACT7O,EAAKgP,oBAAoBL,OAAQ,UAAWhE,EAAOkE,eAC5ClE,GAAOkE,SAIhBlE,EAAOZ,iBAEPwB,EAAMO,mBASRtH,EAAK9C,UAAUkmB,WAAa,SAAU3iB,GAEpC,IADA,GAAI8c,GAAIhjB,KAAK6J,OACNmZ,GAAG,CACR,GAAIA,GAAK9c,EACP,OAAO,CAET8c,GAAIA,EAAEnZ,OAGR,OAAO,GAQTpE,EAAK9C,UAAUsuB,gBAAkB,WAC/B,MAAOvkB,UAASC,cAAc,QAQhClH,EAAK9C,UAAUyQ,aAAe,SAAUD,GAClCnT,KAAK2F,IAAI0f,KACPlS,EACFlS,EAAKiX,aAAalY,KAAK2F,IAAI0f,GAAI,wBAG/BpkB,EAAKoX,gBAAgBrY,KAAK2F,IAAI0f,GAAI,wBAGhCrlB,KAAK4U,QACP5U,KAAK4U,OAAOxB,aAAaD,GAGvBnT,KAAK2Q,QACP3Q,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BA,EAAMsJ,aAAaD,OAW3B1N,EAAK9C,UAAUwN,YAAc,SAAU3B,EAAU0iB,GAC/ClxB,KAAKwO,SAAWA,EAEZxO,KAAK2F,IAAI0f,KACP7W,EACFvN,EAAKiX,aAAalY,KAAK2F,IAAI0f,GAAI,uBAG/BpkB,EAAKoX,gBAAgBrY,KAAK2F,IAAI0f,GAAI,uBAGhC6L,EACFjwB,EAAKiX,aAAalY,KAAK2F,IAAI0f,GAAI,oBAG/BpkB,EAAKoX,gBAAgBrY,KAAK2F,IAAI0f,GAAI,oBAGhCrlB,KAAK4U,QACP5U,KAAK4U,OAAOzE,YAAY3B,GAGtBxO,KAAK2Q,QACP3Q,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BA,EAAMqG,YAAY3B,OAW1B/I,EAAK9C,UAAUqR,YAAc,SAAUxM,GACrCxH,KAAKwH,MAAQA,EACbxH,KAAKiK,aAOPxE,EAAK9C,UAAUoF,YAAc,SAAUR,GACrCvH,KAAKuH,MAAQA,EACbvH,KAAKiK,aAaPxE,EAAK9C,UAAUsH,UAAY,SAAUpJ,GAEnC,GAAIswB,GAAUnxB,KAAK2F,IAAIopB,IACnBoC,KACFA,EAAQzY,MAAM0Y,WAA+B,GAAlBpxB,KAAKyrB,WAAkB,KAIpD,IAAIgD,GAAWzuB,KAAK2F,IAAI4B,KACxB,IAAIknB,EAAU,CACRzuB,KAAKwpB,eAEPiF,EAAS4C,gBAAkBrxB,KAAKyB,SAAS8F,MACzCknB,EAAS6C,YAAa,EACtB7C,EAAS7hB,UAAY,oBAIrB6hB,EAAS7hB,UAAY,qBAGvB,IAAI2kB,EAEFA,OADgBzrB,IAAd9F,KAAK0T,MACK1T,KAAK0T,UAEI5N,IAAd9F,KAAKuH,MACAvH,KAAKuH,MAEVvH,KAAKksB,aACAlsB,KAAKgK,KAGL,GAEdykB,EAAShI,UAAYzmB,KAAKwxB,YAAYD,GAEtCvxB,KAAKyxB,gBAIP,GAAI3D,GAAW9tB,KAAK2F,IAAI6B,KACxB,IAAIsmB,EAAU,CACZ,GAAIE,GAAQhuB,KAAK2Q,OAAS3Q,KAAK2Q,OAAOzO,OAAS,CAC9B,UAAblC,KAAKgK,MACP8jB,EAASrH,UAAY,IAAMuH,EAAQ,IACnC/sB,EAAKiX,aAAalY,KAAK2F,IAAI0f,GAAI,0BAEX,UAAbrlB,KAAKgK,MACZ8jB,EAASrH,UAAY,IAAMuH,EAAQ,IACnC/sB,EAAKiX,aAAalY,KAAK2F,IAAI0f,GAAI,2BAG/ByI,EAASrH,UAAYzmB,KAAKwxB,YAAYxxB,KAAKwH,OAC3CvG,EAAKoX,gBAAgBrY,KAAK2F,IAAI0f,GAAI,0BAKtCrlB,KAAK4sB,kBACL5sB,KAAK8sB,kBAGDjsB,IAAqC,IAA1BA,EAAQwrB,eAErBrsB,KAAK0xB,oBAGH7wB,IAA+B,IAApBA,EAAQqJ,SAEjBlK,KAAK2Q,QACP3Q,KAAK2Q,OAAO7O,QAAQ,SAAUgI,GAC5BA,EAAMG,UAAUpJ,KAMlBb,KAAK4U,QACP5U,KAAK4U,OAAO3K,aAQhBxE,EAAK9C,UAAU8uB,cAAgB,WAE1BzxB,KAAK4L,QAAU5L,KAAK4L,OAAO/K,UAE5Bb,KAAKwE,OAASiB,EAAKksB,YAAY3xB,KAAK4L,OAAO/K,QAAQ2D,OAAQxE,KAAKkqB,WAC5DlqB,KAAKwE,OACPxE,KAAKouB,KAAO3oB,EAAKmsB,UAAU5xB,KAAKwE,cAGzBxE,MAAKouB,OAYlB3oB,EAAKmsB,UAAY,SAAUptB,GACzB,GAAIA,EAAO4pB,KACT,MAAO5pB,GAAO4pB,IAGhB,IAAIyD,GAAYrtB,EAAOstB,OAASttB,EAAOutB,OAASvtB,EAAOwtB,KACvD,IAAIH,EAAW,CACb,GAAItb,GAAQsb,EAAUtoB,OAAO,SAAUC,GAAQ,MAAOA,GAAM4kB,MAC5D,IAAI7X,EAAMrU,OAAS,EACjB,MAAOqU,GAAM,GAAG6X,KAIpB,MAAO,OAUT3oB,EAAKksB,YAAc,SAAUntB,EAAQylB,GAGnC,IAAK,GAFDgI,GAAcztB,EAETS,EAAI,EAAGA,EAAIglB,EAAK/nB,QAAU+vB,EAAahtB,IAAK,CACnD,GAAI0M,GAAMsY,EAAKhlB,EACI,iBAAR0M,IAAoBsgB,EAAYC,WACzCD,EAAcA,EAAYC,WAAWvgB,IAAQ,KAEvB,gBAARA,IAAoBsgB,EAAYtf,QAC9Csf,EAAcA,EAAYtf,OAI9B,MAAOsf,IASTxsB,EAAK9C,UAAU+uB,kBAAoB,WACjC,GAAI5D,GAAW9tB,KAAK2F,IAAI6B,MACpBmJ,EAAS3Q,KAAK2Q,MACdmd,IAAYnd,IACG,SAAb3Q,KAAKgK,KACP2G,EAAO7O,QAAQ,SAAUgI,EAAO4J,GAC9B5J,EAAM4J,MAAQA,CACd,IAAI0X,GAAathB,EAAMnE,IAAI4B,KACvB6jB,KACFA,EAAW3E,UAAY/S,KAIP,UAAb1T,KAAKgK,MACZ2G,EAAO7O,QAAQ,SAAUgI,OACJhE,IAAfgE,EAAM4J,cACD5J,GAAM4J,UAEM5N,IAAfgE,EAAMvC,QACRuC,EAAMvC,MAAQ,SAY1B9B,EAAK9C,UAAUwvB,gBAAkB,WAC/B,GAAIrE,EA2BJ,OAzBiB,SAAb9tB,KAAKgK,MACP8jB,EAAWphB,SAASC,cAAc,OAClCmhB,EAASrH,UAAY,SAED,UAAbzmB,KAAKgK,MACZ8jB,EAAWphB,SAASC,cAAc,OAClCmhB,EAASrH,UAAY,UAGhBzmB,KAAKyB,SAAS+F,OAASvG,EAAKyW,MAAM1X,KAAKwH,QAE1CsmB,EAAWphB,SAASC,cAAc,KAClCmhB,EAASsE,KAAOpyB,KAAKwH,MACrBsmB,EAAShhB,OAAS,SAClBghB,EAASrH,UAAYzmB,KAAKwxB,YAAYxxB,KAAKwH,SAI3CsmB,EAAWphB,SAASC,cAAc,OAClCmhB,EAASuD,gBAAkBrxB,KAAKyB,SAAS+F,MACzCsmB,EAASwD,YAAa,EACtBxD,EAASrH,UAAYzmB,KAAKwxB,YAAYxxB,KAAKwH,QAIxCsmB,GAQTroB,EAAK9C,UAAU0vB,uBAAyB,WAEtC,GAAI3qB,GAASgF,SAASC,cAAc,SAapC,OAZAjF,GAAOsC,KAAO,SACVhK,KAAKksB,cACPxkB,EAAOkF,UAAY5M,KAAKspB,SAAW,sBAAwB,uBAC3D5hB,EAAOmG,MACH,wGAIJnG,EAAOkF,UAAY,uBACnBlF,EAAOmG,MAAQ,IAGVnG,GASTjC,EAAK9C,UAAUqsB,eAAiB,WAC9B,GAAIrpB,GAAM3F,KAAK2F,IACXwrB,EAAUzkB,SAASC,cAAc,SACjCtE,EAAQqE,SAASC,cAAc,QACnCwkB,GAAQzY,MAAM4Z,eAAiB,WAC/BnB,EAAQvkB,UAAY,oBACpBukB,EAAQxpB,YAAYU,EACpB,IAAIgd,GAAK3Y,SAASC,cAAc,KAChCtE,GAAMV,YAAY0d,EAGlB,IAAIkN,GAAW7lB,SAASC,cAAc,KACtC4lB,GAAS3lB,UAAY,kBACrByY,EAAG1d,YAAY4qB,GACf5sB,EAAI+B,OAAS1H,KAAKqyB,yBAClBE,EAAS5qB,YAAYhC,EAAI+B,QACzB/B,EAAI4sB,SAAWA,CAGf,IAAIzD,GAAUpiB,SAASC,cAAc,KACrCmiB,GAAQliB,UAAY,kBACpByY,EAAG1d,YAAYmnB,GACfnpB,EAAI4B,MAAQvH,KAAKixB,kBACjBnC,EAAQnnB,YAAYhC,EAAI4B,OACxB5B,EAAImpB,QAAUA,CAGd,IAAI0D,GAAc9lB,SAASC,cAAc,KACzC6lB,GAAY5lB,UAAY,kBACxByY,EAAG1d,YAAY6qB,GACE,UAAbxyB,KAAKgK,MAAiC,SAAbhK,KAAKgK,OAChCwoB,EAAY7qB,YAAY+E,SAASoN,eAAe,MAChD0Y,EAAY5lB,UAAY,wBAE1BjH,EAAI6sB,YAAcA,CAGlB,IAAIjI,GAAU7d,SAASC,cAAc,KAOrC,OANA4d,GAAQ3d,UAAY,kBACpByY,EAAG1d,YAAY4iB,GACf5kB,EAAI6B,MAAQxH,KAAKmyB,kBACjB5H,EAAQ5iB,YAAYhC,EAAI6B,OACxB7B,EAAI4kB,QAAUA,EAEP4G,GAOT1rB,EAAK9C,UAAU4J,QAAU,SAAUC,GACjC,GAAIxC,GAAOwC,EAAMxC,KACb8C,EAASN,EAAMM,QAAUN,EAAMimB,WAC/B9sB,EAAM3F,KAAK2F,IACXO,EAAOlG,KACP0yB,EAAa1yB,KAAKksB,YActB,IAVIpf,GAAUnH,EAAIkJ,MAAQ/B,GAAUnH,EAAIwC,OAC1B,aAAR6B,EACFhK,KAAK4L,OAAOhG,YAAYuN,UAAUnT,MAEnB,YAARgK,GACPhK,KAAK4L,OAAOhG,YAAY0N,eAKhB,SAARtJ,GAAmB8C,GAAUnH,EAAIwC,KAAM,CACzC,GAAIvC,GAAcM,EAAK0F,OAAOhG,WAC9BA,GAAYuN,UAAUjN,GACtBN,EAAY4N,OACZvS,EAAKiX,aAAavS,EAAIwC,KAAM,uBAC5BnI,KAAKyO,gBAAgB9I,EAAIwC,KAAM,WAC7BlH,EAAKoX,gBAAgB1S,EAAIwC,KAAM,uBAC/BvC,EAAY6N,SACZ7N,EAAY0N,gBAKhB,GAAY,SAARtJ,IACE8C,GAAUnH,EAAI+B,SACiB,SAA7BxB,EAAK0F,OAAO/K,QAAQgC,MAAgD,SAA7BqD,EAAK0F,OAAO/K,QAAQgC,OAAwC,QAApBiK,EAAOtB,WACtFknB,EAAY,CACd,GAAIxoB,GAAUsC,EAAM4E,OACpBpR,MAAK2yB,UAAUzoB,GAMT,UAARF,GAAoB8C,GAAUnH,EAAIsoB,WACpCjuB,KAAK2F,IAAI6B,MAAMif,WAAazmB,KAAKwH,MACjCxH,KAAKwrB,gBAIK,UAARxhB,GAAoB8C,GAAUnH,EAAIwF,SACpCnL,KAAK2F,IAAI6B,MAAMif,UAAY9gB,EAAIwF,OAAO3D,MACtCxH,KAAKwrB,eACLxrB,KAAK8sB,kBAIP,IAAIgB,GAAWnoB,EAAI6B,KACnB,IAAIsF,GAAUghB,EAEZ,OAAQ9jB,GACN,IAAK,OACL,IAAK,SACHhK,KAAKwrB,cAAa,GAClBxrB,KAAK8sB,kBACD9sB,KAAKwH,QACPsmB,EAASrH,UAAYzmB,KAAKwxB,YAAYxxB,KAAKwH,OAE7C,MAEF,KAAK,QAEHxH,KAAKwrB,cAAa,GAClBxrB,KAAK8sB,iBACL,MAEF,KAAK,UACL,IAAK,YAEH9sB,KAAK4L,OAAO/F,UAAY7F,KAAK4L,OAAON,cACpC,MAEF,KAAK,SACCkB,EAAM4E,SAAYpR,KAAKyB,SAAS+F,OAC9BvG,EAAKyW,MAAM1X,KAAKwH,QAClBoI,OAAOgjB,KAAK5yB,KAAKwH,MAAO,SAG5B,MAEF,KAAK,QAEHxH,KAAKwrB,cAAa,GAClBxrB,KAAK8sB,iBACL,MAEF,KAAK,MACL,IAAK,QACHxgB,WAAW,WACTpG,EAAKslB,cAAa,GAClBtlB,EAAK4mB,mBACJ,GAMT,GAAI2B,GAAW9oB,EAAI4B,KACnB,IAAIuF,GAAU2hB,EACZ,OAAQzkB,GACN,IAAK,OACL,IAAK,SACHhK,KAAKirB,cAAa,GAClBjrB,KAAK4sB,kBACD5sB,KAAKuH,QACPknB,EAAShI,UAAYzmB,KAAKwxB,YAAYxxB,KAAKuH,OAE7C,MAEF,KAAK,QACHvH,KAAKirB,cAAa,GAClBjrB,KAAKyxB,gBACLzxB,KAAK4sB,kBACL5sB,KAAK8sB,iBACL,MAEF,KAAK,UACL,IAAK,YACH9sB,KAAK4L,OAAO/F,UAAY7F,KAAK4L,OAAON,cACpC,MAEF,KAAK,QACHtL,KAAKirB,cAAa,GAClBjrB,KAAK4sB,iBACL,MAEF,KAAK,MACL,IAAK,QACHtgB,WAAW,WACTpG,EAAK+kB,cAAa,GAClB/kB,EAAK0mB,mBACJ,GAQL9f,GADUnH,EAAIopB,KACItoB,YAAsB,SAARuD,GAAoBwC,EAAMkC,gBAC/B5I,IAAjB0G,EAAMqmB,QACbrmB,EAAMqmB,QAAkC,IAAvB7yB,KAAKyrB,WAAa,GACnCjf,EAAM0C,MAAQjO,EAAK0W,gBAAgBhS,EAAI6sB,eAChCE,EAENjE,IACFxtB,EAAK+X,wBAAwByV,GAC7BA,EAASzmB,SAIP8lB,IAAa9tB,KAAKouB,OACpBntB,EAAK+X,wBAAwB8U,GAC7BA,EAAS9lB,WAIT8E,GAAUnH,EAAI4sB,UAAaG,IAAe5lB,GAAUnH,EAAImpB,SAAWhiB,GAAUnH,EAAI6sB,aAC1E,SAARxoB,GAAoBwC,EAAMkC,UACzB+f,IACFxtB,EAAK+X,wBAAwByV,GAC7BA,EAASzmB,SAID,WAARgC,GACFhK,KAAK8yB,UAAUtmB,IAQnB/G,EAAK9C,UAAUmwB,UAAY,SAAUtmB,GACnC,GAMI2Z,GAAU4M,EAAUC,EAASC,EAE7Bpd,EACAd,EACA/O,EACAD,EAXAiL,EAASxE,EAAMyE,OAASzE,EAAM0E,QAC9BpE,EAASN,EAAMM,QAAUN,EAAMimB,WAC/BrhB,EAAU5E,EAAM4E,QAChBE,EAAW9E,EAAM8E,SACjBH,EAAS3E,EAAM2E,OACfI,GAAU,EAEV9P,EAAwC,SAA7BzB,KAAK4L,OAAO/K,QAAQgC,KAK/BqwB,EAAgBlzB,KAAK4L,OAAO7F,eAAeC,MAAM9D,OAAS,EACxDlC,KAAK4L,OAAO7F,eAAeC,OAC1BhG,MACHivB,EAAYiE,EAAc,GAC1BhE,EAAWgE,EAAcA,EAAchxB,OAAS,EAGpD,IAAc,IAAV8O,GACF,GAAIlE,GAAU9M,KAAK2F,IAAI6B,MAChBxH,KAAKyB,SAAS+F,QAASgF,EAAM4E,SAC5BnQ,EAAKyW,MAAM1X,KAAKwH,SAClBoI,OAAOgjB,KAAK5yB,KAAKwH,MAAO,UACxB+J,GAAU,OAIX,IAAIzE,GAAU9M,KAAK2F,IAAI+B,OAAQ,CAClC,GAAIgrB,GAAa1yB,KAAKksB,YACtB,IAAIwG,EAAY,CACd,GAAIxoB,GAAUsC,EAAM4E,OACpBpR,MAAK2yB,UAAUzoB,GACf4C,EAAO9E,QACPuJ,GAAU,QAIX,IAAc,IAAVP,EACHI,GAAW3P,IACbgE,EAAKqN,YAAYogB,GACjB3hB,GAAU,OAGT,IAAc,IAAVP,EACHI,IACFpR,KAAK2yB,UAAUrhB,GACfxE,EAAO9E,QACPuJ,GAAU,OAGT,IAAc,IAAVP,GAAgBvP,EACnB2P,IACFpR,KAAKyO,gBAAgB3B,GACrByE,GAAU,OAGT,IAAc,IAAVP,GAAgBvP,EACnB2P,IACF3L,EAAKsN,SAASmgB,GACd3hB,GAAU,OAGT,IAAc,IAAVP,GAAgBvP,EACnB2P,IAAYE,GACdtR,KAAKmzB,kBACL5hB,GAAU,GAEHH,GAAWE,IAClBtR,KAAKozB,iBACL7hB,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,EAAQ,CAEV,GAAIkiB,GAAUrzB,KAAKszB,WACfD,IACFA,EAAQrrB,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,IAE1DyE,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,EAAQ,CAEV,GAAIqiB,GAAWxzB,KAAKyzB,YAChBD,IACFA,EAASxrB,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,IAE3DyE,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,IAAWG,EAAU,CAEvB,GAAIoiB,GAAc1zB,KAAK2zB,iBAAiB7mB,EACpC4mB,IACF1zB,KAAKgI,MAAMhI,KAAKuzB,gBAAgBG,IAElCniB,GAAU,MAEP,IAAIJ,GAAUG,GAAY7P,EAAU,CACvC,GAAIytB,EAAS5F,SAAU,CACrB,GAAIsK,GAAY1E,EAASnD,WACzBiH,GAAUY,EAAYA,EAAU3H,gBAAcnmB,OAE3C,CACH,GAAIH,GAAMupB,EAAS5mB,QACnB0qB,GAAUrtB,EAAIsmB,YAEZ+G,IACFD,EAAWttB,EAAKmC,kBAAkBorB,GAClCC,EAAWD,EAAQ/G,YACnB4H,EAAYpuB,EAAKmC,kBAAkBqrB,GAC/BF,GAAYA,YAAoBxG,IACG,GAAjC2C,EAASrlB,OAAO8G,OAAOzO,QACzB2xB,GAAaA,EAAUhqB,SACzBgM,EAAe7V,KAAK4L,OAAON,eAC3ByJ,EAAgBma,EAASE,eAEzB8D,EAAcpxB,QAAQ,SAAUoE,GAC9B2tB,EAAUhqB,OAAOmL,WAAW9O,EAAM2tB,KAEpC7zB,KAAKgI,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,IAErD9M,KAAK4L,OAAOjD,UAAU,aACpB3C,MAAOktB,EACPne,cAAeA,EACfE,cAAe4e,EACfhe,aAAcA,EACdC,aAAc9V,KAAK4L,OAAON,wBAM/B,IAAc,IAAV0F,EACHG,IAAWG,GAEb6U,EAAWnmB,KAAK8zB,gBACZ3N,IACFnmB,KAAK4L,OAAO+C,UAAS,GACrBwX,EAASne,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,KAE3DyE,GAAU,IAEFJ,GAAUC,GAAWE,GAAY7P,GAEzC0kB,EAAWnmB,KAAK8zB,gBACZ3N,IACFpgB,EAAiB/F,KAAK4L,OAAO7F,eAC7BA,EAAe0J,MAAQ1J,EAAe0J,OAASzP,KAC/C+F,EAAe2J,IAAMyW,EACrBngB,EAAQhG,KAAK4L,OAAOoE,mBAAmBjK,EAAe0J,MAAO1J,EAAe2J,KAE5E1P,KAAK4L,OAAOT,OAAOnF,GACnBmgB,EAASne,MAAM,UAEjBuJ,GAAU,GAEHJ,GAAUG,GAAY7P,IAE7B0kB,EAAW8I,EAAU6E,gBACjB3N,GAAYA,EAAStc,SACvBgM,EAAe7V,KAAK4L,OAAON,eAC3ByJ,EAAgBma,EAASE,eAEzB8D,EAAcpxB,QAAQ,SAAUoE,GAC9BigB,EAAStc,OAAOmL,WAAW9O,EAAMigB,KAEnCnmB,KAAKgI,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,IAErD9M,KAAK4L,OAAOjD,UAAU,aACpB3C,MAAOktB,EACPne,cAAeA,EACfE,cAAekR,EACftQ,aAAcA,EACdC,aAAc9V,KAAK4L,OAAON,kBAG9BiG,GAAU,OAGT,IAAc,IAAVP,GACP,GAAIG,IAAWG,EAAU,CAEvB,GAAIyiB,GAAc/zB,KAAKg0B,aAAalnB,EAChCinB,IACF/zB,KAAKgI,MAAMhI,KAAKuzB,gBAAgBQ,IAElCxiB,GAAU,MAEP,IAAIJ,GAAUG,GAAY7P,EAAU,CACvCkE,EAAMspB,EAAU3mB,QAChB,IAAI2rB,GAAUtuB,EAAIirB,eACdqD,KACF9N,EAAW1gB,EAAKmC,kBAAkBqsB,KAClB9N,EAAStc,QACpBsc,YAAoBoG,KACjBpG,EAAS+N,cACfre,EAAe7V,KAAK4L,OAAON,eAC3ByJ,EAAgBma,EAASE,eAEzB8D,EAAcpxB,QAAQ,SAAUoE,GAC9BigB,EAAStc,OAAOmL,WAAW9O,EAAMigB,KAEnCnmB,KAAKgI,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,IAErD9M,KAAK4L,OAAOjD,UAAU,aACpB3C,MAAOktB,EACPne,cAAeA,EACfE,cAAekR,EACftQ,aAAcA,EACdC,aAAc9V,KAAK4L,OAAON,uBAM/B,IAAc,IAAV0F,EACP,GAAIG,IAAWG,EAEbyhB,EAAW/yB,KAAKm0B,YACZpB,IACF/yB,KAAK4L,OAAO+C,UAAS,GACrBokB,EAAS/qB,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,KAE3DyE,GAAU,MAEP,KAAKJ,GAAUC,GAAWE,GAAY7P,EAEzCsxB,EAAW/yB,KAAKm0B,YACZpB,IACFhtB,EAAiB/F,KAAK4L,OAAO7F,eAC7BA,EAAe0J,MAAQ1J,EAAe0J,OAASzP,KAC/C+F,EAAe2J,IAAMqjB,EACrB/sB,EAAQhG,KAAK4L,OAAOoE,mBAAmBjK,EAAe0J,MAAO1J,EAAe2J,KAE5E1P,KAAK4L,OAAOT,OAAOnF,GACnB+sB,EAAS/qB,MAAM,UAEjBuJ,GAAU,MAEP,IAAIJ,GAAUG,GAAY7P,EAAU,CAGrCsxB,EADE7D,EAAS5F,SACA4F,EAASta,OAASsa,EAASta,OAAOuf,gBAAcruB,GAGhDopB,EAASiF,WAEtB,IAAIN,GAAYd,IAAaA,EAASoB,aAAepB,EAASlpB,OAAO+K,OACjEif,IAAaA,EAAUhqB,SACzBgM,EAAe7V,KAAK4L,OAAON,eAC3ByJ,EAAgBma,EAASE,eAEzB8D,EAAcpxB,QAAQ,SAAUoE,GAC9B2tB,EAAUhqB,OAAOmL,WAAW9O,EAAM2tB,KAEpC7zB,KAAKgI,MAAMvC,EAAKunB,cAAgBhtB,KAAKuzB,gBAAgBzmB,IAErD9M,KAAK4L,OAAOjD,UAAU,aACpB3C,MAAOktB,EACPne,cAAeA,EACfE,cAAe4e,EACfhe,aAAcA,EACdC,aAAc9V,KAAK4L,OAAON,kBAG9BiG,GAAU,EAIVA,IACF/E,EAAMO,iBACNP,EAAM4F,oBASV3M,EAAK9C,UAAUgwB,UAAY,SAAUzoB,GACnC,GAAIA,EAAS,CAEX,GAAI7C,GAAQrH,KAAK2F,IAAI0f,GAAG5e,WACpBD,EAAQa,EAAMZ,WACdkE,EAAYnE,EAAMmE,SACtBnE,GAAME,YAAYW,GAGhBrH,KAAKspB,SACPtpB,KAAKoI,SAAS8B,GAGdlK,KAAK0H,OAAOwC,GAGVA,IAEF1D,EAAMmB,YAAYN,GAClBb,EAAMmE,UAAYA,IAQtBlF,EAAKsN,SAAW,SAAS/M,GACvB,IAAKoK,MAAMjL,QAAQa,GACjB,MAAOP,GAAKsN,UAAU/M,GAGxB,IAAIA,GAASA,EAAM9D,OAAS,EAAG,CAC7B,GAAI+sB,GAAYjpB,EAAM,GAClB6D,EAASolB,EAAUplB,OACnB+B,EAASqjB,EAAUrjB,OACnBkF,EAAame,EAAUpE,UAC3Bjf,GAAOhG,YAAY0N,aAGnB,IAAIuC,GAAejK,EAAON,cAC1B7F,GAAK2uB,UAAUpuB,EACf,IAAI8P,GAAelK,EAAON,cAG1BtF,GAAMlE,QAAQ,SAAUoE,GACtBA,EAAK2D,OAAO0jB,QAAQrnB,KAItB0F,EAAOjD,UAAU,eACf3C,MAAOA,EAAMyF,MAAM,GACnB5B,OAAQA,EACR6J,MAAO5C,EACP+E,aAAcA,EACdC,aAAcA,MAWpBrQ,EAAKqN,YAAc,SAAS9M,GAC1B,IAAKoK,MAAMjL,QAAQa,GACjB,MAAOP,GAAKqN,aAAa9M,GAG3B,IAAIA,GAASA,EAAM9D,OAAS,EAAG,CAC7B,GAAIgtB,GAAWlpB,EAAMA,EAAM9D,OAAS,GAChC2H,EAASqlB,EAASrlB,OAClB+B,EAASsjB,EAAStjB,MAEtBA,GAAO+C,SAAS/C,EAAO7F,eAAeC,MAGtC,IAAI6P,GAAejK,EAAON,eACtBmJ,EAAYya,EACZmF,EAASruB,EAAMmD,IAAI,SAAUjD,GAC/B,GAAIwlB,GAAQxlB,EAAKwlB,OAGjB,OAFA7hB,GAAO6K,YAAYgX,EAAOjX,GAC1BA,EAAYiX,EACLA,GAIY,KAAjB1lB,EAAM9D,OACRmyB,EAAO,GAAGrsB,QAGV4D,EAAOT,OAAOkpB,EAEhB,IAAIve,GAAelK,EAAON,cAE1BM,GAAOjD,UAAU,kBACf8L,UAAWya,EACXlpB,MAAOquB,EACPxqB,OAAQA,EACRgM,aAAcA,EACdC,aAAcA,MAYpBrQ,EAAK9C,UAAUwwB,gBAAkB,SAAU5rB,EAAOC,EAAOwC,GACvD,GAAI6L,GAAe7V,KAAK4L,OAAON,eAE3BgpB,EAAU,GAAI7uB,GAAKzF,KAAK4L,QAC1BrE,UAAiBzB,IAATyB,EAAsBA,EAAQ,GACtCC,UAAiB1B,IAAT0B,EAAsBA,EAAQ,GACtCwC,KAAMA,GAERsqB,GAAQ5sB,QAAO,GACf1H,KAAK6J,OAAOyK,aAAaggB,EAASt0B,MAClCA,KAAK4L,OAAOhG,YAAY0N,cACxBghB,EAAQtsB,MAAM,QACd,IAAI8N,GAAe9V,KAAK4L,OAAON,cAE/BtL,MAAK4L,OAAOjD,UAAU,qBACpB3C,OAAQsuB,GACR/f,WAAYvU,KACZ6J,OAAQ7J,KAAK6J,OACbgM,aAAcA,EACdC,aAAcA,KAWlBrQ,EAAK9C,UAAUywB,eAAiB,SAAU7rB,EAAOC,EAAOwC,GACtD,GAAI6L,GAAe7V,KAAK4L,OAAON,eAE3BgpB,EAAU,GAAI7uB,GAAKzF,KAAK4L,QAC1BrE,UAAiBzB,IAATyB,EAAsBA,EAAQ,GACtCC,UAAiB1B,IAAT0B,EAAsBA,EAAQ,GACtCwC,KAAMA,GAERsqB,GAAQ5sB,QAAO,GACf1H,KAAK6J,OAAO6K,YAAY4f,EAASt0B,MACjCA,KAAK4L,OAAOhG,YAAY0N,cACxBghB,EAAQtsB,MAAM,QACd,IAAI8N,GAAe9V,KAAK4L,OAAON,cAE/BtL,MAAK4L,OAAOjD,UAAU,oBACpB3C,OAAQsuB,GACR7f,UAAWzU,KACX6J,OAAQ7J,KAAK6J,OACbgM,aAAcA,EACdC,aAAcA,KAWlBrQ,EAAK9C,UAAU4xB,UAAY,SAAUhtB,EAAOC,EAAOwC,GACjD,GAAI6L,GAAe7V,KAAK4L,OAAON,eAE3BgpB,EAAU,GAAI7uB,GAAKzF,KAAK4L,QAC1BrE,UAAiBzB,IAATyB,EAAsBA,EAAQ,GACtCC,UAAiB1B,IAAT0B,EAAsBA,EAAQ,GACtCwC,KAAMA,GAERsqB,GAAQ5sB,QAAO,GACf1H,KAAK6J,OAAOlC,YAAY2sB,GACxBt0B,KAAK4L,OAAOhG,YAAY0N,cACxBghB,EAAQtsB,MAAM,QACd,IAAI8N,GAAe9V,KAAK4L,OAAON,cAE/BtL,MAAK4L,OAAOjD,UAAU,eACpB3C,OAAQsuB,GACRzqB,OAAQ7J,KAAK6J,OACbgM,aAAcA,EACdC,aAAcA,KASlBrQ,EAAK9C,UAAU6xB,cAAgB,SAAUrgB,GACvC,GAAID,GAAUlU,KAAKgK,IACnB,IAAImK,GAAWD,EAAS,CACtB,GAAI2B,GAAe7V,KAAK4L,OAAON,cAC/BtL,MAAKiU,WAAWE,EAChB,IAAI2B,GAAe9V,KAAK4L,OAAON,cAE/BtL,MAAK4L,OAAOjD,UAAU,cACpBzC,KAAMlG,KACNkU,QAASA,EACTC,QAASA,EACT0B,aAAcA,EACdC,aAAcA,MAWpBrQ,EAAK9C,UAAUuS,KAAO,SAAUyV,GAC9B,GAAK3qB,KAAKksB,aAAV,CAIA,GAAIuI,GAAsB,QAAb9J,GAAwB,EAAI,EACrCzlB,EAAqB,SAAblF,KAAKgK,KAAmB,QAAS,OAC7ChK,MAAKmV,YAEL,IAAIE,GAAYrV,KAAK2Q,OACjB+jB,EAAe10B,KAAK20B,SAGxB30B,MAAK2Q,OAAS3Q,KAAK2Q,OAAOlH,SAG1BzJ,KAAK2Q,OAAOuE,KAAK,SAAUgC,EAAGC,GAC5B,MAAOsd,GAAQ3K,EAAY5S,EAAEhS,GAAOiS,EAAEjS,MAExClF,KAAK20B,UAAsB,GAATF,EAAc,MAAQ,OAExCz0B,KAAK4L,OAAOjD,UAAU,QACpBzC,KAAMlG,KACNqV,UAAWA,EACXD,QAASsf,EACTlf,UAAWxV,KAAK2Q,OAChB4E,QAASvV,KAAK20B,YAGhB30B,KAAKsV,eAOP7P,EAAK9C,UAAUopB,UAAY,WAKzB,MAJK/rB,MAAK4U,SACR5U,KAAK4U,OAAS,GAAI2X,GAAWvsB,KAAK4L,QAClC5L,KAAK4U,OAAOkW,UAAU9qB,OAEjBA,KAAK4U,OAAOtM,UASrB7C,EAAKmC,kBAAoB,SAAUkF,GACjC,KAAOA,GAAQ,CACb,GAAIA,EAAO5G,KACT,MAAO4G,GAAO5G,IAEhB4G,GAASA,EAAOrG,aAWpBhB,EAAK2uB,UAAY,SAAUpuB,GACzB,IAAKoK,MAAMjL,QAAQa,GAEjB,WADAP,GAAK2uB,WAAWpuB,GAIlB,IAAIipB,GAAYjpB,EAAM,GAClB6D,EAASolB,EAAUplB,OACnBiH,EAAame,EAAUpE,UAEvBhhB,GAAO8G,OAAOG,EAAa9K,EAAM9D,QACnC2H,EAAO8G,OAAOG,EAAa9K,EAAM9D,QAAQ8F,QAElC6B,EAAO8G,OAAOG,EAAa,GAClCjH,EAAO8G,OAAOG,EAAa,GAAG9I,QAG9B6B,EAAO7B,SASXvC,EAAK9C,UAAUysB,aAAe,WAC5B,GAAI1b,GAAQ1T,KAAK6J,OAAO8G,OAAO3O,QAAQhC,KACvC,OAAOA,MAAK6J,OAAO8G,OAAO+C,EAAQ,IAAM1T,KAAK6J,OAAO+K,QAQtDnP,EAAK9C,UAAUmxB,cAAgB,WAC7B,GAAI3N,GAAW,KACXxgB,EAAM3F,KAAKsI,QACf,IAAI3C,GAAOA,EAAIc,WAAY,CAEzB,GAAIwtB,GAAUtuB,CACd,IACEsuB,EAAUA,EAAQrD,gBAClBzK,EAAW1gB,EAAKmC,kBAAkBqsB,SAE7BA,GAAY9N,YAAoBoG,KAAepG,EAAS+N,aAEjE,MAAO/N,IAQT1gB,EAAK9C,UAAUwxB,UAAY,WACzB,GAAIpB,GAAW,KACXptB,EAAM3F,KAAKsI,QACf,IAAI3C,GAAOA,EAAIc,WAAY,CAEzB,GAAIusB,GAAUrtB,CACd,IACEqtB,EAAUA,EAAQ/G,YAClB8G,EAAWttB,EAAKmC,kBAAkBorB,SAE7BA,GAAYD,YAAoBxG,KAAewG,EAASmB,aAGjE,MAAOnB,IAQTttB,EAAK9C,UAAU8wB,WAAa,WAC1B,GAAIxE,GAAY,KACZtpB,EAAM3F,KAAKsI,QACf,IAAI3C,GAAOA,EAAIc,WAAY,CACzB,GAAImuB,GAAWjvB,EAAIc,WAAWoT,UAC9BoV,GAAYxpB,EAAKmC,kBAAkBgtB,GAGrC,MAAO3F,IAQTxpB,EAAK9C,UAAU2wB,UAAY,WACzB,GAAIpE,GAAW,KACXvpB,EAAM3F,KAAKsI,QACf,IAAI3C,GAAOA,EAAIc,WAAY,CACzB,GAAIouB,GAAUlvB,EAAIc,WAAWquB,SAE7B,KADA5F,EAAYzpB,EAAKmC,kBAAkBitB,GAC5BA,GAAY3F,YAAoB3C,KAAe2C,EAASgF,aAC7DW,EAAUA,EAAQjE,gBAClB1B,EAAYzpB,EAAKmC,kBAAkBitB,GAGvC,MAAO3F,IASTzpB,EAAK9C,UAAUgxB,iBAAmB,SAAU/b,GAC1C,GAAIjS,GAAM3F,KAAK2F,GAEf,QAAQiS,GACN,IAAKjS,GAAI6B,MACP,GAAIxH,KAAKwpB,cACP,MAAO7jB,GAAI4B,KAGf,KAAK5B,GAAI4B,MACP,GAAIvH,KAAKksB,aACP,MAAOvmB,GAAI+B,MAGf,KAAK/B,GAAI+B,OACP,MAAO/B,GAAIwC,IACb,KAAKxC,GAAIwC,KACP,GAAIxC,EAAIkJ,KACN,MAAOlJ,GAAIkJ,IAGf,SACE,MAAO,QAUbpJ,EAAK9C,UAAUqxB,aAAe,SAAUpc,GACtC,GAAIjS,GAAM3F,KAAK2F,GAEf,QAAQiS,GACN,IAAKjS,GAAIkJ,KACP,MAAOlJ,GAAIwC,IACb,KAAKxC,GAAIwC,KACP,GAAInI,KAAKksB,aACP,MAAOvmB,GAAI+B,MAGf,KAAK/B,GAAI+B,OACP,GAAI1H,KAAKwpB,cACP,MAAO7jB,GAAI4B,KAGf,KAAK5B,GAAI4B,MACP,IAAKvH,KAAKksB,aACR,MAAOvmB,GAAI6B,KAEf,SACE,MAAO,QAYb/B,EAAK9C,UAAU4wB,gBAAkB,SAAUthB,GACzC,GAAItM,GAAM3F,KAAK2F,GACf,KAAK,GAAIlC,KAAQkC,GACf,GAAIA,EAAIqB,eAAevD,IACjBkC,EAAIlC,IAASwO,EACf,MAAOxO,EAIb,OAAO,OASTgC,EAAK9C,UAAUupB,WAAa,WAC1B,MAAoB,SAAblsB,KAAKgK,MAAgC,UAAbhK,KAAKgK,MAItCvE,EAAKsvB,aACHC,KAAQ,8HAGR5d,OAAU,+EAEV6d,MAAS,yEAETC,OAAU,oGAYZzvB,EAAK9C,UAAU8L,gBAAkB,SAAUgE,EAAQC,GACjD,GAAIxM,GAAOlG,KACPm1B,EAAS1vB,EAAKsvB,YACdpiB,IAgDJ,IA9CI3S,KAAKyB,SAAS+F,OAChBmL,EAAMC,MACJrK,KAAM,OACNsF,MAAO,gCACPjB,UAAW,mBAAqB5M,KAAKgK,KACrCmd,UAEI5e,KAAM,OACNqE,UAAW,wBACO,QAAb5M,KAAKgK,KAAiB,uBAAyB,IACpD6D,MAAOsnB,EAAOH,KACdniB,MAAO,WACL3M,EAAKsuB,cAAc,WAIrBjsB,KAAM,QACNqE,UAAW,yBACO,SAAb5M,KAAKgK,KAAkB,uBAAyB,IACrD6D,MAAOsnB,EAAOF,MACdpiB,MAAO,WACL3M,EAAKsuB,cAAc,YAIrBjsB,KAAM,SACNqE,UAAW,0BACO,UAAb5M,KAAKgK,KAAmB,uBAAyB,IACtD6D,MAAOsnB,EAAO/d,OACdvE,MAAO,WACL3M,EAAKsuB,cAAc,aAIrBjsB,KAAM,SACNqE,UAAW,0BACO,UAAb5M,KAAKgK,KAAmB,uBAAyB,IACtD6D,MAAOsnB,EAAOD,OACdriB,MAAO,WACL3M,EAAKsuB,cAAc,eAOzBx0B,KAAKksB,aAAc,CACrB,GAAIvB,GAAgC,OAAlB3qB,KAAK20B,UAAsB,OAAQ,KACrDhiB,GAAMC,MACJrK,KAAM,OACNsF,MAAO,2BAA6B7N,KAAKgK,KACzC4C,UAAW,mBAAqB+d,EAChC9X,MAAO,WACL3M,EAAKgP,KAAKyV,IAEZxD,UAEI5e,KAAM,YACNqE,UAAW,sBACXiB,MAAO,2BAA6B7N,KAAKgK,KAAO,sBAChD6I,MAAO,WACL3M,EAAKgP,KAAK,UAIZ3M,KAAM,aACNqE,UAAW,uBACXiB,MAAO,2BAA6B7N,KAAKgK,KAAM,uBAC/C6I,MAAO,WACL3M,EAAKgP,KAAK,aAOpB,GAAIlV,KAAK6J,QAAU7J,KAAK6J,OAAOqiB,aAAc,CACvCvZ,EAAMzQ,QAERyQ,EAAMC,MACJ5I,KAAQ,aAKZ,IAAI2G,GAASzK,EAAK2D,OAAO8G,MACrBzK,IAAQyK,EAAOA,EAAOzO,OAAS,IACjCyQ,EAAMC,MACJrK,KAAM,SACNsF,MAAO,wEACP0Z,aAAc,8CACd3a,UAAW,oBACXiG,MAAO,WACL3M,EAAKquB,UAAU,GAAI,GAAI,SAEzBpN,UAEI5e,KAAM,OACNqE,UAAW,uBACXiB,MAAOsnB,EAAOH,KACdniB,MAAO,WACL3M,EAAKquB,UAAU,GAAI,GAAI,WAIzBhsB,KAAM,QACNqE,UAAW,wBACXiB,MAAOsnB,EAAOF,MACdpiB,MAAO,WACL3M,EAAKquB,UAAU,UAIjBhsB,KAAM,SACNqE,UAAW,yBACXiB,MAAOsnB,EAAO/d,OACdvE,MAAO,WACL3M,EAAKquB,UAAU,UAIjBhsB,KAAM,SACNqE,UAAW,yBACXiB,MAAOsnB,EAAOD,OACdriB,MAAO,WACL3M,EAAKquB,UAAU,GAAI,GAAI,eAQjC5hB,EAAMC,MACJrK,KAAM,SACNsF,MAAO,mEACP0Z,aAAc,8CACd3a,UAAW,oBACXiG,MAAO,WACL3M,EAAKitB,gBAAgB,GAAI,GAAI,SAE/BhM,UAEI5e,KAAM,OACNqE,UAAW,uBACXiB,MAAOsnB,EAAOH,KACdniB,MAAO,WACL3M,EAAKitB,gBAAgB,GAAI,GAAI,WAI/B5qB,KAAM,QACNqE,UAAW,wBACXiB,MAAOsnB,EAAOF,MACdpiB,MAAO,WACL3M,EAAKitB,gBAAgB,UAIvB5qB,KAAM,SACNqE,UAAW,yBACXiB,MAAOsnB,EAAO/d,OACdvE,MAAO,WACL3M,EAAKitB,gBAAgB,UAIvB5qB,KAAM,SACNqE,UAAW,yBACXiB,MAAOsnB,EAAOD,OACdriB,MAAO,WACL3M,EAAKitB,gBAAgB,GAAI,GAAI,eAMjCnzB,KAAKyB,SAAS8F,QAEhBoL,EAAMC,MACJrK,KAAM,YACNsF,MAAO,gCACPjB,UAAW,uBACXiG,MAAO,WACLpN,EAAKqN,YAAY5M,MAKrByM,EAAMC,MACJrK,KAAM,SACNsF,MAAO,+BACPjB,UAAW,oBACXiG,MAAO,WACLpN,EAAKsN,SAAS7M,OAMX,GAAIV,GAAYmN,GAAQK,MAAON,IACrCO,KAAKR,EAAQzS,KAAK4L,OAAOxE,UAShC3B,EAAK9C,UAAUwoB,SAAW,SAAS3jB,GACjC,MAAIA,aAAiB4I,OACZ,QAEL5I,YAAiB5F,QACZ,SAEY,gBAAX,IAA0D,gBAA5B5B,MAAKytB,YAAYjmB,GAChD,SAGF,QAUT/B,EAAK9C,UAAU8qB,YAAc,SAASlM,GACpC,GAAI6T,GAAQ7T,EAAIkL,cACZ4I,EAAMhe,OAAOkK,GACb+T,EAAWva,WAAWwG,EAE1B,OAAW,IAAPA,EACK,GAES,QAAT6T,EACA,KAES,QAATA,GAGS,SAATA,IAGCG,MAAMF,IAASE,MAAMD,GAItB/T,EAHA8T,IAaX5vB,EAAK9C,UAAU6uB,YAAc,SAAUjpB,GACrC,GAAoB,gBAATA,GACT,MAAO+O,QAAO/O,EAGd,IAAIitB,GAAcle,OAAO/O,GACpBwO,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,WACfA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UAEfjW,EAAOwC,KAAKC,UAAUiyB,GACtBC,EAAO30B,EAAK8a,UAAU,EAAG9a,EAAKoB,OAAS,EAI3C,QAH0C,IAAtClC,KAAK4L,OAAO/K,QAAQ60B,gBACtBD,EAAOx0B,EAAK6V,mBAAmB2e,IAE1BA,GAUXhwB,EAAK9C,UAAUgrB,cAAgB,SAAUgI,GACvC,GAAI70B,GAAO,IAAMd,KAAK41B,YAAYD,GAAe,GAGjD,OAFkB10B,GAAKmC,MAAMtC,GAGxBiW,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,iBAAkB,KAC1BA,QAAQ,SAAU,MAYzBtR,EAAK9C,UAAUizB,YAAc,SAAUrtB,GAIrC,IAFA,GAAIstB,GAAU,GACV5wB,EAAI,EACDA,EAAIsD,EAAKrG,QAAQ,CACtB,GAAIzB,GAAI8H,EAAK6N,OAAOnR,EACX,OAALxE,EACFo1B,GAAW,MAEC,MAALp1B,GACPo1B,GAAWp1B,EACXwE,IAEAxE,EAAI8H,EAAK6N,OAAOnR,GACN,KAANxE,IAAwC,GAA5B,aAAauB,QAAQvB,KACnCo1B,GAAW,MAEbA,GAAWp1B,GAGXo1B,GADY,KAALp1B,EACI,MAGAA,EAEbwE,IAGF,MAAO4wB,GAIT,IAAItJ,GAAaxC,EAAkBtkB,EAEnC5F,GAAOD,QAAU6F,GAKZ,SAAS5F,EAAQD,GAOtBC,EAAOD,QAAU,QAASkqB,GAAa5S,EAAGC,GACzC,YACA,IAeC2e,GAAQC,EAfLC,EAAK,8EACRC,EAAM,iBACNC,EAAM,iHACNC,EAAM,iBAENlxB,EAAI,SAASmxB,GAAK,MAAOtM,GAAYuM,cAAgB,GAAKD,GAAG3J,eAAiB,GAAK2J,GAEnFE,EAAIrxB,EAAEiS,GAAGH,QAAQkf,EAAK,KAAO,GAC7BM,EAAItxB,EAAEkS,GAAGJ,QAAQkf,EAAK,KAAO,GAE7BO,EAAKF,EAAEvf,QAAQif,EAAI,UAAUjf,QAAQ,MAAM,IAAIA,QAAQ,MAAM,IAAIqB,MAAM,MACvEqe,EAAKF,EAAExf,QAAQif,EAAI,UAAUjf,QAAQ,MAAM,IAAIA,QAAQ,MAAM,IAAIqB,MAAM,MAEvEse,EAAKC,SAASL,EAAE/f,MAAM4f,GAAM,KAAsB,IAAdK,EAAGt0B,QAAgBo0B,EAAE/f,MAAM2f,IAAQxgB,KAAKtS,MAAMkzB,GAClFM,EAAKD,SAASJ,EAAEhgB,MAAM4f,GAAM,KAAOO,GAAMH,EAAEhgB,MAAM2f,IAAQxgB,KAAKtS,MAAMmzB,IAAM,IAG3E,IAAIK,EAAI,CACP,GAAKF,EAAKE,EAAO,OAAQ,CACpB,IAAKF,EAAKE,EAAO,MAAO,GAG9B,IAAI,GAAIC,GAAK,EAAGC,EAAK9qB,KAAKE,IAAIsqB,EAAGt0B,OAAQu0B,EAAGv0B,QAAS20B,EAAOC,EAAMD,IAAQ,CAKzE,GAHAf,IAAWU,EAAGK,IAAS,IAAItgB,MApBrB,OAoBmCwE,WAAWyb,EAAGK,KAAUL,EAAGK,IAAS,EAC7Ed,IAAWU,EAAGI,IAAS,IAAItgB,MArBrB,OAqBmCwE,WAAW0b,EAAGI,KAAUJ,EAAGI,IAAS,EAEzEtB,MAAMO,KAAYP,MAAMQ,GAAW,MAAQR,OAAMO,GAAW,GAAK,CAMrE,UAJgBA,UAAkBC,KACjCD,GAAU,GACVC,GAAU,IAEPD,EAASC,EAAU,OAAQ,CAC/B,IAAID,EAASC,EAAU,MAAO,GAE/B,MAAO,KAMH,SAASl2B,EAAQD,EAASM,GAE/B,YASA,SAAS6pB,GAAkBtkB,GAQzB,QAAS8mB,GAAY3gB,GAEnB5L,KAAK4L,OAASA,EACd5L,KAAK2F,OA6MP,MA1MA4mB,GAAW5pB,UAAY,GAAI8C,GAM3B8mB,EAAW5pB,UAAU2F,OAAS,WAE5B,GAAI3C,GAAM3F,KAAK2F,GAEf,IAAIA,EAAI0f,GACN,MAAO1f,GAAI0f,EAGbrlB,MAAKgqB,oBAGL,IAAI+M,GAAWrqB,SAASC,cAAc,KAMtC,IALAoqB,EAAS7wB,KAAOlG,KAChB2F,EAAI0f,GAAK0R,EAIwB,SAA7B/2B,KAAK4L,OAAO/K,QAAQgC,KAAiB,CAEvC8C,EAAIgpB,OAASjiB,SAASC,cAAc,KAGpC,IAAIkiB,GAASniB,SAASC,cAAc,KACpChH,GAAIkpB,OAASA,CACb,IAAI1mB,GAAOuE,SAASC,cAAc,SAClCxE,GAAK6B,KAAO,SACZ7B,EAAKyE,UAAY,yBACjBzE,EAAK0F,MAAQ,0CACblI,EAAIwC,KAAOA,EACX0mB,EAAOlnB,YAAYhC,EAAIwC,MAIzB,GAAI6uB,GAAWtqB,SAASC,cAAc,MAClCsqB,EAAUvqB,SAASC,cAAc,MASrC,OARAsqB,GAAQxQ,UAAY,UACpBwQ,EAAQrqB,UAAY,sBACpBoqB,EAASrvB,YAAYsvB,GACrBtxB,EAAI2f,GAAK0R,EACTrxB,EAAI4C,KAAO0uB,EAEXj3B,KAAKiK,YAEE8sB,GAMTxK,EAAW5pB,UAAUsH,UAAY,WAC/B,GAAItE,GAAM3F,KAAK2F,IACXqxB,EAAWrxB,EAAI2f,EACf0R,KACFA,EAASte,MAAMwe,YAAiC,GAAlBl3B,KAAKyrB,WAAkB,GAAM,KAI7D,IAAIwL,GAAUtxB,EAAI4C,IACd0uB,KACFA,EAAQxQ,UAAY,UAAYzmB,KAAK6J,OAAOG,KAAO,IAKrD,IAAI+sB,GAAWpxB,EAAI0f,EACdrlB,MAAKk0B,YAYHvuB,EAAI0f,GAAGxL,aACNlU,EAAIgpB,QACNoI,EAASpvB,YAAYhC,EAAIgpB,QAEvBhpB,EAAIkpB,QACNkI,EAASpvB,YAAYhC,EAAIkpB,QAE3BkI,EAASpvB,YAAYqvB,IAlBnBrxB,EAAI0f,GAAGxL,aACLlU,EAAIgpB,QACNoI,EAASrwB,YAAYf,EAAIgpB,QAEvBhpB,EAAIkpB,QACNkI,EAASrwB,YAAYf,EAAIkpB,QAE3BkI,EAASrwB,YAAYswB,KAqB3BzK,EAAW5pB,UAAUuxB,UAAY,WAC/B,MAAqC,IAA7Bl0B,KAAK6J,OAAO8G,OAAOzO,QAS7BqqB,EAAW5pB,UAAU8L,gBAAkB,SAAUgE,EAAQC,GACvD,GAAIxM,GAAOlG,KACPm1B,EAAS1vB,EAAKsvB,YACdpiB,IAGApK,KAAQ,SACRsF,MAAS,uDACT0Z,aAAgB,8CAChB3a,UAAa,oBACbiG,MAAS,WACP3M,EAAKquB,UAAU,GAAI,GAAI,SAEzBpN,UAEI5e,KAAQ,OACRqE,UAAa,uBACbiB,MAASsnB,EAAOH,KAChBniB,MAAS,WACP3M,EAAKquB,UAAU,GAAI,GAAI,WAIzBhsB,KAAQ,QACRqE,UAAa,wBACbiB,MAASsnB,EAAOF,MAChBpiB,MAAS,WACP3M,EAAKquB,UAAU,UAIjBhsB,KAAQ,SACRqE,UAAa,yBACbiB,MAASsnB,EAAO/d,OAChBvE,MAAS,WACP3M,EAAKquB,UAAU,UAIjBhsB,KAAQ,SACRqE,UAAa,yBACbiB,MAASsnB,EAAOD,OAChBriB,MAAS,WACP3M,EAAKquB,UAAU,GAAI,GAAI,cAOtB,IAAI/uB,GAAYmN,GAAQK,MAAON,IACrCO,KAAKR,EAAQzS,KAAK4L,OAAOxE,UAOhCmlB,EAAW5pB,UAAU4J,QAAU,SAAUC,GACvC,GAAIxC,GAAOwC,EAAMxC,KACb8C,EAASN,EAAMM,QAAUN,EAAMimB,WAC/B9sB,EAAM3F,KAAK2F,GAcf,IAVImH,GADOnH,EAAIwC,OAED,aAAR6B,EACFhK,KAAK4L,OAAOhG,YAAYuN,UAAUnT,KAAK6J,QAExB,YAARG,GACPhK,KAAK4L,OAAOhG,YAAY0N,eAKhB,SAARtJ,GAAmB8C,GAAUnH,EAAIwC,KAAM,CACzC,GAAIvC,GAAc5F,KAAK4L,OAAOhG,WAC9BA,GAAYuN,UAAUnT,KAAK6J,QAC3BjE,EAAY4N,OACZvS,EAAKiX,aAAavS,EAAIwC,KAAM,uBAC5BnI,KAAKyO,gBAAgB9I,EAAIwC,KAAM,WAC7BlH,EAAKoX,gBAAgB1S,EAAIwC,KAAM,uBAC/BvC,EAAY6N,SACZ7N,EAAY0N,gBAIJ,WAARtJ,GACFhK,KAAK8yB,UAAUtmB,IAIZ+f,EA/NT,GAAItrB,GAAOf,EAAoB,GAC3BsF,EAActF,EAAoB,EAiOtCL,GAAOD,QAAUmqB,GAKZ,SAASlqB,EAAQD,EAASM,GAE/B,YAYA,SAASwF,GAAa9E,EAAW8B,EAAOy0B,EAASC,GA0C/C,IAAK,GAxCDC,IACF/0B,MACEiG,KAAQ,OACRsF,MAAS,6BACTgF,MAAS,WACPukB,EAAS,UAGbE,MACE/uB,KAAQ,OACRsF,MAAS,wBACTgF,MAAS,WACPukB,EAAS,UAGb7uB,MACEA,KAAQ,OACRsF,MAAS,8BACTgF,MAAS,WACPukB,EAAS,UAGbrI,MACExmB,KAAQ,OACRsF,MAAS,wBACTgF,MAAS,WACPukB,EAAS,UAGbG,MACEhvB,KAAQ,OACRsF,MAAS,sBACTgF,MAAS,WACPukB,EAAS,WAMXzkB,KACK1N,EAAI,EAAGA,EAAIvC,EAAMR,OAAQ+C,IAAK,CACrC,GAAIpC,GAAOH,EAAMuC,GACb4hB,EAAOwQ,EAAex0B,EAC1B,KAAKgkB,EACH,KAAM,IAAI9lB,OAAM,iBAAmB8B,EAAO,IAG5CgkB,GAAKja,UAAY,yBAA4BuqB,GAAWt0B,EAAQ,uBAAyB,IACzF8P,EAAMC,KAAKiU,GAIb,GAAI2Q,GAAcH,EAAeF,EACjC,KAAKK,EACH,KAAM,IAAIz2B,OAAM,iBAAmBo2B,EAAU,IAE/C,IAAIM,GAAeD,EAAYjvB,KAG3BmvB,EAAMhrB,SAASC,cAAc,SACjC+qB,GAAI1tB,KAAO,SACX0tB,EAAI9qB,UAAY,wCAChB8qB,EAAIjR,UAAYgR,EAAe,YAC/BC,EAAI7pB,MAAQ,qBACZ6pB,EAAI7qB,QAAU,WACD,GAAIrH,GAAYmN,GACtBM,KAAKykB,GAGZ,IAAIlxB,GAAQkG,SAASC,cAAc,MACnCnG,GAAMoG,UAAY,mBAClBpG,EAAMkS,MAAMif,SAAW,WACvBnxB,EAAMmB,YAAY+vB,GAElB92B,EAAU+G,YAAYnB,GAEtBxG,KAAK2F,KACH/E,UAAWA,EACX82B,IAAKA,EACLlxB,MAAOA,GA3FX,GAAIhB,GAActF,EAAoB,EAkGtCwF,GAAa/C,UAAUqF,MAAQ,WAC7BhI,KAAK2F,IAAI+xB,IAAI1vB,SAMftC,EAAa/C,UAAUI,QAAU,WAC3B/C,KAAK2F,KAAO3F,KAAK2F,IAAIa,OAASxG,KAAK2F,IAAIa,MAAMC,YAC/CzG,KAAK2F,IAAIa,MAAMC,WAAWC,YAAY1G,KAAK2F,IAAIa,OAEjDxG,KAAK2F,IAAM,MAGb9F,EAAOD,QAAU8F,GAKZ,SAAS7F,EAAQD,EAASM,GAE/B,YAEA,IAAI03B,GAAM13B,EAAoB,IAC1BwF,EAAexF,EAAoB,IACnCe,EAAOf,EAAoB,GAG3BuC,IA4BJA,GAASyB,OAAS,SAAUtD,EAAWC,GAErCA,EAAUA,MACVb,KAAKa,QAAUA,EAGXA,EAAQg3B,YACV73B,KAAK63B,YAAcxgB,OAAOxW,EAAQg3B,aAGlC73B,KAAK63B,YAAc,CAIrB,IAAIC,GAAOj3B,EAAQ+2B,IAAM/2B,EAAQ+2B,IAAMA,CAevC,IAXA53B,KAAK6C,KAAwB,QAAhBhC,EAAQgC,KAAkB,OAAS,OAC/B,QAAb7C,KAAK6C,UAEa,KAATi1B,IACT93B,KAAK6C,KAAO,OACZzB,QAAQC,KAAK,iKAKjBrB,KAAK+3B,MAAQl3B,EAAQk3B,OApDH,uBAAA,yBAqDd/3B,KAAK+3B,OAA2BD,EAClC,IACE53B,EAAoB,IAEtB,MAAOqC,GACLnB,QAAQD,MAAMoB,GAIlB,GAAI8H,GAAKrK,IACTA,MAAKY,UAAYA,EACjBZ,KAAK2F,OACL3F,KAAKg4B,cAAYlyB,GACjB9F,KAAKi4B,aAAWnyB,GAChB9F,KAAK4E,eAAiB,KAGtB5E,KAAK2G,mBAAqB1F,EAAKgG,SAASjH,KAAK8E,SAASoC,KAAKlH,MAAOA,KAAK4C,mBAEvE5C,KAAKwS,MAAQ5R,EAAUs3B,YACvBl4B,KAAKwK,OAAS5J,EAAU6J,aAExBzK,KAAKwG,MAAQkG,SAASC,cAAc,OACpC3M,KAAKwG,MAAMoG,UAAY,8BAAgC5M,KAAKa,QAAQgC,KACpE7C,KAAKwG,MAAMqG,QAAU,SAAUL,GAE7BA,EAAMO,kBAER/M,KAAKwG,MAAM0G,UAAY,SAAUV,GAC/BnC,EAAGgE,WAAW7B,IAIhBxM,KAAKmI,KAAOuE,SAASC,cAAc,OACnC3M,KAAKmI,KAAKyE,UAAY,kBACtB5M,KAAKwG,MAAMmB,YAAY3H,KAAKmI,KAG5B,IAAIgwB,GAAezrB,SAASC,cAAc,SAC1CwrB,GAAanuB,KAAO,SACpBmuB,EAAavrB,UAAY,oBACzBurB,EAAatqB,MAAQ,qEACrB7N,KAAKmI,KAAKR,YAAYwwB,GACtBA,EAAatrB,QAAU,WACrB,IACExC,EAAG+tB,SACH/tB,EAAGvB,YAEL,MAAOvG,GACL8H,EAAGhG,SAAS9B,IAKhB,IAAI81B,GAAgB3rB,SAASC,cAAc,SAC3C0rB,GAAcruB,KAAO,SACrBquB,EAAczrB,UAAY,qBAC1ByrB,EAAcxqB,MAAQ,4DACtB7N,KAAKmI,KAAKR,YAAY0wB,GACtBA,EAAcxrB,QAAU,WACtB,IACExC,EAAGiuB,UACHjuB,EAAGvB,YAEL,MAAOvG,GACL8H,EAAGhG,SAAS9B,KAKZvC,KAAKa,SAAWb,KAAKa,QAAQ6B,OAAS1C,KAAKa,QAAQ6B,MAAMR,SAC3DlC,KAAK6G,aAAe,GAAInB,GAAa1F,KAAKmI,KAAMnI,KAAKa,QAAQ6B,MAAO1C,KAAKa,QAAQgC,KAAM,SAAkBA,GAEvGwH,EAAGvH,QAAQD,GACXwH,EAAGxD,aAAamB,UAIpB,IAAIuwB,MACAC,EAAcx4B,KAAKa,QAAQa,mBACO,aAA5B1B,KAAKa,QAAQa,cACnB1B,KAAKa,QAAQa,WAAW62B,EAQ5B,IANAv4B,KAAKoH,QAAUsF,SAASC,cAAc,OACtC3M,KAAKoH,QAAQwF,UAAY,mBACzB5M,KAAKwG,MAAMmB,YAAY3H,KAAKoH,SAE5BpH,KAAKY,UAAU+G,YAAY3H,KAAKwG,OAEf,QAAbxG,KAAK6C,KAAgB,CACvB7C,KAAKy4B,UAAY/rB,SAASC,cAAc,OACxC3M,KAAKy4B,UAAU/f,MAAMlO,OAAS,OAC9BxK,KAAKy4B,UAAU/f,MAAMlG,MAAQ,OAC7BxS,KAAKoH,QAAQO,YAAY3H,KAAKy4B,UAE9B,IAAIT,GAAYF,EAAKY,KAAK14B,KAAKy4B,UAC/BT,GAAUW,gBAAkBC,EAAAA,EAC5BZ,EAAUa,SAAS74B,KAAK+3B,OACxBC,EAAUc,YAAaC,SAAUP,IACjCR,EAAUgB,oBAAmB,GAC7BhB,EAAUiB,YAAY,IACtBjB,EAAUkB,aAAap2B,QAAQ,iBAC/Bk1B,EAAUkB,aAAaC,WAAWn5B,KAAK63B,aACvCG,EAAUkB,aAAaE,gBAAe,GACtCpB,EAAUkB,aAAaG,gBAAe,GACtCrB,EAAUsB,SAASC,QAAQ,SAAU,MACrCvB,EAAUsB,SAASC,QAAQ,YAAa,MACxCv5B,KAAKg4B,UAAYA,EAGZh4B,KAAKgH,eAAe,WACvBpF,OAAO43B,eAAex5B,KAAM,UAC1BiD,IAAK,WAEH,MADA7B,SAAQC,KAAK,sDACNgJ,EAAG2tB,WAEZh1B,IAAK,SAAUg1B,GACb52B,QAAQC,KAAK,sDACbgJ,EAAG2tB,UAAYA,IAKrB,IAAIyB,GAAY/sB,SAASC,cAAc,IACvC8sB,GAAU9xB,YAAY+E,SAASoN,eAAe,mBAC9C2f,EAAUrH,KAAO,sBACjBqH,EAAU3sB,OAAS,SACnB2sB,EAAU7sB,UAAY,uBACtB6sB,EAAU5sB,QAAU,WAIlB+C,OAAOgjB,KAAK6G,EAAUrH,KAAMqH,EAAU3sB,SAExC9M,KAAKmI,KAAKR,YAAY8xB,GAGtBzB,EAAU0B,GAAG,SAAU15B,KAAK8I,UAAU5B,KAAKlH,WAExC,CAEH,GAAIi4B,GAAWvrB,SAASC,cAAc,WACtCsrB,GAASrrB,UAAY,kBACrBqrB,EAAS3G,YAAa,EACtBtxB,KAAKoH,QAAQO,YAAYswB,GACzBj4B,KAAKi4B,SAAWA,EAChBj4B,KAAKi4B,SAASc,SAAWP,EAGK,OAA1Bx4B,KAAKi4B,SAASjrB,QAChBhN,KAAKi4B,SAASjrB,QAAUhN,KAAK8I,UAAU5B,KAAKlH,MAI5CA,KAAKi4B,SAAShrB,SAAWjN,KAAK8I,UAAU5B,KAAKlH,MAIjDA,KAAKuE,UAAUvE,KAAKa,QAAQ2D,SAS9B/B,EAASqG,UAAY,WAKnB,GAHA9I,KAAK2G,qBAGD3G,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOe,GACLnB,QAAQD,MAAM,+BAAgCoB,KAUpDE,EAAS4L,WAAa,SAAU7B,GAC9B,GAAIwE,GAASxE,EAAMyE,OAASzE,EAAM0E,QAC9BK,GAAU,CAEA,MAAVP,GAAiBxE,EAAM4E,UACrB5E,EAAM8E,UACRtR,KAAKs4B,UACLt4B,KAAK8I,cAGL9I,KAAKo4B,SACLp4B,KAAK8I,aAEPyI,GAAU,GAGRA,IACF/E,EAAMO,iBACNP,EAAM4F,oBAOV3P,EAASM,QAAU,WAEb/C,KAAKg4B,YACPh4B,KAAKg4B,UAAUj1B,UACf/C,KAAKg4B,UAAY,MAGfh4B,KAAKwG,OAASxG,KAAKY,WAAaZ,KAAKwG,MAAMC,YAAczG,KAAKY,WAChEZ,KAAKY,UAAU8F,YAAY1G,KAAKwG,OAG9BxG,KAAK6G,eACP7G,KAAK6G,aAAa9D,UAClB/C,KAAK6G,aAAe,MAGtB7G,KAAKi4B,SAAW,KAEhBj4B,KAAK2G,mBAAqB,MAM5BlE,EAAS61B,QAAU,WACjB,GAAIx3B,GAAOd,KAAKiD,MACZsF,EAAOjF,KAAKC,UAAUzC,EAC1Bd,MAAKkD,QAAQqF,IAMf9F,EAAS21B,OAAS,WAChB,GAAIt3B,GAAOd,KAAKiD,MACZsF,EAAOjF,KAAKC,UAAUzC,EAAM,KAAMd,KAAK63B,YAC3C73B,MAAKkD,QAAQqF,IAMf9F,EAASuF,MAAQ,WACXhI,KAAKi4B,UACPj4B,KAAKi4B,SAASjwB,QAEZhI,KAAKg4B,WACPh4B,KAAKg4B,UAAUhwB,SAOnBvF,EAASk3B,OAAS,WAChB,GAAI35B,KAAKg4B,UAAW,CAElBh4B,KAAKg4B,UAAU2B,QADH,KAShBl3B,EAASO,IAAM,SAASlC,GACtBd,KAAKkD,QAAQI,KAAKC,UAAUzC,EAAM,KAAMd,KAAK63B,eAO/Cp1B,EAASQ,IAAM,WACb,GACInC,GADAyH,EAAOvI,KAAKqD,SAGhB,KACEvC,EAAOG,EAAKmC,MAAMmF,GAEpB,MAAOhG,GAELgG,EAAOtH,EAAKgV,SAAS1N,GAGrBzH,EAAOG,EAAKmC,MAAMmF,GAGpB,MAAOzH,IAOT2B,EAASY,QAAU,WACjB,MAAIrD,MAAKi4B,SACAj4B,KAAKi4B,SAASzwB,MAEnBxH,KAAKg4B,UACAh4B,KAAKg4B,UAAUlwB,WAEjB,IAOTrF,EAASS,QAAU,SAASC,GAC1B,GAAIoF,EAYJ,IATEA,GADiC,IAA/BvI,KAAKa,QAAQ60B,cACRz0B,EAAK6V,mBAAmB3T,GAGxBA,EAGLnD,KAAKi4B,WACPj4B,KAAKi4B,SAASzwB,MAAQe,GAEpBvI,KAAKg4B,UAAW,CAElB,GAAI4B,GAAmB55B,KAAKa,QAAQW,QACpCxB,MAAKa,QAAQW,SAAW,KAExBxB,KAAKg4B,UAAUvO,SAASlhB,GAAO,GAE/BvI,KAAKa,QAAQW,SAAWo4B,EAI1B55B,KAAK8E,YAOPrC,EAASqC,SAAW,WAEd9E,KAAK2F,IAAIk0B,mBACX75B,KAAK2F,IAAIk0B,iBAAiBpzB,WAAWC,YAAY1G,KAAK2F,IAAIk0B,kBAC1D75B,KAAK2F,IAAIk0B,iBAAmB,KAE5B75B,KAAKoH,QAAQsR,MAAMohB,aAAe,GAClC95B,KAAKoH,QAAQsR,MAAMqhB,cAAgB,GAGrC,IAEIj5B,GAFAk5B,GAAa,EACb9wB,IAEJ,KACEpI,EAAOd,KAAKiD,MACZ+2B,GAAa,EAEf,MAAOz3B,IAKP,GAAIy3B,GAAch6B,KAAK4E,eAAgB,CACzB5E,KAAK4E,eAAe9D,KAE9BoI,EAASlJ,KAAK4E,eAAesE,OAAOC,IAAI,SAAUhI,GAChD,MAAOF,GAAKmI,mBAAmBjI,MAKrC,GAAI+H,EAAOhH,OAAS,EAAG,CAGrB,GADYgH,EAAOhH,OAxbN,EAybF,CACTgH,EAASA,EAAOuC,MAAM,EA1bX,EA2bX,IAAIwuB,GAASj6B,KAAK4E,eAAesE,OAAOhH,OA3b7B,CA4bXgH,GAAO0J,KAAK,IAAMqnB,EAAS,oBAG7B,GAAIJ,GAAmBntB,SAASC,cAAc,MAC9CktB,GAAiBpT,UAAY,gDAEzBvd,EAAOC,IAAI,SAAUhI,GAUnB,MAAO,kEARc,gBAAVA,GACC,wBAA0BA,EAAQ,cAGlC,OAASA,EAAMmI,SAAW,YACvBnI,EAAM4I,QAAU,SAGqD,UACnF8M,KAAK,IACR,mBAGJ7W,KAAK2F,IAAIk0B,iBAAmBA,EAC5B75B,KAAKwG,MAAMmB,YAAYkyB,EAEvB,IAAIrvB,GAASqvB,EAAiBpvB,YAC9BzK,MAAKoH,QAAQsR,MAAMohB,cAAiBtvB,EAAU,KAC9CxK,KAAKoH,QAAQsR,MAAMqhB,cAAgBvvB,EAAS,KAI9C,GAAIxK,KAAKg4B,UAAW,CAElBh4B,KAAKg4B,UAAU2B,QADH,KAMhB95B,EAAOD,UAEHiD,KAAM,OACNoB,MAAOxB,EACPkB,KAAM,OACNQ,KAAM1B,EAAS21B,SAGfv1B,KAAM,OACNoB,MAAOxB,EACPkB,KAAM,OACNQ,KAAM1B,EAAS21B,UAOd,SAASv4B,EAAQD,EAASM,GAE/B,GAAI03B,EACJ,IAAIhoB,OAAOgoB,IAETA,EAAMhoB,OAAOgoB,QAGb,KAEEA,EAAM13B,GAAsB,WAAkC,GAAImC,GAAI,GAAItB,OAAM,6BAA8D,MAA7BsB,GAAEC,KAAO,mBAA0BD,MAGpJnC,EAAoB,IACpBA,EAAoB,IAEtB,MAAOqC,IAMT1C,EAAOD,QAAUg4B,GAKZ,SAAS/3B,EAAQD,EAASM,GAE/B03B,IAAI93B,OAAO,iCAAiC,UAAU,UAAU,SAAS,cAAc,iCAAkC,SAASo6B,EAAUt6B,EAASC,GACrJ,YAEA,IAAIs6B,GAAMD,EAAS,cACfE,EAAqBF,EAAS,0BAA0BE,mBAExDC,EAAqB,WACrBr6B,KAAKs6B,QACD7qB,QAEQiS,MAAQ,WACR6Y,MAAQ,gDAER7Y,MAAQ,SACR6Y,MAAQ,IACR7oB,KAAQ,WAERgQ,MAAQ,mBACR6Y,MAAQ,yBAER7Y,MAAQ,mBACR6Y,MAAQ,oDAER7Y,MAAQ,4BACR6Y,MAAQ,sBAER7Y,MAAQ,kBACR6Y,MAAQ,uCAER7Y,MAAQ,kBACR6Y,MAAQ,cAER7Y,MAAQ,eACR6Y,MAAQ,UAER7Y,MAAQ,eACR6Y,MAAQ,YAER7Y,MAAQ,OACR6Y,MAAQ,SAGhBrF,SAEQxT,MAAQ,2BACR6Y,MAAQ,uDAER7Y,MAAQ,SACR6Y,MAAQ,cAER7Y,MAAQ,SACR6Y,MAAQ,IACR7oB,KAAQ,UAERgQ,MAAQ,SACR6Y,MAAQ,GACR7oB,KAAQ,WAOxByoB,GAAIK,SAASH,EAAoBD,GAEjCx6B,EAAQy6B,mBAAqBA,IAG7BzC,IAAI93B,OAAO,mCAAmC,UAAU,UAAU,SAAS,aAAc,SAASo6B,EAAUt6B,EAASC,GACrH,YAEA,IAAI46B,GAAQP,EAAS,YAAYO,MAE7BC,EAAuB,cAE3B,WAEI16B,KAAK26B,aAAe,SAAS7X,EAAM7a,GAC/B,QAAM,QAAQwO,KAAKqM,IAGZ,SAASrM,KAAKxO,IAGzBjI,KAAK46B,YAAc,SAASC,EAAKC,GAC7B,GAAIhY,GAAO+X,EAAIE,QAAQD,GACnBvkB,EAAQuM,EAAKvM,MAAM,WAEvB,KAAKA,EAAO,MAAO,EAEnB,IAAIykB,GAASzkB,EAAM,GAAGrU,OAClB+4B,EAAeJ,EAAIK,qBAAqBJ,IAAKA,EAAKE,OAAQA,GAE9D,KAAKC,GAAgBA,EAAaH,KAAOA,EAAK,MAAO,EAErD,IAAIK,GAASn7B,KAAKo7B,WAAWP,EAAIE,QAAQE,EAAaH,KACtDD,GAAI9jB,QAAQ,GAAI0jB,GAAMK,EAAK,EAAGA,EAAKE,EAAO,GAAIG,IAGlDn7B,KAAKo7B,WAAa,SAAStY,GACvB,MAAOA,GAAKvM,MAAM,QAAQ,MAG/BhW,KAAKm6B,EAAqB/3B,WAE7B/C,EAAQ86B,qBAAuBA,IAG/B9C,IAAI93B,OAAO,2BAA2B,UAAU,UAAU,SAAS,cAAc,YAAY,8BAA+B,SAASo6B,EAAUt6B,EAASC,GACxJ,YAEA,IAAIs6B,GAAMD,EAAS,iBACfO,EAAQP,EAAS,eAAeO,MAChCY,EAAenB,EAAS,eAAeoB,SAEvCA,EAAW17B,EAAQ07B,SAAW,SAASC,GACnCA,IACAv7B,KAAKw7B,mBAAqB,GAAIhkB,QAC1BxX,KAAKw7B,mBAAmBC,OAAO1kB,QAAQ,YAAa,IAAMwkB,EAAa9rB,QAE3EzP,KAAK07B,kBAAoB,GAAIlkB,QACzBxX,KAAK07B,kBAAkBD,OAAO1kB,QAAQ,YAAa,IAAMwkB,EAAa7rB,OAIlFyqB,GAAIK,SAASc,EAAUD,GAEvB,WAEIr7B,KAAKw7B,mBAAqB,8BAC1Bx7B,KAAK07B,kBAAoB,kCACzB17B,KAAK27B,yBAA0B,uBAC/B37B,KAAK47B,yBAA2B,2BAChC57B,KAAK67B,cAAgB,4BACrB77B,KAAK87B,mBAAqB97B,KAAK+7B,cAC/B/7B,KAAK+7B,cAAgB,SAASC,EAASC,EAAWnB,GAC9C,GAAIhY,GAAOkZ,EAAQjB,QAAQD,EAE3B,IAAI96B,KAAK27B,yBAAyBllB,KAAKqM,KAC9B9iB,KAAK67B,cAAcplB,KAAKqM,KAAU9iB,KAAK47B,yBAAyBnlB,KAAKqM,GACtE,MAAO,EAGf,IAAIoZ,GAAKl8B,KAAK87B,mBAAmBE,EAASC,EAAWnB,EAErD,QAAKoB,GAAMl8B,KAAK67B,cAAcplB,KAAKqM,GACxB,QAEJoZ,GAGXl8B,KAAKm8B,mBAAqB,SAASH,EAASC,EAAWnB,EAAKsB,GACxD,GAAItZ,GAAOkZ,EAAQjB,QAAQD,EAE3B,IAAI96B,KAAK67B,cAAcplB,KAAKqM,GACxB,MAAO9iB,MAAKq8B,sBAAsBL,EAASlZ,EAAMgY,EAErD,IAAIvkB,GAAQuM,EAAKvM,MAAMvW,KAAKw7B,mBAC5B,IAAIjlB,EAAO,CACP,GAAItR,GAAIsR,EAAM7C,KAEd,IAAI6C,EAAM,GACN,MAAOvW,MAAKs8B,oBAAoBN,EAASzlB,EAAM,GAAIukB,EAAK71B,EAE5D,IAAImG,GAAQ4wB,EAAQO,oBAAoBzB,EAAK71B,EAAIsR,EAAM,GAAGrU,OAAQ,EASlE,OAPIkJ,KAAUA,EAAMoxB,gBACZJ,EACAhxB,EAAQpL,KAAKy8B,gBAAgBT,EAASlB,GAClB,OAAbmB,IACP7wB,EAAQ,OAGTA,EAGX,GAAkB,cAAd6wB,EAAJ,CAGA,GAAI1lB,GAAQuM,EAAKvM,MAAMvW,KAAK07B,kBAC5B,IAAInlB,EAAO,CACP,GAAItR,GAAIsR,EAAM7C,MAAQ6C,EAAM,GAAGrU,MAE/B,OAAIqU,GAAM,GACCvW,KAAK08B,oBAAoBV,EAASzlB,EAAM,GAAIukB,EAAK71B,GAErD+2B,EAAQO,oBAAoBzB,EAAK71B,GAAI,MAIpDjF,KAAKy8B,gBAAkB,SAAST,EAASlB,GACrC,GAAIhY,GAAOkZ,EAAQjB,QAAQD,GACvB6B,EAAc7Z,EAAKhc,OAAO,MAC1B81B,EAAW9B,EACX+B,EAAc/Z,EAAK5gB,MACvB44B,IAAY,CAGZ,KAFA,GAAIgC,GAAShC,EACTiC,EAASf,EAAQgB,cACZlC,EAAMiC,GAAQ,CACnBja,EAAOkZ,EAAQjB,QAAQD,EACvB,IAAIK,GAASrY,EAAKhc,OAAO,KACzB,KAAgB,IAAZq0B,EAAJ,CAEA,GAAKwB,EAAcxB,EACf,KACJ,IAAI8B,GAAWj9B,KAAKm8B,mBAAmBH,EAAS,MAAOlB,EAEvD,IAAImC,EAAU,CACV,GAAIA,EAASxtB,MAAMqrB,KAAO8B,EACtB,KACG,IAAIK,EAAST,cAChB1B,EAAMmC,EAASvtB,IAAIorB,QAChB,IAAI6B,GAAexB,EACtB,MAGR2B,EAAShC,GAGb,MAAO,IAAIL,GAAMmC,EAAUC,EAAaC,EAAQd,EAAQjB,QAAQ+B,GAAQ56B,SAE5ElC,KAAKq8B,sBAAwB,SAASL,EAASlZ,EAAMgY,GAOjD,IANA,GAAI+B,GAAc/Z,EAAKhc,OAAO,QAC1Bi2B,EAASf,EAAQgB,YACjBJ,EAAW9B,EAEX9E,EAAK,uCACLkH,EAAQ,IACHpC,EAAMiC,GAAQ,CACnBja,EAAOkZ,EAAQjB,QAAQD,EACvB,IAAIt6B,GAAIw1B,EAAGlb,KAAKgI,EAChB,IAAKtiB,IACDA,EAAE,GAAI08B,IACLA,KAEAA,GAAO,MAGhB,GAAIJ,GAAShC,CACb,IAAIgC,EAASF,EACT,MAAO,IAAInC,GAAMmC,EAAUC,EAAaC,EAAQha,EAAK5gB,UAI9D3B,KAAK+6B,EAAS34B,aAIjBi1B,IAAI93B,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,4BAA4B,0BAA0B,4BAA6B,SAASo6B,EAAUt6B,EAASC,GACxQ,YAEA,IAAIs6B,GAAMD,EAAS,cACfiD,EAAWjD,EAAS,UAAUkD,KAC9BC,EAAiBnD,EAAS,0BAA0BG,mBACpDK,EAAuBR,EAAS,4BAA4BQ,qBAC5D4C,EAAkBpD,EAAS,sBAAsBoD,gBACjDC,EAAiBrD,EAAS,oBAAoBoB,SAC9CkC,EAAetD,EAAS,2BAA2BsD,aAEnDJ,EAAO,WACPp9B,KAAKq9B,eAAiBA,EACtBr9B,KAAKy9B,SAAW,GAAI/C,GACpB16B,KAAK09B,WAAa,GAAIJ,GACtBt9B,KAAK29B,aAAe,GAAIJ,GAE5BpD,GAAIK,SAAS4C,EAAMD,GAEnB,WAEIn9B,KAAK49B,kBAAoB,SAASrb,EAAOO,EAAM+a,GAC3C,GAAI1C,GAASn7B,KAAKo7B,WAAWtY,EAE7B,IAAa,SAATP,EAAkB,CACNO,EAAKvM,MAAM,qBAEnB4kB,GAAU0C,GAIlB,MAAO1C,IAGXn7B,KAAK26B,aAAe,SAASpY,EAAOO,EAAM7a,GACtC,MAAOjI,MAAKy9B,SAAS9C,aAAa7X,EAAM7a,IAG5CjI,KAAK46B,YAAc,SAASrY,EAAOsY,EAAKC,GACpC96B,KAAKy9B,SAAS7C,YAAYC,EAAKC,IAGnC96B,KAAK89B,aAAe,SAAS9B,GACzB,GAAI+B,GAAS,GAAIP,IAAc,OAAQt9B,EAAoB,IAAK,aAWhE,OAVA69B,GAAOC,iBAAiBhC,EAAQiC,eAEhCF,EAAOrE,GAAG,WAAY,SAASr3B,GAC3B25B,EAAQkC,eAAe77B,EAAEsB,QAG7Bo6B,EAAOrE,GAAG,YAAa,WACnBsC,EAAQmC,qBAGLJ,GAIX/9B,KAAKo+B,IAAM,iBACZ79B,KAAK68B,EAAKz6B,WAEb/C,EAAQw9B,KAAOA,KAMV,SAASv9B,EAAQD,GAEtBC,EAAOD,QAAQS,GAAK,uBACpBR,EAAOD,QAAQy+B,IAAM;66zCAIhB,SAASx+B,EAAQD,GAEtBg4B,IAAI93B,OAAO,qBAAqB,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,4BAA4B,gBAAiB,SAASo6B,EAAUt6B,EAASC,GACnL,YAEA,IAAI8F,GAAMu0B,EAAS,cACfoE,EAAOpE,EAAS,eAChB1tB,EAAQ0tB,EAAS,gBAgJjBqE,EAAcrE,EAAS,4BAA4BqE,YACnDC,EAAUtE,EAAS,cAEvBv0B,GAAI84B,gBAlJe,0xGAkJe,gBAElC,IAAIhJ,GAAO,qrCAkBH1e,QAAQ,QAAS,KAErBxR,EAAY,SAASqG,EAAQR,EAAOszB,GACpC,GAAIC,GAAMh5B,EAAIgH,cAAc,MAC5BgyB,GAAIlY,UAAYgP,EAChBz1B,KAAKiS,QAAU0sB,EAAI9kB,WAEnB7Z,KAAK4+B,QACL5+B,KAAK6+B,UAAUjzB,KAGnB,WACI5L,KAAK6+B,UAAY,SAASjzB,GACtBA,EAAOhF,UAAY5G,KACnB4L,EAAOhL,UAAU+G,YAAY3H,KAAKiS,SAClCjS,KAAK4L,OAASA,GAGlB5L,KAAK8+B,cAAgB,SAASC,GAC1B/+B,KAAK4G,UAAYm4B,EAAG72B,cAAc,oBAClClI,KAAKg/B,WAAaD,EAAG72B,cAAc,qBACnClI,KAAKi/B,cAAgBF,EAAG72B,cAAc,uBACtClI,KAAKk/B,aAAeH,EAAG72B,cAAc,6BACrClI,KAAKm/B,oBAAsBJ,EAAG72B,cAAc,gCAC5ClI,KAAKo/B,gBAAkBL,EAAG72B,cAAc,6BACxClI,KAAKq/B,YAAcr/B,KAAK4G,UAAUsB,cAAc,qBAChDlI,KAAKs/B,aAAet/B,KAAKg/B,WAAW92B,cAAc,sBAGtDlI,KAAK4+B,MAAQ,WACT,GAAIG,GAAK/+B,KAAKiS,OAEdjS,MAAK8+B,cAAcC,EAEnB,IAAIQ,GAAQv/B,IACZwM,GAAMgzB,YAAYT,EAAI,YAAa,SAAS18B,GACxCiK,WAAW,WACPizB,EAAME,YAAYz3B,SACnB,GACHwE,EAAM4F,gBAAgB/P,KAE1BmK,EAAMgzB,YAAYT,EAAI,QAAS,SAAS18B,GACpC,GAAIq9B,GAAIr9B,EAAEyK,QAAUzK,EAAEowB,WAClB7pB,EAAS82B,EAAEC,aAAa,SACxB/2B,IAAU22B,EAAM32B,GAChB22B,EAAM32B,KACD22B,EAAMK,aAAatG,SAAS1wB,IACjC22B,EAAMK,aAAatG,SAAS1wB,GAAQkS,KAAKykB,GAC7C/yB,EAAM4F,gBAAgB/P,KAG1BmK,EAAMqzB,sBAAsBd,EAAI,SAAS18B,EAAGy9B,EAAQ5uB,GAChD,GAAI6uB,GAAYvB,EAAQwB,gBAAgB9uB,GACpC+uB,EAAUV,EAAMK,aAAaM,eAAeJ,EAAQC,EACpDE,IAAWA,EAAQnlB,OACnBmlB,EAAQnlB,KAAKykB,GACb/yB,EAAM2zB,UAAU99B,MAIxBrC,KAAKogC,UAAY9B,EAAK+B,YAAY,WAC9Bd,EAAMe,MAAK,GAAO,KAGtB9zB,EAAMgzB,YAAYx/B,KAAKq/B,YAAa,QAAS,WACzCE,EAAMa,UAAUG,SAAS,MAE7B/zB,EAAMgzB,YAAYx/B,KAAKq/B,YAAa,QAAS,WACzCE,EAAME,YAAcF,EAAMF,YAC1BE,EAAMF,YAAY73B,OAAS+3B,EAAMpsB,cAErC3G,EAAMgzB,YAAYx/B,KAAKs/B,aAAc,QAAS,WAC1CC,EAAME,YAAcF,EAAMD,aAC1BC,EAAMF,YAAY73B,OAAS+3B,EAAMpsB,eAGzCnT,KAAKwgC,kBAAoB,GAAIjC,KACzBhF,QAAS,MACT91B,KAAM,iBACNqX,KAAM,SAASlP,GACXA,EAAOhF,UAAUsgB,WAGzBlnB,KAAK4/B,aAAe,GAAIrB,GACxBv+B,KAAK4/B,aAAaa,UACdC,mBAAoB,SAAS3B,GACzB,GAAI4B,GAAY5B,EAAG4B,WAAa5B,EAAG4B,SACnC5B,GAAGC,WAAWtmB,MAAMwQ,QAAUyX,EAAY,GAAK,OAC/C5B,EAAGM,YAAYr3B,SAEnB44B,0BAA2B,SAAS7B,GAChCA,EAAGC,WAAWtmB,MAAMwQ,QAAU,GAC9B6V,EAAGO,aAAat3B,SAEpB64B,mBAAoB,SAAS9B,GACzBA,EAAG+B,YAEPC,+BAAgC,SAAShC,GACrCA,EAAGiC,YAEPC,IAAO,SAASlC,GACZzyB,WAAW,WAAayyB,EAAG7X,UAE/Bga,OAAU,SAASnC,GACXA,EAAGU,aAAeV,EAAGO,cACrBP,EAAGhoB,UACPgoB,EAAG+B,YAEPK,eAAgB,SAASpC,GACjBA,EAAGU,aAAeV,EAAGO,cACrBP,EAAGhoB,UACPgoB,EAAGiC,YAEPI,aAAc,SAASrC,GACfA,EAAGU,aAAeV,EAAGO,cACrBP,EAAGsC,aACPtC,EAAGuC,WAEPC,IAAO,SAASxC,IACXA,EAAGU,aAAeV,EAAGO,aAAeP,EAAGM,YAAcN,EAAGO,cAAct3B,WAI/EhI,KAAK4/B,aAAa4B,cACd/9B,KAAM,mBACN81B,SAAUkI,IAAK,cAAeC,IAAK,yBACnC5mB,KAAM,SAASikB,GACXA,EAAGG,aAAa/Q,SAAW4Q,EAAGG,aAAa/Q,QAC3C4Q,EAAG4C,kBAGPl+B,KAAM,sBACN81B,SAAUkI,IAAK,cAAeC,IAAK,yBACnC5mB,KAAM,SAASikB,GACXA,EAAGI,oBAAoBhR,SAAW4Q,EAAGI,oBAAoBhR,QACzD4Q,EAAG4C,kBAGPl+B,KAAM,mBACN81B,SAAUkI,IAAK,cAAeC,IAAK,yBACnC5mB,KAAM,SAASikB,GACXA,EAAGK,gBAAgBjR,SAAW4Q,EAAGK,gBAAgBjR,QACjD4Q,EAAG4C,mBAIX3hC,KAAK2hC,aAAe,WAChBh8B,EAAIi8B,YAAY5hC,KAAKk/B,aAAc,UAAWl/B,KAAKk/B,aAAa/Q,SAChExoB,EAAIi8B,YAAY5hC,KAAKo/B,gBAAiB,UAAWp/B,KAAKo/B,gBAAgBjR,SACtExoB,EAAIi8B,YAAY5hC,KAAKm/B,oBAAqB,UAAWn/B,KAAKm/B,oBAAoBhR,SAC9EnuB,KAAKsgC,MAAK,GAAO,IAGrBtgC,KAAKmT,UAAY,SAAS6iB,GACtBh2B,KAAK4L,OAAOowB,QAAQ7oB,UAAU6iB,GAAMh2B,KAAK4L,OAAOi2B,QAAQC,SAAS9L,IACjEh2B,KAAK4L,OAAOm2B,SAASC,qBAEzBhiC,KAAKsgC,KAAO,SAAS2B,EAAaC,EAAWC,GACzC,GAAI/2B,GAAQpL,KAAK4L,OAAO00B,KAAKtgC,KAAKq/B,YAAY73B,OAC1Cy6B,YAAaA,EACbC,UAAWA,EACXE,MAAM,EACNC,OAAQriC,KAAKk/B,aAAa/Q,QAC1BmU,cAAetiC,KAAKm/B,oBAAoBhR,QACxCoU,UAAWviC,KAAKo/B,gBAAgBjR,QAChCgU,cAAeA,IAEfK,GAAWp3B,GAASpL,KAAKq/B,YAAY73B,KACzC7B,GAAIi8B,YAAY5hC,KAAK4G,UAAW,cAAe47B,GAC/CxiC,KAAK4L,OAAO62B,MAAM,iBAAmBlsB,OAAQisB,IAC7CxiC,KAAKmT,aAETnT,KAAK8gC,SAAW,WACZ9gC,KAAKsgC,MAAK,GAAM,IAEpBtgC,KAAKghC,SAAW,WACZhhC,KAAKsgC,MAAK,GAAM,IAEpBtgC,KAAKshC,QAAU,WACX,GAAIl2B,GAAQpL,KAAK4L,OAAO01B,QAAQthC,KAAKq/B,YAAY73B,OAC7C66B,OAAQriC,KAAKk/B,aAAa/Q,QAC1BmU,cAAetiC,KAAKm/B,oBAAoBhR,QACxCoU,UAAWviC,KAAKo/B,gBAAgBjR,UAEhCqU,GAAWp3B,GAASpL,KAAKq/B,YAAY73B,KACzC7B,GAAIi8B,YAAY5hC,KAAK4G,UAAW,cAAe47B,GAC/CxiC,KAAK4L,OAAO62B,MAAM,iBAAmBlsB,OAAQisB,IAC7CxiC,KAAKmT,YACLnT,KAAKknB,QAETlnB,KAAK+W,QAAU,WACN/W,KAAK4L,OAAO82B,eACb1iC,KAAK4L,OAAOmL,QAAQ/W,KAAKs/B,aAAa93B,QAE9CxH,KAAK2iC,mBAAqB,WACjB3iC,KAAK4L,OAAO82B,gBACb1iC,KAAK4L,OAAOmL,QAAQ/W,KAAKs/B,aAAa93B,OACtCxH,KAAK8gC,aAGb9gC,KAAKqhC,WAAa,WACTrhC,KAAK4L,OAAO82B,eACb1iC,KAAK4L,OAAOy1B,WAAWrhC,KAAKs/B,aAAa93B,QAGjDxH,KAAKknB,KAAO,WACRlnB,KAAKiS,QAAQyG,MAAMwQ,QAAU,OAC7BlpB,KAAK4L,OAAOg3B,WAAWC,sBAAsB7iC,KAAKwgC,mBAClDxgC,KAAK4L,OAAO5D,SAEhBhI,KAAKiT,KAAO,SAASzL,EAAOm5B,GACxB3gC,KAAKiS,QAAQyG,MAAMwQ,QAAU,GAC7BlpB,KAAKg/B,WAAWtmB,MAAMwQ,QAAUyX,EAAY,GAAK,OAEjD3gC,KAAK2gC,UAAYA,EAEbn5B,IACAxH,KAAKq/B,YAAY73B,MAAQA,GAE7BxH,KAAKsgC,MAAK,GAAO,GAAO,GAExBtgC,KAAKq/B,YAAYr3B,QACjBhI,KAAKq/B,YAAYl0B,SAEjBnL,KAAK4L,OAAOg3B,WAAWE,mBAAmB9iC,KAAKwgC,oBAGnDxgC,KAAK+iC,UAAY,WACb,GAAIC,GAAKt2B,SAASu2B,aAClB,OAAOD,IAAMhjC,KAAKq/B,aAAe2D,GAAMhjC,KAAKs/B,gBAEjD/+B,KAAKgF,EAAU5C,WAElB/C,EAAQ2F,UAAYA,EAEpB3F,EAAQsjC,OAAS,SAASt3B,EAAQ+0B,IACrB/0B,EAAOhF,WAAa,GAAIrB,GAAUqG,IACxCqH,KAAKrH,EAAOowB,QAAQmH,eAAgBxC,MAI3B,WACI/I,IAAIsC,UAAU,qBAAsB,kBAMnD,SAASr6B,EAAQD,GAgCtBg4B,IAAI93B,OAAO,wBAAyB,UAAW,UAAW,SAAU,eAAgB,SAASo6B,EAAUt6B,EAASC,GAEhHD,EAAQwjC,QAAS,EACjBxjC,EAAQyjC,SAAW,iBACnBzjC,EAAQ0jC,QAAU,+nFAsNRpJ,EAAS,cACfuE,gBAAgB7+B,EAAQ0jC,QAAS1jC,EAAQyjC","file":"jsoneditor-minimalist"} \ No newline at end of file diff --git a/dist/jsoneditor-minimalist.min.js b/dist/jsoneditor-minimalist.min.js index e635260..5b73ba6 100644 --- a/dist/jsoneditor-minimalist.min.js +++ b/dist/jsoneditor-minimalist.min.js @@ -25,9 +25,9 @@ * * @author Jos de Jong, * @version 5.6.0 - * @date 2017-04-15 + * @date 2017-05-16 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var o=i[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ace","theme","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var o;try{o=i(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=i(1),s=i(12),a=i(4);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate()),this.refresh()}else this.validateSchema=null,this.options.schema=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(n+24-e)/3:e>r-24&&o+i.scrollTop3?(i.scrollTop+=o/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},d._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title="Undo last action (Ctrl+Z)",o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=this;this.modeSwitcher=new l(this.menu,this.options.modes,this.options.mode,function(e){a.modeSwitcher.destroy(),a.setMode(e),a.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu))},d._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},d._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},d._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(this.focusTarget=e.target),"mousedown"==e.type&&this._startDragDistance(e),"mousemove"!=e.type&&"mouseup"!=e.type&&"click"!=e.type||this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value&&e.target!=t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},d._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},d._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},d._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},d._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},d._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},d.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},d.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},d._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),o=0;o=0},n.prototype.canRedo=function(){return this.index=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),s=/[a-zA-Z_$\d]/;s.test(n);)i+=n,r++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(a),r++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,o=i.length;n=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,o="",r=0,s=n.length;r5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var o=this,r=arguments,s=function(){n=null,i||e.apply(o,r)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var i=t.length,n=0,o=e.length,r=t.length;t.charAt(n)===e.charAt(n)&&nn&&o>0;)r--,o--;return{start:n,end:r}}},function(e,t,i){var n=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,o,r,s){var a=r.length-1;switch(o){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=r[a-1];case 13:this.$={};break;case 14:this.$=r[a-1];break;case 15:this.$=[r[a-2],r[a]];break;case 16:this.$={},this.$[r[a][0]]=r[a][1];break;case 17:this.$=r[a-2],r[a-2][r[a][0]]=r[a][1];break;case 18:this.$=[];break;case 19:this.$=r[a-1];break;case 20:this.$=[r[a]];break;case 21:this.$=r[a-2],r[a-2].push(r[a])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=i.lexer.lex()||1,"number"!=typeof e&&(e=i.symbols_[e]||e),e}var i=this,n=[0],o=[null],r=[],s=this.table,a="",l=0,c=0,d=0,h=2;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;r.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var p,f,m,g,v,y,b,w,x,_={};;){if(m=n[n.length-1],this.defaultActions[m]?g=this.defaultActions[m]:(null==p&&(p=t()),g=s[m]&&s[m][p]),void 0===g||!g.length||!g[0]){if(!d){x=[];for(y in s[m])this.terminals_[y]&&y>2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){n.length=n.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=n[n.length-1]}f=p,p=h,m=n[n.length-1],g=s[m]&&s[m][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+p);switch(g[0]){case 1:n.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),n.push(g[1]),p=null,f?(p=f,f=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(n=n.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[n[n.length-2]][n[n.length-1]],n.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var o=document.createElement("tbody");this.dom.tbody=o,n.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Previous result (Shift+Enter)",f.className="jsoneditor-previous",f.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(f),r.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(o)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e,t){function i(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(r),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.type="button",l.className=o.className,s.button=l,o.title&&(l.title=o.title),o.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),o.click()}),a.appendChild(l),o.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(o.text));var d;if(o.click){l.className+=" jsoneditor-default";var h=document.createElement("button");h.type="button",s.buttonExpand=h,h.className="jsoneditor-expand",h.innerHTML='
',a.appendChild(h),o.submenuTitle&&(h.title=o.submenuTitle),d=h}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),d=l}d.onclick=function(e){e.preventDefault(),n._onExpandItem(s),d.focus()};var p=[];s.subItems=p;var f=document.createElement("ul");s.ul=f,f.className="jsoneditor-menu",f.style.height="0",a.appendChild(f),i(f,p,o.submenu)}else l.innerHTML='
'+o.text;t.push(s)}})}this.dom={};var n=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var s=document.createElement("div");s.className="jsoneditor-contextmenu",o.menu=s,r.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),o.list=a,o.items=[];var l=document.createElement("button");l.type="button",o.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(4);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var r=e.getBoundingClientRect(),s=t.getBoundingClientRect();r.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,d=this.dom.list;this.eventListeners.mousedown=o.addEventListener(window,"mousedown",function(e){var t=e.target;t==d||c._isChildOf(t,d)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){t.expandedItem==e&&(r.style.height=24*r.childNodes.length+"px",r.style.padding="5px 10px")},0),o.addClassName(r.parentNode,"jsoneditor-selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,r,s=e.target,a=e.which,l=!1;27==a?(this.selection&&o.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),0==(i=t.indexOf(s))&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),(i=t.indexOf(s))==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),(n=t[i-1])&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"jsoneditor-expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),r=t[i+1],r&&"jsoneditor-expand"==r.className&&r.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),r=t[i+1],r&&"jsoneditor-expand"==r.className&&(r=t[i+2]),r||(r=t[0]),r&&(r.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){"use strict";function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=a.debounce(this._onChangeValue.bind(this),n.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=a.debounce(this._onChangeField.bind(this),n.prototype.DEBOUNCE_INTERVAL)}var o=i(9),r=i(7),s=i(10),a=i(4);n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.getPath=function(){for(var e=this,t=[];e;){var i=e.parent?"array"!=e.parent.type?e.field:e.index:void 0;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.findNode=function(e){for(var t=a.parsePath(e),i=this;i&&t.length>0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.type="button",o.className="jsoneditor-schema-error",o.appendChild(n),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(r))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],o=e[e.length-1],r=n.getNodeFromTarget(t.target),s=o._nextSibling(),l=i.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,o,r,s,c,d,h,u,p,f,m,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(i=E.dom.tr,p=a.getAbsoluteTop(i),g=i.offsetHeight,wf+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(c=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),r=s;do{u=n.getNodeFromTarget(r),r&&(v=r.nextSibling?a.getAbsoluteTop(r.nextSibling):0,y=r?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling}while(r&&w>p+y);if(u&&u.parent){var j=x-b.drag.mouseX,S=Math.round(j/24/2),N=b.drag.level+S,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return i[0].enum}return null},n._findSchema=function(e,t){for(var i=e,n=0;n0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)f&&y&&(n.onDuplicate(b),v=!0);else if(69==u)f&&(this._onExpand(m),p.focus(),v=!0);else if(77==u&&y)f&&(this.showContextMenu(p),v=!0);else if(46==u&&y)f&&(n.onRemove(b),v=!0);else if(45==u&&y)f&&!m?(this._onInsertBefore(),v=!0):f&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(n.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var j=this._firstNode();j&&j.focus(n.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(p);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(i=n.getNodeFromTarget(o),r=o.nextSibling,T=n.getNodeFromTarget(r),i&&i instanceof l&&1!=x.parent.childs.length&&T&&T.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(p))),v=!0):!g&&f&&m&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),t.focus("field")),v=!0):g&&m&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var A=this._nextElement(p);A&&this.focus(this._getElementName(A)),v=!0}else if(g&&m&&y){k=w.getDom();var O=k.previousSibling;O&&(t=n.getNodeFromTarget(O))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(p))),v=!0;else if(!g&&f&&m&&y)i=this._nextNode(),i&&(h=this.editor.multiselection,h.start=h.start||this,h.end=i,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),i.focus("field")),v=!0;else if(g&&m&&y){i=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var T=i&&(i._nextNode()||i.parent.append);T&&T.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getSelection();n.blurNodes(e);var a=o.getSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:r,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:r,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onAppend=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*o(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,o=t.getIndex();i.childs[o+e.length]?i.childs[o+e.length].focus():i.childs[o-1]?i.childs[o-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.showContextMenu=function(e,t){var i=this,o=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;i==l[l.length-1]&&s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}]}),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onInsertBefore("","","string")}}]}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new r(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="(empty)",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,o=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}]}];new r(s,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){o.removeClassName(n.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=i(4),r=i(7);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.frame.appendChild(o);var s=o.clientHeight;this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),i(14),i(16)}catch(e){}e.exports=n},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};n.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),o=i.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,r),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var o=this._getFoldWidgetBase(e,t,i);return!o&&this.startRegionRe.test(n)?"start":o},this.getFoldWidgetRange=function(e,t,i,n){var o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,s);var a=e.getCommentFoldRange(i,s+r[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),r=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(n==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),r=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new o(s,n,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new d(["ace"],i(15),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker", +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var o=i[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var o=a.getInternetExplorerVersion();if(-1!=o&&o<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var r=["ace","theme","autocomplete","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys"];Object.keys(t).forEach(function(e){-1===r.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var o;try{o=i(!function(){var e=new Error('Cannot find module "ajv"');throw e.code="MODULE_NOT_FOUND",e}())}catch(e){}var r=i(1),s=i(12),a=i(4);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,o=this.container,r=a.extend({},this.options),s=r.mode;r.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+r.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(o,r),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof r.onModeChange&&e!==s)try{r.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||o({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate()),this.refresh()}else this.validateSchema=null,this.options.schema=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t0?this.autoScrollStep=(n+24-e)/3:e>r-24&&o+i.scrollTop3?(i.scrollTop+=o/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},d._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var o=document.createElement("button");o.type="button",o.className="jsoneditor-undo jsoneditor-separator",o.title="Undo last action (Ctrl+Z)",o.onclick=function(){t._onUndo()},this.menu.appendChild(o),this.dom.undo=o;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){o.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=this;this.modeSwitcher=new l(this.menu,this.options.modes,this.options.mode,function(e){a.modeSwitcher.destroy(),a.setMode(e),a.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new r(this,this.menu))},d._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},d._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},d._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(this.focusTarget=e.target),"mousedown"==e.type&&this._startDragDistance(e),"mousemove"!=e.type&&"mouseup"!=e.type&&"click"!=e.type||this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value&&e.target!=t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},d._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},d._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},d._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},d._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},d._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},d.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},d.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},d._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),o=0;o=0&&e.target.className.indexOf("jsoneditor-value")>=0||this.options.autocomplete.ApplyTo.indexOf("name")>=0&&e.target.className.indexOf("jsoneditor-field")>=0)){var d=a.getNodeFromTarget(e.target);(null==this.options.autocomplete.ActivationChar||e.target.innerText.startsWith(this.options.autocomplete.ActivationChar))&&setTimeout(function(e,t){t.innerText.length>0?this.options.autocomplete.Show(e,t):this.options.autocomplete.Hide()}.bind(this,d,e.target),100)}s&&(e.preventDefault(),e.stopPropagation())},d._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},d.showContextMenu=function(e,t){var i=[],n=this;i.push({text:"Duplicate",title:"Duplicate selected fields (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){a.onDuplicate(n.multiselection.nodes)}}),i.push({text:"Remove",title:"Remove selected fields (Ctrl+Del)",className:"jsoneditor-remove",click:function(){a.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:d,data:"json"},{mode:"view",mixin:d,data:"json"},{mode:"form",mixin:d,data:"json"}]},function(e,t){"use strict";function i(){this.locked=!1}i.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},i.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},i.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},i.prototype.lock=function(){this.locked=!0},i.prototype.unlock=function(){this.locked=!1},e.exports=i},function(e,t,i){"use strict";function n(e){this.editor=e,this.history=[],this.index=-1,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},appendNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.appendChild(t)})}},insertBeforeNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.insertBefore(t,e.beforeNode)})}},insertAfterNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(e.node,t),t=i})}},removeNodes:{undo:function(e){var t=e.parent,i=t.childs[e.index]||t.append;e.nodes.forEach(function(e){t.insertBefore(e,i)})},redo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})}},duplicateNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(i,t),t=i})}},moveNodes:{undo:function(e){e.nodes.forEach(function(t){e.oldBeforeNode.parent.moveBefore(t,e.oldBeforeNode)})},redo:function(e){e.nodes.forEach(function(t){e.newBeforeNode.parent.moveBefore(t,e.newBeforeNode)})}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}i(4);n.prototype.onChange=function(){},n.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},n.prototype.canRedo=function(){return this.index=0;){var t=o[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),s=/[a-zA-Z_$\d]/;s.test(n);)i+=n,r++,n=t();-1===e.indexOf(i)?o.push('"'+i+'"'):o.push(i)}():(o.push(a),r++)}return o.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var o=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&o.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,o=i.length;n=0;a--){var l=s[a];!0===l.specified&&r.removeAttribute(l.name)}t.stripFormatting(r)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,o="",r=0,s=n.length;r5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var o=this,r=arguments,s=function(){n=null,i||e.apply(o,r)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(o,r)}},t.textDiff=function(e,t){for(var i=t.length,n=0,o=e.length,r=t.length;t.charAt(n)===e.charAt(n)&&nn&&o>0;)r--,o--;return{start:n,end:r}}},function(e,t,i){var n=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,o,r,s){var a=r.length-1;switch(o){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=r[a-1];case 13:this.$={};break;case 14:this.$=r[a-1];break;case 15:this.$=[r[a-2],r[a]];break;case 16:this.$={},this.$[r[a][0]]=r[a][1];break;case 17:this.$=r[a-2],r[a-2][r[a][0]]=r[a][1];break;case 18:this.$=[];break;case 19:this.$=r[a-1];break;case 20:this.$=[r[a]];break;case 21:this.$=r[a-2],r[a-2].push(r[a])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=i.lexer.lex()||1,"number"!=typeof e&&(e=i.symbols_[e]||e),e}var i=this,n=[0],o=[null],r=[],s=this.table,a="",l=0,c=0,d=0,h=2;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;r.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var p,f,m,g,v,y,b,w,x,_={};;){if(m=n[n.length-1],this.defaultActions[m]?g=this.defaultActions[m]:(null==p&&(p=t()),g=s[m]&&s[m][p]),void 0===g||!g.length||!g[0]){if(!d){x=[];for(y in s[m])this.terminals_[y]&&y>2&&x.push("'"+this.terminals_[y]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+x.join(", ")+", got '"+this.terminals_[p]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==p?"end of input":"'"+(this.terminals_[p]||p)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[p]||p,line:this.lexer.yylineno,loc:u,expected:x})}if(3==d){if(1==p)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,p=t()}for(;;){if(h.toString()in s[m])break;if(0==m)throw new Error(E||"Parsing halted.");!function(e){n.length=n.length-2*e,o.length=o.length-e,r.length=r.length-e}(1),m=n[n.length-1]}f=p,p=h,m=n[n.length-1],g=s[m]&&s[m][h],d=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+p);switch(g[0]){case 1:n.push(p),o.push(this.lexer.yytext),r.push(this.lexer.yylloc),n.push(g[1]),p=null,f?(p=f,f=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(b=this.productions_[g[1]][1],_.$=o[o.length-b],_._$={first_line:r[r.length-(b||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(b||1)].first_column,last_column:r[r.length-1].last_column},void 0!==(v=this.performAction.call(_,a,c,l,this.yy,g[1],o,r)))return v;b&&(n=n.slice(0,-1*b*2),o=o.slice(0,-1*b),r=r.slice(0,-1*b)),n.push(this.productions_[g[1]][0]),o.push(_.$),r.push(_._$),w=s[n[n.length-2]][n[n.length-1]],n.push(w);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,o;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(o=t[0].match(/\n.*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,r[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var o=document.createElement("tbody");this.dom.tbody=o,n.appendChild(o);var r=document.createElement("tr");o.appendChild(r);var s=document.createElement("td");r.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),r.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var d=document.createElement("tbody");c.appendChild(d),r=document.createElement("tr"),d.appendChild(r);var h=document.createElement("button");h.type="button",h.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(h),r.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},h.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),r.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Next result (Enter)",p.className="jsoneditor-next",p.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(p),r.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Previous result (Shift+Enter)",f.className="jsoneditor-previous",f.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(f),r.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,o=this.results[this.resultIndex].elem;"field"==o?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(o)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e,t){function i(e,t,o){o.forEach(function(o){if("separator"==o.type){var r=document.createElement("div");r.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(r),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.type="button",l.className=o.className,s.button=l,o.title&&(l.title=o.title),o.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),o.click()}),a.appendChild(l),o.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(o.text));var d;if(o.click){l.className+=" jsoneditor-default";var h=document.createElement("button");h.type="button",s.buttonExpand=h,h.className="jsoneditor-expand",h.innerHTML='
',a.appendChild(h),o.submenuTitle&&(h.title=o.submenuTitle),d=h}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),d=l}d.onclick=function(e){e.preventDefault(),n._onExpandItem(s),d.focus()};var p=[];s.subItems=p;var f=document.createElement("ul");s.ul=f,f.className="jsoneditor-menu",f.style.height="0",a.appendChild(f),i(f,p,o.submenu)}else l.innerHTML='
'+o.text;t.push(s)}})}this.dom={};var n=this,o=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var r=document.createElement("div");r.className="jsoneditor-contextmenu-root",o.root=r;var s=document.createElement("div");s.className="jsoneditor-contextmenu",o.menu=s,r.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),o.list=a,o.items=[];var l=document.createElement("button");l.type="button",o.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var o=i(4);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var r=e.getBoundingClientRect(),s=t.getBoundingClientRect();r.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,d=this.dom.list;this.eventListeners.mousedown=o.addEventListener(window,"mousedown",function(e){var t=e.target;t==d||c._isChildOf(t,d)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=o.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=o.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&o.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",o.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var r=e.ul;r.style.display="block";r.clientHeight;setTimeout(function(){t.expandedItem==e&&(r.style.height=24*r.childNodes.length+"px",r.style.padding="5px 10px")},0),o.addClassName(r.parentNode,"jsoneditor-selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,r,s=e.target,a=e.which,l=!1;27==a?(this.selection&&o.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),0==(i=t.indexOf(s))&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),(i=t.indexOf(s))==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),(n=t[i-1])&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"jsoneditor-expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),r=t[i+1],r&&"jsoneditor-expand"==r.className&&r.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),r=t[i+1],r&&"jsoneditor-expand"==r.className&&(r=t[i+2]),r||(r=t[0]),r&&(r.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){"use strict";function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=a.debounce(this._onChangeValue.bind(this),n.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=a.debounce(this._onChangeField.bind(this),n.prototype.DEBOUNCE_INTERVAL)}var o=i(9),r=i(7),s=i(10),a=i(4);n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.getPath=function(){for(var e=this,t=[];e;){var i=e.parent?"array"!=e.parent.type?e.field:e.index:void 0;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.findNode=function(e){for(var t=a.parsePath(e),i=this;i&&t.length>0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var o=document.createElement("button");for(o.type="button",o.className="jsoneditor-schema-error",o.appendChild(n),o.onmouseover=o.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(r))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),o=document.createElement("button");o.type="button",e.menu=o,o.className="jsoneditor-contextmenu",o.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var r=document.createElement("td");return e.tr.appendChild(r),e.tree=this._createDomTree(),r.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],o=e[e.length-1],r=n.getNodeFromTarget(t.target),s=o._nextSibling(),l=i.editor,c=a.getAbsoluteTop(r.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,o,r,s,c,d,h,u,p,f,m,g,v,y,b=e[0].editor,w=t.pageY-b.drag.offsetY,x=t.pageX,_=!1,E=e[0];if(i=E.dom.tr,p=a.getAbsoluteTop(i),g=i.offsetHeight,wf+g&&(h=void 0)),h&&(e.forEach(function(e){h.parent.moveBefore(e,h)}),_=!0)}else{var C=e[e.length-1];if(c=C.expanded&&C.append?C.append.getDom():C.dom.tr,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),r=s;do{u=n.getNodeFromTarget(r),r&&(v=r.nextSibling?a.getAbsoluteTop(r.nextSibling):0,y=r?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==C&&(p+=27)),r=r.nextSibling}while(r&&w>p+y);if(u&&u.parent){var j=x-b.drag.mouseX,S=Math.round(j/24/2),N=b.drag.level+S,k=u.getLevel();for(o=u.dom.tr.previousSibling;k0)return i[0].enum}return null},n._findSchema=function(e,t){for(var i=e,n=0;n0?this.editor.multiselection.nodes:[this],w=b[0],x=b[b.length-1];if(13==u){if(p==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(p==this.dom.expand){var _=this._hasChilds();if(_){var E=e.ctrlKey;this._onExpand(E),p.focus(),v=!0}}}else if(68==u)f&&y&&(n.onDuplicate(b),v=!0);else if(69==u)f&&(this._onExpand(m),p.focus(),v=!0);else if(77==u&&y)f&&(this.showContextMenu(p),v=!0);else if(46==u&&y)f&&(n.onRemove(b),v=!0);else if(45==u&&y)f&&!m?(this._onInsertBefore(),v=!0):f&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var C=this._lastNode();C&&C.focus(n.focusElement||this._getElementName(p)),v=!0}}else if(36==u){if(g){var j=this._firstNode();j&&j.focus(n.focusElement||this._getElementName(p)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(p);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&y){if(x.expanded){var N=x.getAppend();o=N?N.nextSibling:void 0}else{var k=x.getDom();o=k.nextSibling}o&&(i=n.getNodeFromTarget(o),r=o.nextSibling,T=n.getNodeFromTarget(r),i&&i instanceof l&&1!=x.parent.childs.length&&T&&T.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(p))),v=!0):!g&&f&&m&&y?(t=this._previousNode(),t&&(h=this.editor.multiselection,h.start=h.start||this,h.end=t,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),t.focus("field")),v=!0):g&&m&&y&&(t=w._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var A=this._nextElement(p);A&&this.focus(this._getElementName(A)),v=!0}else if(g&&m&&y){k=w.getDom();var O=k.previousSibling;O&&(t=n.getNodeFromTarget(O))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(p))),v=!0;else if(!g&&f&&m&&y)i=this._nextNode(),i&&(h=this.editor.multiselection,h.start=h.start||this,h.end=i,d=this.editor._findTopLevelNodes(h.start,h.end),this.editor.select(d),i.focus("field")),v=!0;else if(g&&m&&y){i=x.expanded?x.append?x.append._nextNode():void 0:x._nextNode();var T=i&&(i._nextNode()||i.parent.append);T&&T.parent&&(s=this.editor.getSelection(),c=x._nextSibling(),b.forEach(function(e){T.parent.moveBefore(e,T)}),this.focus(n.focusElement||this._getElementName(p)),this.editor._onAction("moveNodes",{nodes:b,oldBeforeNode:c,newBeforeNode:T,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,o=t.editor,r=t.getIndex();o.highlighter.unhighlight();var s=o.getSelection();n.blurNodes(e);var a=o.getSelection();e.forEach(function(e){e.parent._remove(e)}),o._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:r,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,o=t.editor;o.deselect(o.multiselection.nodes);var r=o.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():o.select(a);var l=o.getSelection();o._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:r,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertBefore(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[r],beforeNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.insertAfter(r,this),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[r],afterNode:this,parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onAppend=function(e,t,i){var o=this.editor.getSelection(),r=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});r.expand(!0),this.parent.appendChild(r),this.editor.highlighter.unhighlight(),r.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[r],parent:this.parent,oldSelection:o,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,r=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*o(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:r,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,o=t.getIndex();i.childs[o+e.length]?i.childs[o+e.length].focus():i.childs[o-1]?i.childs[o-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.showContextMenu=function(e,t){var i=this,o=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:o.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:o.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:o.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:o.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;i==l[l.length-1]&&s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onAppend("","","string")}}]}),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){i._onInsertBefore("","","string")}}]}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new r(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,p.length);go)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var o=document.createElement("td"),r=document.createElement("div");return r.innerHTML="(empty)",r.className="jsoneditor-readonly",o.appendChild(r),e.td=o,e.text=r,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,o=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:o.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:o.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:o.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:o.string,click:function(){n._onAppend("","","string")}}]}];new r(s,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var r=this.editor.highlighter;r.highlight(this.parent),r.lock(),o.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){o.removeClassName(n.menu,"jsoneditor-selected"),r.unlock(),r.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var o=i(4),r=i(7);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var r={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var o=document.createElement("div");o.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=o,this.frame.appendChild(o);var s=o.clientHeight;this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(!function(){var e=new Error('Cannot find module "brace"');throw e.code="MODULE_NOT_FOUND",e}()),i(14),i(16)}catch(e){}e.exports=n},function(e,t,i){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,i){"use strict";var n=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};n.inherits(r,o),t.JsonHighlightRules=r}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t),o=i.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,s=e.findMatchingBracket({row:t,column:r});if(!s||s.row==t)return 0;var a=this.$getIndent(e.getLine(s.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,i){"use strict";var n=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,s=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(s,r),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var o=this._getFoldWidgetBase(e,t,i);return!o&&this.startRegionRe.test(n)?"start":o},this.getFoldWidgetRange=function(e,t,i,n){var o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);var r=o.match(this.foldingStartMarker);if(r){var s=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,s);var a=e.getCommentFoldRange(i,s+r[0].length,1);return a&&!a.isMultiLine()&&(n?a=this.getSectionRange(e,i):"all"!=t&&(a=null)),a}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var s=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],i,s):e.getCommentFoldRange(i,s,-1)}}},this.getSectionRange=function(e,t){var i=e.getLine(t),n=i.search(/\S/),r=t,s=i.length;t+=1;for(var a=t,l=e.getLength();++tc)break;var d=this.getFoldWidgetRange(e,"all",t);if(d){if(d.start.row<=r)break;if(d.isMultiLine())t=d.end.row;else if(n==c)break}a=t}}return new o(r,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),r=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new o(s,n,d,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var o=e("../lib/oop"),r=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,d=e("../worker/worker_client").WorkerClient,h=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};o.inherits(h,r),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new d(["ace"],i(15),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(h.prototype),t.Mode=h})},function(e,t){e.exports.id="ace/mode/json_worker", e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString("\t.ace_search {\tbackground-color: #ddd;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\tmax-width: 325px;\toverflow: hidden;\tmargin: 0;\tpadding: 4px;\tpadding-right: 6px;\tpadding-bottom: 0;\tposition: absolute;\ttop: 0px;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tborder-radius: 3px;\tborder: 1px solid #cbcbcb;\tfloat: left;\tmargin-bottom: 4px;\toverflow: hidden;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tbackground-color: white;\tcolor: black;\tborder-right: 1px solid #cbcbcb;\tborder: 0 none;\t-webkit-box-sizing: border-box;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tfloat: left;\theight: 22px;\toutline: 0;\tpadding: 0 7px;\twidth: 214px;\tmargin: 0;\t}\t.ace_searchbtn,\t.ace_replacebtn {\tbackground: #fff;\tborder: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tfloat: left;\theight: 22px;\tmargin: 0;\tposition: relative;\t}\t.ace_searchbtn:last-child,\t.ace_replacebtn:last-child {\tborder-top-right-radius: 3px;\tborder-bottom-right-radius: 3px;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn {\tbackground-position: 50% 50%;\tbackground-repeat: no-repeat;\twidth: 27px;\t}\t.ace_searchbtn.prev {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \t}\t.ace_searchbtn.next {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfloat: right;\tfont: 16px/16px Arial;\theight: 14px;\tmargin: 5px 1px 9px 5px;\tpadding: 0;\ttext-align: center;\twidth: 14px;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_replacebtn.prev {\twidth: 54px\t}\t.ace_replacebtn.next {\twidth: 27px\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\t}","ace_searchbox");var l=''.replace(/>\s+/g,">"),c=function(e,t,i){var o=n.createElement("div");o.innerHTML=l,this.element=o.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;r.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),r.stopPropagation(e)}),r.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),r.stopPropagation(e)}),r.addCommandKeyListener(e,function(e,i,n){var o=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,o);s&&s.exec&&(s.exec(t),r.stopEvent(e))}),this.$onChange=o.delayedCall(function(){t.find(!1,!1)}),r.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),r.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),r.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var o=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i}),r=!o&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",r),this.editor._emit("findSearchBox",{match:!r}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor-minimalist.map \ No newline at end of file diff --git a/dist/jsoneditor.js b/dist/jsoneditor.js index 7021e96..0c6290e 100644 --- a/dist/jsoneditor.js +++ b/dist/jsoneditor.js @@ -25,7 +25,7 @@ * * @author Jos de Jong, * @version 5.6.0 - * @date 2017-04-15 + * @date 2017-05-16 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -164,7 +164,7 @@ return /******/ (function(modules) { // webpackBootstrap // validate options if (options) { var VALID_OPTIONS = [ - 'ace', 'theme', + 'ace', 'theme','autocomplete', 'ajv', 'schema', 'onChange', 'onEditable', 'onError', 'onModeChange', 'escapeUnicode', 'history', 'search', 'mode', 'modes', 'name', 'indentation', 'sortObjectKeys' @@ -8514,6 +8514,7 @@ return /******/ (function(modules) { // webpackBootstrap var ModeSwitcher = __webpack_require__(12); var util = __webpack_require__(5); + // create a mixin with the functions for tree mode var treemode = {}; @@ -8612,7 +8613,8 @@ return /******/ (function(modules) { // webpackBootstrap history: true, mode: 'tree', name: undefined, // field name of root node - schema: null + schema: null, + autocomplete: null }; // copy all options @@ -9556,7 +9558,9 @@ return /******/ (function(modules) { // webpackBootstrap */ treemode._onKeyDown = function (event) { var keynum = event.which || event.keyCode; + var altKey = event.altKey; var ctrlKey = event.ctrlKey; + var metaKey = event.metaKey; var shiftKey = event.shiftKey; var handled = false; @@ -9602,6 +9606,25 @@ return /******/ (function(modules) { // webpackBootstrap } } + if ((this.options.autocomplete) && (!handled)) { + if (!ctrlKey && !altKey && !metaKey && (event.key.length == 1 || keynum == 8 || keynum == 46)) { + handled = false; + if ((this.options.autocomplete.ApplyTo.indexOf('values') >= 0 && event.target.className.indexOf("jsoneditor-value") >= 0) || + (this.options.autocomplete.ApplyTo.indexOf('name') >= 0 && event.target.className.indexOf("jsoneditor-field") >= 0)) { + var node = Node.getNodeFromTarget(event.target); + if (this.options.autocomplete.ActivationChar == null || event.target.innerText.startsWith(this.options.autocomplete.ActivationChar)) { // Activate autocomplete + setTimeout(function (hnode, element) { + if (element.innerText.length > 0) + this.options.autocomplete.Show(hnode, element); + else + this.options.autocomplete.Hide(); + + }.bind(this, node, event.target), 100); + } + } + } + } + if (handled) { event.preventDefault(); event.stopPropagation(); diff --git a/dist/jsoneditor.map b/dist/jsoneditor.map index 841764b..e20f1c9 100644 --- a/dist/jsoneditor.map +++ b/dist/jsoneditor.map @@ -1 +1 @@ -{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","require","global","f","e","t","n","r","s","o","u","a","code","l","1","setupAsync","opts","required","check","async","transpile","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","copy","checkGenerators","Function","checkAsyncFunction","getRegenerator","regenerator","runtime","regeneratorTranspile","getNodent","nodent","log","dontInstallRequireHook","nodentTranspile","promises","sourcemap","compileAsync","callback","_compileAsync","firstCall","deferCallback","setTimeout","self","missingSchema","schemaLoaded","sch","_refs","ref","_schemas","addSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","put","key","value","del","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","arrB","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","toString","hasOwnProperty","5","formats","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","undefined","UUID","JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","loadBeautify","beautify","js_beautify","localRefs","baseId","callValidate","compilation","result","apply","errors","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","validateCode","co","ucs2length","ValidationError","refs","keepSourceCode","source","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","definition","message","errorsText","macro","keyword","checkCompiling","_compilations","compiling","_formats","cv","endCompiling","compIndex","splice","arr","statement","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","resolveSchema","refPath","_getFullPath","getFullPath","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","ALL","KEYWORDS","TYPES","all","group","map","push","keywords","concat","types","custom","./_rules","9","obj","10","len","pos","charCodeAt","11","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","./ucs2length","12","validation","constructor","13","$keyword","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$schemaValue","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","__err","pop","compositeRule","14","$notOp","15","16","unicode","17","18","$it","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","19","$errs","every","$wasComposite","20","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$code","passContext","$parentData","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","22","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","23","$vSchema","24","$unknownFormats","unknownFormats","$allowUnknown","$isObject","$formatRef","25","$idx","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$matched","$ownProperties","ownProperties","$pProperty","i1","$missingPattern","31","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","32","$refCode","$refVal","$message","missingRefs","$error","__callValidate","33","$propertySch","$loopRequired","i3","34","$shouldContinue","$ifPassed","$caseIndex","if","then","continue","35","36","$shouldUseRule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$refKeywords","extendRefs","$rulesGroup","$typeChecked","37","addKeyword","_addRule","ruleGroup","rg","metaSchema","getKeyword","removeKeyword","j","add","remove","./dotjs/custom","38","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","39","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","40","enableV5","_addKeyword","inlineFunc","inlineFunctions","_formatLimit","patternRequired","meta","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","41","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","TypeError","String","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","isObject","objectToPromise","fn","results","promise","displayName","val","wrap","createPromise","__generatorFunction__","42","cmp","space","cycles","replacer","node","aobj","bobj","seen","parent","indent","colonSeparator","toJSON","objectKeys","sort","keyValue","","x","has","jsonify","43","./lib/parse","./lib/stringify","44","at","ch","text","escapee","\"","\\","/","charAt","string","isFinite","hex","uffff","parseInt","fromCharCode","white","word","reviver","walk","holder","k","45","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","46","RangeError","mapDomain","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","window","punycode","overflow","not-basic","invalid-input","Math","version","ucs2","47","qs","sep","eq","maxKeys","kstr","vstr","idx","substr","xs","48","stringifyPrimitive","ks","49","./decode","./encode","50","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","queryIndex","splitter","uSplit","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","51","arg","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","currentUriFormat","keyRef","_getSchemaObj","_getSchemaFragment","compileSchema","_fragments","fragment","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","_metaOpts","separator","dataPath","addFormat","cache","indent_size","errorDataPath","metaOpts","META_IGNORE_OPTIONS","optsSchemas","customKeyword","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5","Highlighter","History","SearchBox","ContextMenu","Node","ModeSwitcher","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","debounce","bind","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","reduce","findParents","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","_onKeyDown","_startDragDistance","_updateDragDistance","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","first","startPath","getNodePath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","keynum","which","keyCode","ctrlKey","shiftKey","handled","selectContentEditable","previous","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","show","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","sanitize","jsString","curr","prev","chars","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","removeClassName","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","element","buffer","flush","nodeValue","hasChildNodes","innerText","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","defaultActions","parseError","lex","token","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","altKey","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","titles","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","position","ace","indentation","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","buttonCompact","compact","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","on","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","insert","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","enumerable","configurable","getOwnPropertyNames","createEmpty","empty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","hasCssClass","el","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","offsetWidth","withScrollbar","getPageScrollTop","getPageScrollLeft","getComputedStyle","currentStyle","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","writable","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isTouchPad","isChromeOS","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","wrapper","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touchObj","changedTouches","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","metaKey","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","lang","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","setAttribute","opacity","copied","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","createTextRange","moveStart","moveEnd","ownerDocument","parentElement","inPropertyChange","onPropertyChange","syncProperty","sendText","keytable","onCompositionEnd","onCompositionUpdate","onCompositionStart","onSelect","selectAll","setInputHandler","cb","getInputHandler","afterContextMenu","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","$readOnly","session","$undoManager","markUndoGroup","clearSelection","lastValue","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","rect","borderTopWidth","borderLeftWidth","maxTop","move","textInput","scroller","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","row","column","ev","inSelection","getDocumentPosition","mousedownEvent","selectionRange","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScrollTime","isScrollableBy","speed","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","innerHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","getOptions","optionNames","$options","getOption","opt","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","tabSize","getTabSize","isTabStop","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","screenPos","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getCursorPosition","getWrapBehavioursEnabled","isSaneInsertion","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","lineCommentStart","leftChar","rightToken","pair","stringBefore","stringAfter","wordRe","$mode","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","L","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","$id","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","startCol","endCol","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","docRow","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$useWrapMode","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","dir","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","isFullWidth","bgTokenizer","resetCaches","$resetRowCache","$docRowCache","$screenRowCache","$getRowCacheIndex","cacheArray","low","hi","mid","$wrapData","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","reset","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","size","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","splits","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","getScreenTabSize","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","rowCache","doCache","maxRow","wrapIndent","splitIndex","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","find","$matchIterator","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","matchIterator","backwards","lineIterator","$lineIterator","_callback","$disableFakeMultiline","wholeWord","modifier","caseSensitive","$assembleMultilineRegExp","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","isDefault","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedText","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","keyBinding","$mouseHandler","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","selections","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setShowInvisibles","showInvisibles","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","firstRowScreen","stringBuilder","extraStyle","lineRange","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","$characterSize","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","whiteSpace","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","$measureCharWidth","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","marginTop","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","WorkerClient","topLevelNamespaces","classname","workerUrl","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","workerSrc","Blob","blob","blobUrl","URL","webkitURL","createObjectURL","Worker","DOMException","$workerBlob","blobURL","revokeObjectURL","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","isAvailable","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","tmp","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","sc","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","Builder","MSBlobBuilder","bag","builder","endings","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","$syncOptions","noMatch","replaceAndFindNext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,KACpBK,KAAM,WACT,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUP,OAGnC,IAAIC,GAASO,EAAiBD,IAC7BP,WACAS,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOS,QAAS,EAGTT,EAAOD,QAvBf,GAAIQ,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAASL,EAAQD,EAASM,GAE/B,YAgDA,SAASS,GAAYC,EAAWC,EAASC,GACvC,KAAMd,eAAgBW,IACpB,KAAM,IAAII,OAAM,+CAIlB,IAAIC,GAAYC,EAAKC,4BACrB,KAAkB,GAAdF,GAAmBA,EAAY,EACjC,KAAM,IAAID,OAAM,iGAIlB,IAAIF,IAEEA,EAAQM,QACVC,QAAQC,KAAK,gDACbR,EAAQS,QAAUT,EAAQM,YACnBN,GAAQM,OAEbN,EAAQU,SACVH,QAAQC,KAAK,kDACbR,EAAQW,SAAWX,EAAQU,aACpBV,GAAQU,QAEbV,EAAQY,WACVL,QAAQC,KAAK,sDACbR,EAAQa,WAAab,EAAQY,eACtBZ,GAAQY,UAIbZ,GAAS,CACX,GAAIc,IACF,MAAO,QACP,MAAO,SACP,WAAY,aAAc,UAAW,eACrC,gBAAiB,UAAW,SAAU,OAAQ,QAAS,OAAQ,cAAe,iBAGhFC,QAAOC,KAAKhB,GAASiB,QAAQ,SAAUC,IACE,IAAnCJ,EAAcK,QAAQD,IACxBX,QAAQC,KAAK,mBAAqBU,EAAS,oCAM/CE,UAAUC,QACZlC,KAAKmC,QAAQvB,EAAWC,EAASC,GA9FrC,GAAIsB,EACJ,KACEA,EAAMlC,EAAoB,GAE5B,MAAOmC,IAIP,GAAIC,GAAWpC,EAAoB,GAC/BqC,EAAWrC,EAAoB,IAC/Be,EAAOf,EAAoB,EAuG/BS,GAAW6B,SAGX7B,EAAW8B,UAAUC,kBAAoB,IASzC/B,EAAW8B,UAAUN,QAAU,SAAUvB,EAAWC,EAASC,GAC3Dd,KAAKY,UAAYA,EACjBZ,KAAKa,QAAUA,MACfb,KAAKc,KAAOA,KAEZ,IAAI6B,GAAO3C,KAAKa,QAAQ8B,MAAQ,MAChC3C,MAAK4C,QAAQD,IAMfhC,EAAW8B,UAAUI,QAAU,aAM/BlC,EAAW8B,UAAUK,IAAM,SAAUhC,GACnCd,KAAKc,KAAOA,GAOdH,EAAW8B,UAAUM,IAAM,WACzB,MAAO/C,MAAKc,MAOdH,EAAW8B,UAAUO,QAAU,SAAUC,GACvCjD,KAAKc,KAAOG,EAAKiC,MAAMD,IAOzBtC,EAAW8B,UAAUU,QAAU,WAC7B,MAAOC,MAAKC,UAAUrD,KAAKc,OAO7BH,EAAW8B,UAAUa,QAAU,SAAUC,GAClCvD,KAAKa,UACRb,KAAKa,YAEPb,KAAKa,QAAQ0C,KAAOA,GAOtB5C,EAAW8B,UAAUe,QAAU,WAC7B,MAAOxD,MAAKa,SAAWb,KAAKa,QAAQ0C,MAStC5C,EAAW8B,UAAUG,QAAU,SAAUD,GACvC,GAGIc,GACAF,EAJA3C,EAAYZ,KAAKY,UACjBC,EAAUI,EAAKyC,UAAW1D,KAAKa,SAC/B8C,EAAU9C,EAAQ8B,IAItB9B,GAAQ8B,KAAOA,CACf,IAAIiB,GAASjD,EAAW6B,MAAMG,EAC9B,KAAIiB,EAqCF,KAAM,IAAI7C,OAAM,iBAAmBF,EAAQ8B,KAAO,IApClD,KACE,GAAIkB,GAAyB,QAAfD,EAAOH,IAYrB,IAXAF,EAAOvD,KAAKwD,UACZC,EAAOzD,KAAK6D,EAAS,UAAY,SAEjC7D,KAAK6C,UACL5B,EAAK6C,MAAM9D,MACXiB,EAAKyC,OAAO1D,KAAM4D,EAAOG,OACzB/D,KAAKgE,OAAOpD,EAAWC,GAEvBb,KAAKsD,QAAQC,GACbvD,KAAK6D,EAAS,UAAY,OAAOJ,GAEN,kBAAhBG,GAAOK,KAChB,IACEL,EAAOK,KAAK1D,KAAKP,MAEnB,MAAOqC,GACLjB,QAAQD,MAAMkB,GAIlB,GAAoC,kBAAzBxB,GAAQqD,cAA+BvB,IAASgB,EACzD,IACE9C,EAAQqD,aAAavB,EAAMgB,GAE7B,MAAOtB,GACLjB,QAAQD,MAAMkB,IAIpB,MAAOA,GACLrC,KAAKmE,SAAS9B,KAYpB1B,EAAW8B,UAAU2B,QAAU,WAC7B,MAAOpE,MAAKa,QAAQ8B,MAStBhC,EAAW8B,UAAU0B,SAAW,SAAS9B,GACvC,IAAIrC,KAAKa,SAA2C,kBAAzBb,MAAKa,QAAQS,QAItC,KAAMe,EAHNrC,MAAKa,QAAQS,QAAQe,IAYzB1B,EAAW8B,UAAU4B,UAAY,SAAUC,GAEzC,GAAIA,EAAQ,CACV,GAAIC,EACJ,KAEEA,EAAMvE,KAAKa,QAAQ0D,KAAOnC,GAAMoC,WAAW,EAAMC,SAAS,IAG5D,MAAOpC,GACLjB,QAAQC,KAAK,iMAGXkD,IACFvE,KAAK0E,eAAiBH,EAAII,QAAQL,GAIlCtE,KAAKa,QAAQyD,OAASA,EAGtBtE,KAAK4E,YAGP5E,KAAK6E,cAIL7E,MAAK0E,eAAiB,KACtB1E,KAAKa,QAAQyD,OAAS,KACtBtE,KAAK4E,WACL5E,KAAK6E,WAQTlE,EAAW8B,UAAUmC,SAAW,aAOhCjE,EAAW8B,UAAUoC,QAAU,aAuB/BlE,EAAWmE,aAAe,SAAUnC,GAClC,GAAIoC,GAAGC,CAEP,IAAI/D,EAAKgE,QAAQtC,GAEf,IAAKoC,EAAI,EAAGA,EAAIpC,EAAKT,OAAQ6C,IAC3BpE,EAAWmE,aAAanC,EAAKoC,QAG5B,CAEH,KAAM,QAAUpC,IAAO,KAAM,IAAI5B,OAAM,0BACvC,MAAM,SAAW4B,IAAO,KAAM,IAAI5B,OAAM,2BACxC,MAAM,QAAU4B,IAAO,KAAM,IAAI5B,OAAM,0BACvC,IAAIwC,GAAOZ,EAAKA,IAChB,IAAIY,IAAQ5C,GAAW6B,MACrB,KAAM,IAAIzB,OAAM,SAAWwC,EAAO,uBAIpC,IAAiC,kBAAtBZ,GAAKoB,MAAMC,OACpB,KAAM,IAAIjD,OAAM,8CAElB,IAAImE,IAAY,UAAW,eAAgB,QAC3C,KAAKH,EAAI,EAAGA,EAAIG,EAAShD,OAAQ6C,IAE/B,IADAC,EAAOE,EAASH,KACJpC,GAAKoB,MACf,KAAM,IAAIhD,OAAM,sBAAwBiE,EAAO,yBAInDrE,GAAW6B,MAAMe,GAAQZ,IAK7BhC,EAAWmE,aAAaxC,GACxB3B,EAAWmE,aAAavC,GAExB1C,EAAOD,QAAUe,GAKZ,SAASd,EAAQD,EAASM,GAE/B,GAAIiF,GAAYA,GAAoC,SAASC,IAAS,SAAUC,GAAYxF,EAAOD,QAAQyF,KAAwO,WAAW,GAAIvF,EAAsB,OAAO,SAAUwF,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATV,IAAqBA,CAAQ,KAAIS,GAAGC,EAAE,MAAOV,GAAQQ,GAAE,EAAI,IAAGZ,EAAE,MAAOA,GAAEY,GAAE,EAAI,IAAIN,GAAE,GAAItE,OAAM,uBAAuB4E,EAAE,IAAK,MAAMN,GAAES,KAAK,mBAAmBT,EAAE,GAAIU,GAAEP,EAAEG,IAAI/F,WAAY2F,GAAEI,GAAG,GAAGpF,KAAKwF,EAAEnG,QAAQ,SAAS0F,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,GAAIF,IAAIS,EAAEA,EAAEnG,QAAQ0F,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAG/F,QAAkD,IAAI,GAA1CmF,GAAkB,kBAATI,IAAqBA,EAAgBQ,EAAE,EAAEA,EAAEF,EAAEvD,OAAOyD,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKM,GAAG,SAASb,EAAQtF,EAAOD,GAC51B,YA+BA,SAASqG,GAAWC,EAAMC,IACP,IAAbA,IAAoBA,GAAW,EACnC,IAEIC,GAFAC,EAAQH,EAAKG,MACbC,EAAYJ,EAAKI,SAGrB,cAAeA,IACb,IAAK,SACH,GAAIvD,GAAMwD,EAAUD,EACpB,KAAKvD,EAAK,KAAM,IAAIhC,OAAM,mBAAqBuF,EAC/C,OAAQJ,GAAKM,eAAiBzD,EAAImD,EAAMC,EAC1C,KAAK,YACL,IAAK,UACH,GAAoB,gBAATE,GAAmB,CAE5B,KADAD,EAAQK,EAAMJ,IACF,KAAM,IAAItF,OAAM,mBAAqBsF,EACjD,OAAQH,GAAKI,UAAYF,EAAMF,EAAMC,GAGvC,IAAK,GAAIpB,GAAE,EAAGA,EAAE2B,EAAMxE,OAAQ6C,IAAK,CACjC,GAAI4B,GAAQD,EAAM3B,EAClB,IAAIkB,EAAWU,GAAO,GAEpB,MADA1F,GAAK2F,KAAKD,EAAOT,GACVA,EAAKI,UAIhB,KAAM,IAAIvF,OAAM,uDAClB,KAAK,WACH,MAAQmF,GAAKM,eAAiBN,EAAKI,SACrC,SACE,KAAM,IAAIvF,OAAM,mBAAqBuF,IAK3C,QAASO,GAAgBX,EAAMC,GAE7B,IAEE,MADA,IAAKW,UAAS,wBACP,EACP,MAAMxB,GAEN,GAAIa,EAAU,KAAM,IAAIpF,OAAM,6BAKlC,QAASgG,GAAmBb,EAAMC,GAEhC,IAGE,MAFA,IAAKW,UAAS,6BAEP,EACP,MAAMxB,GACN,GAAIa,EAAU,KAAM,IAAIpF,OAAM,sCAKlC,QAASiG,GAAed,EAAMC,GAC5B,IACE,IAAKc,EAAa,CAEhBA,EAAc9B,EADH,eAEX8B,EAAYC,UAId,MAFKhB,GAAKG,QAAwB,IAAfH,EAAKG,QACtBH,EAAKG,MAAQ,OACRc,EACP,MAAM7B,GAEN,GAAIa,EAAU,KAAM,IAAIpF,OAAM,8BAKlC,QAASoG,GAAqBrB,GAC5B,MAAOmB,GAAYtC,QAAQmB,GAAMA,KAInC,QAASsB,GAAUlB,EAAMC,GAEvB,IACE,IAAKkB,EAAQ,CAEXA,EAASlC,EADE,WACcmC,KAAK,EAAOC,wBAAwB,IAM/D,MAJkB,OAAdrB,EAAKG,QACHH,EAAKG,QAAwB,IAAfH,EAAKG,OAAgBjF,QAAQC,KAAK,8CACpD6E,EAAKG,MAAQ,OAERmB,EACP,MAAMlC,GAEN,GAAIa,EAAU,KAAM,IAAIpF,OAAM,yBAKlC,QAASyG,GAAgB1B,GACvB,MAAOuB,GAAO1C,QAAQmB,EAAM,IAAM2B,UAAU,EAAMC,WAAW,IAAS5B,KAWxE,QAAS6B,GAAarD,EAAQsD,GAoB5B,QAASC,GAAcvD,EAAQsD,EAAUE,GAgDvC,QAASC,GAAc1F,EAAKuC,GAC1B,IAAIkD,EACC,MAAOF,GAASvF,EAAKuC,EADXoD,YAAW,WAAaJ,EAASvF,EAAKuC,KAhDvD,GAAIA,EACJ,KAAMA,EAAWqD,EAAKtD,QAAQL,GAC9B,MAAMgB,GAGJ,YAFIA,EAAE4C,cAMR,SAA2B5C,GAwBzB,QAAS6C,GAAa9F,EAAK+F,GACzB,GAAI/F,EAAK,MAAOuF,GAASvF,EACzB,KAAM4F,EAAKI,MAAMC,KAAQL,EAAKM,SAASD,GACrC,IACEL,EAAKO,UAAUJ,EAAKE,GACpB,MAAMhD,GAEN,WADAsC,GAAStC,GAIbuC,EAAcvD,EAAQsD,GAjCxB,GAAIU,GAAMhD,EAAE4C,aACZ,IAAID,EAAKI,MAAMC,IAAQL,EAAKM,SAASD,GACnC,MAAOV,GAAS,GAAI7G,OAAM,UAAYuH,EAAM,kBAAoBhD,EAAEmD,WAAa,uBACjF,IAAIC,GAAaT,EAAKU,gBAAgBL,EAClCI,GACuB,kBAAdA,GACTT,EAAKU,gBAAgBL,IAAQI,EAAYP,GAEzCO,EAAWA,EAAWxG,QAAUiG,GAElCF,EAAKU,gBAAgBL,GAAOH,EAC5BF,EAAKtB,MAAMiC,WAAWN,EAAK,SAAUjG,EAAK+F,GACxC,GAAIM,GAAaT,EAAKU,gBAAgBL,EAEtC,UADOL,GAAKU,gBAAgBL,GACH,kBAAdI,GACTA,EAAWrG,EAAK+F,OAEhB,KAAK,GAAIrD,GAAE,EAAGA,EAAE2D,EAAWxG,OAAQ6C,IACjC2D,EAAW3D,GAAG1C,EAAK+F,OAzBY9C,GAClCyC,EAAczC,IAGrByC,EAAc,KAAMnD,GAzBtB,GAAIiE,GACAZ,EAAOjI,IACX,KACE6I,EAAY7I,KAAK8I,WAAWxE,GAC5B,MAAMgB,GAEN,WADA0C,YAAW,WAAaJ,EAAStC,KAGnC,GAAIuD,EAAUjE,SACZoD,WAAW,WAAaJ,EAAS,KAAMiB,EAAUjE,gBAC5C,CACL,GAAoC,kBAAzB5E,MAAK2G,MAAMiC,WACpB,KAAM,IAAI7H,OAAM,0CAClB8G,GAAcvD,EAAQsD,GAAU,IA9JpC/H,EAAOD,SACLmJ,MAAO9C,EACPtB,QAASgD,EAIX,IAoBIV,GAAaI,EApBbpG,EAAOkE,EAAQ,kBAEfsB,GACFuC,IAAKnC,EACLoC,MAAOpC,EACPqC,IAAOnC,GAGLR,GACFc,OAAUD,EACVH,YAAeD,GAGbN,IACAL,MAAO,QACPA,MAAO,MAAOC,UAAW,WACzBD,MAAO,MAAOC,UAAW,kBAmM1B6C,iBAAiB,KAAKC,GAAG,SAASjE,EAAQtF,EAAOD,GACpD,YAGA,IAAIyJ,GAAQxJ,EAAOD,QAAU,WAC3BI,KAAKsJ,UAIPD,GAAM5G,UAAU8G,IAAM,SAAmBC,EAAKC,GAC5CzJ,KAAKsJ,OAAOE,GAAOC,GAIrBJ,EAAM5G,UAAUM,IAAM,SAAmByG,GACvC,MAAOxJ,MAAKsJ,OAAOE,IAIrBH,EAAM5G,UAAUiH,IAAM,SAAmBF,SAChCxJ,MAAKsJ,OAAOE,IAIrBH,EAAM5G,UAAUqB,MAAQ,WACtB9D,KAAKsJ,gBAGDK,GAAG,SAASxE,EAAQtF,EAAOD,GACjC,YAGAC,GAAOD,SACLgK,KAAQzE,EAAQ,gBAChB0E,MAAO1E,EAAQ,kBACf2E,MAAO3E,EAAQ,kBACf4E,aAAc5E,EAAQ,yBACtB6E,KAAQ7E,EAAQ,iBAChB8E,OAAQ9E,EAAQ,mBAChB+E,MAAO/E,EAAQ,kBACfgF,QAAShF,EAAQ,mBACjBiF,QAASjF,EAAQ,mBACjBkF,SAAUlF,EAAQ,wBAClBmF,SAAUnF,EAAQ,wBAClBoF,UAAWpF,EAAQ,yBACnBqF,UAAWrF,EAAQ,yBACnBsF,cAAetF,EAAQ,6BACvBuF,cAAevF,EAAQ,6BACvBwF,WAAYxF,EAAQ,uBACpByF,IAAKzF,EAAQ,gBACb0F,MAAO1F,EAAQ,kBACf2F,QAAS3F,EAAQ,oBACjB4F,WAAY5F,EAAQ,uBACpBgB,SAAUhB,EAAQ,qBAClB6F,YAAa7F,EAAQ,wBACrBP,SAAUO,EAAQ,wBAGjB8F,kBAAkB,GAAGC,uBAAuB,GAAGC,wBAAwB,GAAGC,4BAA4B,GAAGC,iBAAiB,GAAGC,iBAAiB,GAAGC,wBAAwB,GAAGC,gBAAgB,GAAGC,kBAAkB,GAAGC,iBAAiB,GAAGC,sBAAsB,GAAGC,eAAe,GAAGC,iBAAiB,GAAGC,mBAAmB,GAAGC,sBAAsB,GAAGC,eAAe,GAAGC,oBAAoB,GAAGC,uBAAuB,GAAGC,oBAAoB,KAAKC,GAAG,SAASjH,EAAQtF,EAAOD,GAChd,YAIAC,GAAOD,QAAU,QAASyM,GAAMxG,EAAGyG,GACjC,GAAIzG,IAAMyG,EAAG,OAAO,CAEpB,IAEIvH,GAFAwH,EAAOC,MAAMvH,QAAQY,GACrB4G,EAAOD,MAAMvH,QAAQqH,EAGzB,IAAIC,GAAQE,EAAM,CAChB,GAAI5G,EAAE3D,QAAUoK,EAAEpK,OAAQ,OAAO,CACjC,KAAK6C,EAAI,EAAGA,EAAIc,EAAE3D,OAAQ6C,IACxB,IAAKsH,EAAMxG,EAAEd,GAAIuH,EAAEvH,IAAK,OAAO,CACjC,QAAO,EAGT,GAAIwH,GAAQE,EAAM,OAAO,CAEzB,IAAI5G,GAAKyG,GAAkB,gBAANzG,IAA+B,gBAANyG,GAAgB,CAC5D,GAAIzK,GAAOD,OAAOC,KAAKgE,EACvB,IAAIhE,EAAKK,SAAWN,OAAOC,KAAKyK,GAAGpK,OAAQ,OAAO,CAElD,IAAIwK,GAAQ7G,YAAa8G,MACrBC,EAAQN,YAAaK,KACzB,IAAID,GAASE,EAAO,MAAO/G,GAAEgH,WAAaP,EAAEO,SAC5C,IAAIH,GAASE,EAAO,OAAO,CAE3B,IAAIE,GAAUjH,YAAakH,QACvBC,EAAUV,YAAaS,OAC3B,IAAID,GAAWE,EAAS,MAAOnH,GAAEoH,YAAcX,EAAEW,UACjD,IAAIH,GAAWE,EAAS,OAAO,CAE/B,KAAKjI,EAAI,EAAGA,EAAIlD,EAAKK,OAAQ6C,IAC3B,IAAKnD,OAAOa,UAAUyK,eAAe3M,KAAK+L,EAAGzK,EAAKkD,IAAK,OAAO,CAEhE,KAAKA,EAAI,EAAGA,EAAIlD,EAAKK,OAAQ6C,IAC3B,IAAIsH,EAAMxG,EAAEhE,EAAKkD,IAAKuH,EAAEzK,EAAKkD,KAAM,OAAO,CAE5C,QAAO,EAGT,OAAO,QAGHoI,GAAG,SAAShI,EAAQtF,EAAOD,GACjC,YAgBA,SAASwN,GAAQzK,GACfA,EAAe,QAARA,EAAiB,OAAS,MACjC,IAAI0K,GAAapM,EAAK2F,KAAKwG,EAAQzK,GACnC,KAAK,GAAI2K,KAASF,GAAQG,QACxBF,EAAWC,IACT1I,SAAUyI,EAAWC,GACrBC,QAASH,EAAQG,QAAQD,GAG7B,OAAOD,GAuDT,QAASG,GAAKC,GAEZ,GAAIC,GAAUD,EAAIE,MAAMC,EACxB,KAAKF,EAAS,OAAO,CAErB,IAAIG,IAASH,EAAQ,GACjBI,GAAOJ,EAAQ,EACnB,OAAOG,IAAS,GAAKA,GAAS,IAAMC,GAAO,GAAKA,GAAOC,EAAKF,GAI9D,QAASG,GAAKP,EAAKQ,GACjB,GAAIP,GAAUD,EAAIE,MAAMO,EACxB,KAAKR,EAAS,OAAO,CAErB,IAAIS,GAAOT,EAAQ,GACfU,EAASV,EAAQ,GACjBW,EAASX,EAAQ,GACjBY,EAAWZ,EAAQ,EACvB,OAAOS,IAAQ,IAAMC,GAAU,IAAMC,GAAU,MAAQJ,GAAQK,GAKjE,QAASC,GAAUd,GAEjB,GAAIe,GAAWf,EAAIgB,MAAMC,EACzB,OAA0B,IAAnBF,EAAStM,QAAesL,EAAKgB,EAAS,KAAOR,EAAKQ,EAAS,IAAI,GAIxE,QAASG,GAASlB,GAGhB,MAAOA,GAAIvL,QAAU,KAAO0M,EAASC,KAAKpB,GAK5C,QAASqB,GAAIrB,GAEX,MAAOsB,GAAiBF,KAAKpB,IAAQuB,EAAIH,KAAKpB,GAIhD,QAASwB,GAAMxB,GACb,IAEE,MADA,IAAIV,QAAOU,IACJ,EACP,MAAMnI,GACN,OAAO,GAKX,QAAS4J,GAAYC,EAAIC,GACvB,GAAMD,GAAMC,EACZ,MAAID,GAAKC,EAAW,EAChBD,EAAKC,GAAY,EACjBD,IAAOC,EAAW,MAAtB,GAIF,QAASC,GAAYC,EAAIC,GACvB,GAAMD,GAAMC,IACZD,EAAKA,EAAG3B,MAAMO,GACdqB,EAAKA,EAAG5B,MAAMO,GACRoB,GAAMC,GAGZ,MAFAD,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAAMA,EAAG,IAAI,IACrCC,EAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAAMA,EAAG,IAAI,IACjCD,EAAKC,EAAW,EAChBD,EAAKC,GAAY,EACjBD,IAAOC,EAAW,MAAtB,GAIF,QAASC,GAAgBC,EAAKC,GAC5B,GAAMD,GAAOC,EAAb,CACAD,EAAMA,EAAIhB,MAAMC,GAChBgB,EAAMA,EAAIjB,MAAMC,EAChB,IAAIiB,GAAMT,EAAYO,EAAI,GAAIC,EAAI,GAClC,QAAYE,KAARD,EACJ,MAAOA,IAAON,EAAYI,EAAI,GAAIC,EAAI,KAhKxC,GAAIzO,GAAOkE,EAAQ,UAEfyI,EAAO,2BACPG,GAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAC3CG,EAAO,oDACPU,EAAW,qFACXI,EAAM,moCACNa,EAAO,iEACPC,EAAe,2FAInBjQ,GAAOD,QAAUwN,EAejBA,EAAQ2C,MAENvC,KAAM,6BAENQ,KAAM,2DACNgC,YAAa,uFAEblB,IAAK,8CAILmB,MAAO,oHACPtB,SAAUC,EAEVsB,KAAM,4EAENC,KAAM,qpCACNlB,MAAOA,EAEPmB,KAAMP,EAGNQ,eAAgBP,EAEhBQ,wBA1C0B,sDA8C5BlD,EAAQa,MACNT,KAAMA,EACNQ,KAAMA,EACNgC,YAAazB,EACbO,IAAKA,EACLmB,MAAO,8IACPtB,SAAUA,EACVuB,KAAM,4EACNC,KAAM,qpCACNlB,MAAOA,EACPmB,KAAMP,EACNQ,eAAgBP,EAChBQ,wBA1D0B,sDA8D5BlD,EAAQG,SACNC,KAAM0B,EACNlB,KAAMqB,EACNW,YAAaR,EA2Bf,IAAId,GAAsB,QAetBK,EAAmB,UA+CpBwB,SAAS,KAAKC,GAAG,SAASrL,EAAQtF,EAAOD,GAC5C,YASA,SAAS6Q,KACP,OAAiBb,KAAbc,EAAwB,CAE1B,IAAMA,EAAWvL,EADN,eACoBwL,YAC/B,MAAMrL,GAAKoL,GAAW,IA6B1B,QAAS/L,GAAQL,EAAQ5E,EAAMkR,EAAWC,GAyCxC,QAASC,KACP,GAAIlM,GAAWmM,EAAYnM,SACvBoM,EAASpM,EAASqM,MAAM,KAAMhP,UAElC,OADA6O,GAAaI,OAAStM,EAASsM,OACxBF,EAGT,QAASG,GAAaC,EAASC,EAAOT,EAAWC,GAC/C,GAAIS,IAAUD,GAAUA,GAASA,EAAM/M,QAAU8M,CACjD,IAAIC,EAAM/M,QAAU5E,EAAK4E,OACvB,MAAOK,GAAQpE,KAAK0H,EAAMmJ,EAASC,EAAOT,EAAWC,EAEvD,IAAIU,IAA4B,IAAnBH,EAAQG,MACjBA,KAAWrL,EAAKI,WAAWD,EAAM0C,MAAM7C,EAE3C,IAAIsL,GAAaC,GACfC,OAAO,EACPpN,OAAQ8M,EACRE,OAAQA,EACRT,OAAQA,EACRnR,KAAM2R,EACNM,WAAY,GACZC,cAAe,IACfC,UAAW,KACXC,MAAOA,EACPlN,SAAU6M,EACVxQ,KAAMA,EACN8Q,QAASA,EACTC,WAAYA,EACZC,WAAYA,EACZC,WAAYA,EACZC,cAAeA,EACfjM,KAAMA,EACNkH,QAASA,EACTnF,KAAMA,GAGRuJ,GAAaY,EAAKC,EAAQC,GAAcF,EAAKG,EAAUC,GACtCJ,EAAKK,EAAUC,GAAeN,EAAKO,EAAaC,GAChDpB,EAEbtL,EAAKwK,WACPD,IAEIC,EAAUc,EAAad,EAASc,EAAYtL,EAAKwK,UAChDtP,QAAQD,MAAM,oDAGrB,IAAIyD,GAAUiO,EACVvM,EAAYJ,EAAKM,cACrB,KACEqM,EAAetB,GAAUjL,EACPA,EAAUkL,GACVA,CAiBlB5M,GAfmB,GAAIkC,UACrB,OACA,QACA,UACA,OACA,SACA,WACA,cACA,KACA,QACA,aACA,kBACA+L,GAIA5K,EACA6J,EACA1E,EACA1N,EACA2S,EACAI,EACAE,EACAG,EACAzG,EACA0G,EACAC,GAGFX,EAAO,GAAKzN,EACZ,MAAMU,GAEN,KADAlE,SAAQD,MAAM,yCAA0C0R,GAClDvN,EAiBR,MAdAV,GAASN,OAAS8M,EAClBxM,EAASsM,OAAS,KAClBtM,EAASqO,KAAOA,EAChBrO,EAASyN,OAASA,EAClBzN,EAASlF,KAAO4R,EAAS1M,EAAWyM,EAChCE,IAAQ3M,EAAS2M,QAAS,GAC1B2B,IAAgBtO,EAAS4M,WAAaA,IAClB,IAApBtL,EAAKsL,aACP5M,EAASuO,QACPZ,SAAUA,EACVE,SAAUA,IAIP7N,EAGT,QAASoN,GAAWnB,EAAQvI,EAAKgJ,GAC/BhJ,EAAMyJ,EAAQqB,IAAIvC,EAAQvI,EAC1B,IACI+K,GAASC,EADTC,EAAWN,EAAK3K,EAEpB,QAAiBsH,KAAb2D,EAGF,MAFAF,GAAUhB,EAAOkB,GACjBD,EAAU,UAAYC,EAAW,IAC1BC,EAAYH,EAASC,EAE9B,KAAKhC,GAAU5R,EAAKuT,KAAM,CACxB,GAAIQ,GAAY/T,EAAKuT,KAAK3K,EAC1B,QAAkBsH,KAAd6D,EAGF,MAFAJ,GAAU3T,EAAK2S,OAAOoB,GACtBH,EAAUI,EAAYpL,EAAK+K,GACpBG,EAAYH,EAASC,GAIhCA,EAAUI,EAAYpL,EACtB,IAAIqL,GAAI5B,EAAQxR,KAAK0H,EAAMkJ,EAAczR,EAAM4I,EAC/C,KAAKqL,EAAG,CACN,GAAIC,GAAchD,GAAaA,EAAUtI,EACrCsL,KACFD,EAAI5B,EAAQ8B,UAAUD,EAAa1N,EAAK4N,YAClCF,EACAjP,EAAQpE,KAAK0H,EAAM2L,EAAalU,EAAMkR,EAAWC,IAI3D,MAAI8C,IACFI,EAAgBzL,EAAKqL,GACdH,EAAYG,EAAGL,QAFxB,GAMF,QAASI,GAAYpL,EAAKqL,GACxB,GAAIK,GAAQ3B,EAAOnQ,MAGnB,OAFAmQ,GAAO2B,GAASL,EAChBV,EAAK3K,GAAO0L,EACL,SAAWA,EAGpB,QAASD,GAAgBzL,EAAKqL,GAC5B,GAAIK,GAAQf,EAAK3K,EACjB+J,GAAO2B,GAASL,EAGlB,QAASH,GAAYnB,EAAQvM,GAC3B,MAAwB,gBAAVuM,IACFvM,KAAMA,EAAMxB,OAAQ+N,EAAQ4B,QAAQ,IACpCnO,KAAMA,EAAMyL,OAAQc,GAAUA,EAAOd,QAGnD,QAASU,GAAWiC,GAClB,GAAIC,GAAQC,EAAaF,EAKzB,YAJctE,KAAVuE,IACFA,EAAQC,EAAaF,GAAY3B,EAASrQ,OAC1CqQ,EAAS4B,GAASD,GAEb,UAAYC,EAGrB,QAASjC,GAAWzI,GAClB,aAAeA,IACb,IAAK,UACL,IAAK,SACH,MAAO,GAAKA,CACd,KAAK,SACH,MAAOxI,GAAKoT,eAAe5K,EAC7B,KAAK,SACH,GAAc,OAAVA,EAAgB,MAAO,MAC3B,IAAI6K,GAAWC,EAAgB9K,GAC3B0K,EAAQK,EAAaF,EAKzB,YAJc1E,KAAVuE,IACFA,EAAQK,EAAaF,GAAY7B,EAASvQ,OAC1CuQ,EAAS0B,GAAS1K,GAEb,UAAY0K,GAIzB,QAAShC,GAAcsC,EAAMnQ,EAAQoQ,EAAcC,GACjD,GAAIjQ,GAAiB+P,EAAKG,WAAWlQ,cACrC,IAAIA,IAAgD,IAA9BuD,EAAKtB,MAAMjC,eAA0B,CAEzD,IADYA,EAAeJ,GACf,CACV,GAAIuQ,GAAU,8BAAgC5M,EAAK6M,WAAWpQ,EAAewM,OAC7E,IAAiC,OAA7BjJ,EAAKtB,MAAMjC,eACV,KAAM,IAAI3D,OAAM8T,EADmBzT,SAAQD,MAAM0T,IAK1D,GAIIjQ,GAJAD,EAAU8P,EAAKG,WAAWjQ,QAC1BsP,EAASQ,EAAKG,WAAWX,OACzBc,EAAQN,EAAKG,WAAWG,KAGxBpQ,GACFC,EAAWD,EAAQpE,KAAK0H,EAAM3D,EAAQoQ,EAAcC,GAC3CI,GACTnQ,EAAWmQ,EAAMxU,KAAK0H,EAAM3D,EAAQoQ,EAAcC,IACtB,IAAxBzO,EAAKxB,gBAA0BuD,EAAKvD,eAAeE,GAAU,IAEjEA,EADSqP,EACEA,EAAO1T,KAAK0H,EAAM0M,EAAIF,EAAKO,QAAS1Q,EAAQoQ,GAE5CD,EAAKG,WAAWhQ,QAG7B,IAAIuP,GAAQxB,EAAYzQ,MAGxB,OAFAyQ,GAAYwB,GAASvP,GAGnBkB,KAAM,aAAeqO,EACrBvP,SAAUA,GAlQd,GAAIqD,GAAOjI,KACPkG,EAAOlG,KAAK2G,MACZ0L,OAAWzC,IACXqD,KACAV,KACA6B,KACA3B,KACA+B,KACA7B,KACAO,GAAqC,IAApBhN,EAAKsL,UAE1B9R,GAAOA,IAAU4E,OAAQA,EAAQ+N,OAAQA,EAAQY,KAAMA,EAEvD,IAAIxS,GAAIwU,EAAe1U,KAAKP,KAAMsE,EAAQ5E,EAAMmR,GAC5CE,EAAc/Q,KAAKkV,cAAczU,EAAE0T,MACvC,IAAI1T,EAAE0U,UAAW,MAAQpE,GAAYD,aAAeA,CAEpD,IAAI1D,GAAUpN,KAAKoV,SACftD,EAAQ9R,KAAK8R,KAEjB,KACE,GAAI6B,GAAIxC,EAAa7M,EAAQ5E,EAAMkR,EAAWC,EAC9CE,GAAYnM,SAAW+O,CACvB,IAAI0B,GAAKtE,EAAYD,YAUrB,OATIuE,KACFA,EAAG/Q,OAASqP,EAAErP,OACd+Q,EAAGnE,OAAS,KACZmE,EAAGpC,KAAOU,EAAEV,KACZoC,EAAGhD,OAASsB,EAAEtB,OACdgD,EAAG3V,KAAOiU,EAAEjU,KACZ2V,EAAG9D,OAASoC,EAAEpC,OACV2B,IAAgBmC,EAAG7D,WAAamC,EAAEnC,aAEjCmC,EACP,QACA2B,EAAa/U,KAAKP,KAAMsE,EAAQ5E,EAAMmR,IA6O1C,QAASoE,GAAe3Q,EAAQ5E,EAAMmR,GAEpC,GAAIsD,GAAQoB,EAAUhV,KAAKP,KAAMsE,EAAQ5E,EAAMmR,EAC/C,OAAIsD,IAAS,GAAYA,MAAOA,EAAOgB,WAAW,IAClDhB,EAAQnU,KAAKkV,cAAchT,OAC3BlC,KAAKkV,cAAcf,IACjB7P,OAAQA,EACR5E,KAAMA,EACNmR,OAAQA,IAEDsD,MAAOA,EAAOgB,WAAW,IAWpC,QAASG,GAAahR,EAAQ5E,EAAMmR,GAElC,GAAI9L,GAAIwQ,EAAUhV,KAAKP,KAAMsE,EAAQ5E,EAAMmR,EACvC9L,IAAK,GAAG/E,KAAKkV,cAAcM,OAAOzQ,EAAG,GAY3C,QAASwQ,GAAUjR,EAAQ5E,EAAMmR,GAE/B,IAAK,GAAI9L,GAAE,EAAGA,EAAE/E,KAAKkV,cAAchT,OAAQ6C,IAAK,CAC9C,GAAItE,GAAIT,KAAKkV,cAAcnQ,EAC3B,IAAItE,EAAE6D,QAAUA,GAAU7D,EAAEf,MAAQA,GAAQe,EAAEoQ,QAAUA,EAAQ,MAAO9L,GAEzE,OAAQ,EAIV,QAASyN,GAAYzN,EAAGwN,GACtB,MAAO,cAAgBxN,EAAI,iBAAmB9D,EAAKoT,eAAe9B,EAASxN,IAAM,KAInF,QAAS2N,GAAY3N,GACnB,MAAO,cAAgBA,EAAI,eAAiBA,EAAI,KAIlD,QAASuN,GAAWvN,EAAGsN,GACrB,MAAOA,GAAOtN,GAAK,aAAeA,EAAI,aAAeA,EAAI,KAAO,GAIlE,QAAS6N,GAAe7N,GACtB,MAAO,iBAAmBA,EAAI,kBAAoBA,EAAI,KAIxD,QAASqN,GAAKqD,EAAKC,GACjB,IAAKD,EAAIvT,OAAQ,MAAO,EAExB,KAAK,GADD4D,GAAO,GACFf,EAAE,EAAGA,EAAE0Q,EAAIvT,OAAQ6C,IAC1Be,GAAQ4P,EAAU3Q,EAAG0Q,EACvB,OAAO3P,GAlYT,GAKI4K,GALAqB,EAAU5M,EAAQ,aAClBlE,EAAOkE,EAAQ,UACfoP,EAAkBpP,EAAQ,yBAC1BkB,EAAQlB,EAAQ,YAYhBsM,EAAoBtM,EAAQ,qBAM5B2N,EAAK3N,EAAQ,MACb4N,EAAa9R,EAAK8R,WAClB1G,EAAQlH,EAAQ,WAGhB6N,EAAkB7N,EAAQ,qBAE9BtF,GAAOD,QAAU+E,IAyWdgR,WAAW,EAAExJ,oBAAoB,GAAGyJ,UAAU,EAAEC,YAAY,EAAEtF,SAAS,GAAGuF,qBAAqB,GAAGhD,GAAK,GAAGiD,wBAAwB,KAAKC,GAAG,SAAS7Q,EAAQtF,EAAOD,GACrK,YAwBA,SAASmS,GAAQpN,EAASjF,EAAM4I,GAE9B,GAAI+J,GAASrS,KAAKqI,MAAMC,EACxB,IAAqB,gBAAV+J,GAAoB,CAC7B,IAAIrS,KAAKqI,MAAMgK,GACV,MAAON,GAAQxR,KAAKP,KAAM2E,EAASjF,EAAM2S,EADtBA,GAASrS,KAAKqI,MAAMgK,GAK9C,IADAA,EAASA,GAAUrS,KAAKuI,SAASD,aACX2N,GACpB,MAAOpC,GAAUxB,EAAO/N,OAAQtE,KAAK2G,MAAMmN,YACjCzB,EAAO/N,OACP+N,EAAOzN,UAAY5E,KAAKkW,SAAS7D,EAG7C,IACI/N,GAAQqP,EAAG9C,EADXlB,EAAMwG,EAAc5V,KAAKP,KAAMN,EAAM4I,EAgBzC,OAdIqH,KACFrL,EAASqL,EAAIrL,OACb5E,EAAOiQ,EAAIjQ,KACXmR,EAASlB,EAAIkB,QAGXvM,YAAkB2R,GACpBtC,EAAIrP,EAAOM,UAAYD,EAAQpE,KAAKP,KAAMsE,EAAOA,OAAQ5E,MAAMkQ,GAAWiB,GACjEvM,IACTqP,EAAIE,EAAUvP,EAAQtE,KAAK2G,MAAMmN,YAC3BxP,EACAK,EAAQpE,KAAKP,KAAMsE,EAAQ5E,MAAMkQ,GAAWiB,IAG7C8C,EAWT,QAASwC,GAAczW,EAAM4I,GAE3B,GAAI5H,GAAI0S,EAAIlQ,MAAMoF,GAAK,GAAO,GAC1B8N,EAAUC,EAAa3V,GACvBmQ,EAASyF,EAAY5W,EAAK4E,OAAOjE,GACrC,IAAI+V,IAAYvF,EAAQ,CACtB,GAAIxQ,GAAKkW,EAAYH,GACjB/D,EAASrS,KAAKqI,MAAMhI,EACxB,IAAqB,gBAAVgS,GACT,MAAOmE,GAAiBjW,KAAKP,KAAMN,EAAM2S,EAAQ3R,EAC5C,IAAI2R,YAAkB4D,GACtB5D,EAAOzN,UAAU5E,KAAKkW,SAAS7D,GACpC3S,EAAO2S,MACF,CAEL,MADAA,EAASrS,KAAKuI,SAASlI,aACD4V,IAMpB,MAJA,IADK5D,EAAOzN,UAAU5E,KAAKkW,SAAS7D,GAChChS,GAAMkW,EAAYjO,GACpB,OAAShE,OAAQ+N,EAAQ3S,KAAMA,EAAMmR,OAAQA,EAC/CnR,GAAO2S,EAKX,IAAK3S,EAAK4E,OAAQ,MAClBuM,GAASyF,EAAY5W,EAAK4E,OAAOjE,IAEnC,MAAOoW,GAAelW,KAAKP,KAAMU,EAAGmQ,EAAQnR,EAAK4E,OAAQ5E,GAK3D,QAAS8W,GAAiB9W,EAAM4I,EAAKoO,GAEnC,GAAI/G,GAAMwG,EAAc5V,KAAKP,KAAMN,EAAM4I,EACzC,IAAIqH,EAAK,CACP,GAAIrL,GAASqL,EAAIrL,OACbuM,EAASlB,EAAIkB,MAGjB,OAFAnR,GAAOiQ,EAAIjQ,KACP4E,EAAOjE,KAAIwQ,EAAS8F,EAAW9F,EAAQvM,EAAOjE,KAC3CoW,EAAelW,KAAKP,KAAM0W,EAAW7F,EAAQvM,EAAQ5E,IAOhE,QAAS+W,GAAeC,EAAW7F,EAAQvM,EAAQ5E,GAGjD,GADAgX,EAAUE,KAAOF,EAAUE,MAAQ,GACF,MAA7BF,EAAUE,KAAKC,MAAM,EAAE,GAA3B,CAGA,IAAK,GAFDC,GAAQJ,EAAUE,KAAKnI,MAAM,KAExB1J,EAAI,EAAGA,EAAI+R,EAAM5U,OAAQ6C,IAAK,CACrC,GAAIgS,GAAOD,EAAM/R,EACjB,IAAIgS,EAAM,CAGR,GAFAA,EAAO9V,EAAK+V,iBAAiBD,KAC7BzS,EAASA,EAAOyS,IACH,KAEb,IADIzS,EAAOjE,KAAO4W,EAAqBF,KAAOlG,EAAS8F,EAAW9F,EAAQvM,EAAOjE,KAC7EiE,EAAOsF,KAAM,CACf,GAAIA,GAAO+M,EAAW9F,EAAQvM,EAAOsF,MACjC+F,EAAMwG,EAAc5V,KAAKP,KAAMN,EAAMkK,EACrC+F,KACFrL,EAASqL,EAAIrL,OACb5E,EAAOiQ,EAAIjQ,KACXmR,EAASlB,EAAIkB,UAKrB,MAAIvM,IAAUA,GAAU5E,EAAK4E,QAClBA,OAAQA,EAAQ5E,KAAMA,EAAMmR,OAAQA,OAD/C,IAcF,QAASgD,GAAUvP,EAAQ4S,GACzB,OAAc,IAAVA,QACUtH,KAAVsH,IAAiC,IAAVA,EAAuBC,EAAW7S,GACpD4S,EAAcE,EAAU9S,IAAW4S,MAAvC,IAIP,QAASC,GAAW7S,GAClB,GAAI+S,EACJ,IAAI7K,MAAMvH,QAAQX,IAChB,IAAK,GAAIS,GAAE,EAAGA,EAAET,EAAOpC,OAAQ6C,IAE7B,GAAmB,iBADnBsS,EAAO/S,EAAOS,MACkBoS,EAAWE,GAAO,OAAO,MAG3D,KAAK,GAAI7N,KAAOlF,GAAQ,CACtB,GAAW,QAAPkF,EAAe,OAAO,CAE1B,IAAmB,iBADnB6N,EAAO/S,EAAOkF,MACkB2N,EAAWE,GAAO,OAAO,EAG7D,OAAO,EAIT,QAASD,GAAU9S,GACjB,GAAe+S,GAAXC,EAAQ,CACZ,IAAI9K,MAAMvH,QAAQX,IAChB,IAAK,GAAIS,GAAE,EAAGA,EAAET,EAAOpC,OAAQ6C,IAG7B,GAFAsS,EAAO/S,EAAOS,GACK,gBAARsS,KAAkBC,GAASF,EAAUC,IAC5CC,GAASC,EAAAA,EAAU,MAAOA,GAAAA,MAGhC,KAAK,GAAI/N,KAAOlF,GAAQ,CACtB,GAAW,QAAPkF,EAAe,MAAO+N,GAAAA,CAC1B,IAAIC,EAAehO,GACjB8N,QAIA,IAFAD,EAAO/S,EAAOkF,GACK,gBAAR6N,KAAkBC,GAASF,EAAUC,GAAQ,GACpDC,GAASC,EAAAA,EAAU,MAAOA,GAAAA,EAIpC,MAAOD,GAIT,QAAShB,GAAYjW,EAAIoX,GAGvB,OAFkB,IAAdA,IAAqBpX,EAAKkW,EAAYlW,IAEnCgW,EADCjD,EAAIlQ,MAAM7C,GAAI,GAAO,IAK/B,QAASgW,GAAa3V,GACpB,GAAIgX,GAAoBhX,EAAEiX,UAAiC,MAArBjX,EAAEkX,KAAKf,MAAM,EAAE,GAAa,KAAO,EACzE,QAAQnW,EAAEiX,UAAU,IAAMD,GAAqBhX,EAAEmX,MAAM,KAAOnX,EAAEoX,MAAM,IAAO,IAK/E,QAASvB,GAAYlW,GACnB,MAAOA,GAAKA,EAAG0X,QAAQC,EAAqB,IAAM,GAIpD,QAASrB,GAAW9F,EAAQxQ,GAE1B,MADAA,GAAKkW,EAAYlW,GACV+S,EAAIrB,QAAQlB,EAAQxQ,GAK7B,QAAS4X,GAAW3T,GASlB,QAAS4T,GAAY5T,EAAQ6T,EAAUtH,GAErC,GAAIrE,MAAMvH,QAAQX,GAChB,IAAK,GAAIS,GAAE,EAAGA,EAAET,EAAOpC,OAAQ6C,IAC7BmT,EAAY3X,KAAKP,KAAMsE,EAAOS,GAAIoT,EAAS,IAAIpT,EAAG8L,OAC/C,IAAIvM,GAA2B,gBAAVA,GAAoB,CAC9C,GAAwB,gBAAbA,GAAOjE,GAAgB,CAChC,GAAIA,GAAKwQ,EAASA,EACEuC,EAAIrB,QAAQlB,EAAQvM,EAAOjE,IAC3BiE,EAAOjE,EAC3BA,GAAKkW,EAAYlW,EAEjB,IAAIgS,GAASrS,KAAKqI,MAAMhI,EAExB,IADqB,gBAAVgS,KAAoBA,EAASrS,KAAKqI,MAAMgK,IAC/CA,GAAUA,EAAO/N,QACnB,IAAK+H,EAAM/H,EAAQ+N,EAAO/N,QACxB,KAAM,IAAIvD,OAAM,OAASV,EAAK,0CAC3B,IAAIA,GAAMkW,EAAY4B,GAC3B,GAAa,KAAT9X,EAAG,GAAW,CAChB,GAAIuQ,EAAUvQ,KAAQgM,EAAM/H,EAAQsM,EAAUvQ,IAC5C,KAAM,IAAIU,OAAM,OAASV,EAAK,qCAChCuQ,GAAUvQ,GAAMiE,MAEhBtE,MAAKqI,MAAMhI,GAAM8X,EAIvB,IAAK,GAAI3O,KAAOlF,GACd4T,EAAY3X,KAAKP,KAAMsE,EAAOkF,GAAM2O,EAAS,IAAIlX,EAAKmX,eAAe5O,GAAMqH,IAlCjF,GAAIxQ,GAAKkW,EAAYjS,EAAOjE,IACxBuQ,IAEJ,OADAsH,GAAY3X,KAAKP,KAAMsE,EAAQgS,EAAYjW,GAAI,GAAQA,GAChDuQ,EAtOT,GAAIwC,GAAMjO,EAAQ,OACdkH,EAAQlH,EAAQ,WAChBlE,EAAOkE,EAAQ,UACf8Q,EAAe9Q,EAAQ,eAE3BtF,GAAOD,QAAUmS,EAEjBA,EAAQwE,YAAcA,EACtBxE,EAAQoG,SAAW7B,EACnBvE,EAAQqB,IAAMuD,EACd5E,EAAQsG,IAAMJ,EACdlG,EAAQ8B,UAAYA,EACpB9B,EAAQzN,OAAS6R,CAiGjB,IAAIc,GAAuBhW,EAAKqX,QAAQ,aAAc,oBAAqB,OAAQ,eAAgB,gBA+B/Fd,EAAiBvW,EAAKqX,QACxB,OAAQ,SAAU,UAClB,YAAa,YACb,gBAAiB,gBACjB,WAAY,WACZ,UAAW,UACX,cAAe,aACf,WAAY,SAgEVN,EAAsB,UAuDvBpC,UAAU,EAAE2C,eAAe,EAAEhI,SAAS,GAAG6C,IAAM,KAAKoF,GAAG,SAASrT,EAAQtF,EAAOD,GAClF,YAEA,IAAI6Y,GAActT,EAAQ,YACtBmT,EAASnT,EAAQ,UAAUmT,MAE/BzY,GAAOD,QAAU,WACf,GAAIkS,KACA4G,KAAM,SACNC,OAAS,UAAW,UAAW,gBAC/BD,KAAM,SACNC,OAAS,YAAa,YAAa,UAAW,YAC9CD,KAAM,QACNC,OAAS,WAAY,WAAY,cAAe,WAChDD,KAAM,SACNC,OAAS,gBAAiB,gBAAiB,WAAY,eAAgB,gBACvEA,OAAS,OAAQ,OAAQ,MAAO,QAAS,QAAS,WAGlDC,GAAQ,OAAQ,uBAAwB,qBACxCC,GAAa,kBAAmB,UAAW,KAAM,QAAS,cAAe,WACzEC,GAAU,SAAU,UAAW,SAAU,QAAS,SAAU,UAAW,OAkB3E,OAjBAhH,GAAMiH,IAAMT,EAAOM,GAEnB9G,EAAMhQ,QAAQ,SAAUkX,GACtBA,EAAML,MAAQK,EAAML,MAAMM,IAAI,SAAUjE,GAMtC,MALA4D,GAAIM,KAAKlE,GACElD,EAAMiH,IAAI/D,IACnBA,QAASA,EACTlP,KAAM2S,EAAYzD,QAMxBlD,EAAMqH,SAAWb,EAAOM,EAAIQ,OAAOP,IACnC/G,EAAMuH,MAAQf,EAAOQ,GACrBhH,EAAMwH,UAECxH,KAGNyH,WAAW,EAAEhJ,SAAS,KAAKiJ,GAAG,SAASrU,EAAQtF,EAAOD,GACzD,YAMA,SAASqW,GAAawD,GACpBxY,EAAK2F,KAAK6S,EAAKzZ,MALjB,GAAIiB,GAAOkE,EAAQ,SAEnBtF,GAAOD,QAAUqW,IAMd1F,SAAS,KAAKmJ,IAAI,SAASvU,EAAQtF,EAAOD,GAC7C,YAIAC,GAAOD,QAAU,SAAoB6N,GAKnC,IAJA,GAGIhE,GAHAvH,EAAS,EACTyX,EAAMlM,EAAIvL,OACV0X,EAAM,EAEHA,EAAMD,GACXzX,KACAuH,EAAQgE,EAAIoM,WAAWD,OACV,OAAUnQ,GAAS,OAAUmQ,EAAMD,GAGtB,QAAX,OADblQ,EAAQgE,EAAIoM,WAAWD,MACSA,GAGpC,OAAO1X,SAGH4X,IAAI,SAAS3U,EAAQtF,EAAOD,GAClC,YA6BA,SAASgH,GAAKjB,EAAGoU,GACfA,EAAKA,KACL,KAAK,GAAIvQ,KAAO7D,GAAGoU,EAAGvQ,GAAO7D,EAAE6D,EAC/B,OAAOuQ,GAIT,QAASC,GAAcC,EAAUxW,EAAMyW,GACrC,GAAIC,GAAQD,EAAS,QAAU,QAC3BE,EAAMF,EAAS,OAAS,OACxBG,EAAKH,EAAS,IAAM,GACpBI,EAAMJ,EAAS,GAAK,GACxB,QAAQD,GACN,IAAK,OAAQ,MAAOxW,GAAO0W,EAAQ,MACnC,KAAK,QAAS,MAAOE,GAAK,iBAAmB5W,EAAO,GACpD,KAAK,SAAU,MAAO,IAAM4W,EAAK5W,EAAO2W,EAClB,UAAY3W,EAAO0W,EAAQ,WAAaC,EACxCE,EAAM,iBAAmB7W,EAAO,IACtD,KAAK,UAAW,MAAO,WAAaA,EAAO0W,EAAQ,WAAaC,EACzCE,EAAM,IAAM7W,EAAO,QACnB2W,EAAM3W,EAAO0W,EAAQ1W,EAAO,GACnD,SAAS,MAAO,UAAYA,EAAO0W,EAAQ,IAAMF,EAAW,KAKhE,QAASM,GAAeC,EAAW/W,GACjC,OAAQ+W,EAAUtY,QAChB,IAAK,GAAG,MAAO8X,GAAcQ,EAAU,GAAI/W,GAAM,EACjD,SACE,GAAIqC,GAAO,GACPuT,EAAQf,EAAOkC,EACfnB,GAAMoB,OAASpB,EAAMqB,SACvB5U,EAAOuT,EAAMsB,KAAO,IAAK,KAAOlX,EAAO,OACvCqC,GAAQ,UAAYrC,EAAO,uBACpB4V,GAAMsB,WACNtB,GAAMoB,YACNpB,GAAMqB,QAEXrB,EAAMuB,cAAevB,GAAMwB,OAC/B,KAAK,GAAItV,KAAK8T,GACZvT,IAASA,EAAO,OAAS,IAAOkU,EAAczU,EAAG9B,GAAM,EAEzD,OAAOqC,IAMb,QAASgV,GAAcC,EAAmBP,GACxC,GAAIhO,MAAMvH,QAAQuV,GAAY,CAE5B,IAAK,GADDnB,MACKtU,EAAE,EAAGA,EAAEyV,EAAUtY,OAAQ6C,IAAK,CACrC,GAAIQ,GAAIiV,EAAUzV,EACdiW,GAAgBzV,GAAI8T,EAAMA,EAAMnX,QAAUqD,EACf,UAAtBwV,GAAuC,UAANxV,IAAe8T,EAAMA,EAAMnX,QAAUqD,GAEjF,GAAI8T,EAAMnX,OAAQ,MAAOmX,OACpB,CAAA,GAAI2B,EAAgBR,GACzB,OAAQA,EACH,IAA0B,UAAtBO,GAA+C,UAAdP,EAC1C,OAAQ,UAKZ,QAASlC,GAAO7C,GAEd,IAAK,GADDmB,MACK7R,EAAE,EAAGA,EAAE0Q,EAAIvT,OAAQ6C,IAAK6R,EAAKnB,EAAI1Q,KAAM,CAChD,OAAO6R,GAMT,QAASqE,GAAYzR,GACnB,MAAqB,gBAAPA,GACJ,IAAMA,EAAM,IACZ0R,EAAWrM,KAAKrF,GACd,IAAMA,EACN,KAAO2R,EAAa3R,GAAO,KAIzC,QAAS2R,GAAa1N,GACpB,MAAOA,GAAIsK,QAAQqD,EAAc,QACtBrD,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OAI5B,QAASsD,GAAc5N,EAAK6N,GAC1BA,GAAW,QACX,IAAI5N,GAAUD,EAAIE,MAAM,GAAIZ,QAAOuO,EAAS,KAC5C,OAAO5N,GAAUA,EAAQxL,OAAS,EAIpC,QAASqZ,GAAW9N,EAAK6N,EAASE,GAGhC,MAFAF,IAAW,WACXE,EAAOA,EAAKzD,QAAQ,MAAO,QACpBtK,EAAIsK,QAAQ,GAAIhL,QAAOuO,EAAS,KAAME,EAAO,MAOtD,QAASC,GAAYC,GACnB,MAAOA,GAAI3D,QAAQ4D,EAAY,IACpB5D,QAAQ6D,EAAkB,IAC1B7D,QAAQ8D,EAAoB,cAYzC,QAASC,GAAiBJ,EAAKrV,GAC7B,GAAIqH,GAAUgO,EAAI/N,MAAMoO,EACxB,OAAKrO,IAA8B,IAAnBA,EAAQxL,OACjBmE,EACGqV,EAAI3D,QAAQiE,EAAqB,IAC7BjE,QAAQkE,EAAcC,GAC1BR,EAAI3D,QAAQoE,EAAe,IACvBpE,QAAQqE,EAAcC,GALSX,EAS/C,QAASY,GAAehY,EAAQqU,GAC9B,IAAK,GAAInP,KAAOlF,GAAQ,GAAIqU,EAAMnP,GAAM,OAAO,EAIjD,QAAS+S,GAAqBjY,EAAQqU,EAAO6D,GAC3C,IAAK,GAAIhT,KAAOlF,GAAQ,GAAIkF,GAAOgT,GAAiB7D,EAAMnP,GAAM,OAAO,EAIzE,QAAS6K,GAAe5G,GACtB,MAAO,IAAO0N,EAAa1N,GAAO,IAIpC,QAASgP,GAAYC,EAAalB,EAAMmB,EAAcC,GAIpD,MAAOC,GAAUH,EAHNC,EACG,SAAanB,GAAQoB,EAAW,GAAK,8CACpCA,EAAW,SAAapB,EAAO,SAAa,YAAiBA,EAAO,aAKrF,QAASsB,GAAQJ,EAAa1X,EAAM2X,GAIlC,MAAOE,GAAUH,EAFHrI,EADHsI,EACkB,IAAMI,EAAkB/X,GACxBiW,EAAYjW,KAO3C,QAASgY,GAAQC,EAAOC,EAAKC,GAC3B,GAAIC,GAAIC,EAAa5Z,EAAMiK,CAC3B,IAAc,KAAVuP,EAAc,MAAO,UACzB,IAAgB,KAAZA,EAAM,GAAW,CACnB,IAAKnN,EAAajB,KAAKoO,GAAQ,KAAM,IAAIlc,OAAM,yBAA2Bkc,EAC1EI,GAAcJ,EACdxZ,EAAO,eACF,CAEL,KADAiK,EAAUuP,EAAMtP,MAAM2P,IACR,KAAM,IAAIvc,OAAM,yBAA2Bkc,EAGzD,IAFAG,GAAM1P,EAAQ,GAEK,MADnB2P,EAAc3P,EAAQ,IACE,CACtB,GAAI0P,GAAMF,EAAK,KAAM,IAAInc,OAAM,gCAAkCqc,EAAK,gCAAkCF,EACxG,OAAOC,GAAMD,EAAME,GAGrB,GAAIA,EAAKF,EAAK,KAAM,IAAInc,OAAM,sBAAwBqc,EAAK,gCAAkCF,EAE7F,IADAzZ,EAAO,QAAWyZ,EAAME,GAAO,KAC1BC,EAAa,MAAO5Z,GAK3B,IAAK,GAFD+X,GAAO/X,EACP8Z,EAAWF,EAAY5O,MAAM,KACxB1J,EAAE,EAAGA,EAAEwY,EAASrb,OAAQ6C,IAAK,CACpC,GAAIyY,GAAUD,EAASxY,EACnByY,KACF/Z,GAAQwX,EAAYwC,EAAoBD,IACxChC,GAAQ,OAAS/X,GAGrB,MAAO+X,GAIT,QAASqB,GAAWhX,EAAGyG,GACrB,MAAS,MAALzG,EAAkByG,GACdzG,EAAI,MAAQyG,GAAGyL,QAAQ,UAAW,IAI5C,QAASf,GAAiBvJ,GACxB,MAAOgQ,GAAoBC,mBAAmBjQ,IAIhD,QAAS2K,GAAe3K,GACtB,MAAOkQ,oBAAmBZ,EAAkBtP,IAI9C,QAASsP,GAAkBtP,GACzB,MAAOA,GAAIsK,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAIhD,QAAS0F,GAAoBhQ,GAC3B,MAAOA,GAAIsK,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KA5PhDlY,EAAOD,SACLgH,KAAMA,EACNoT,cAAeA,EACfO,eAAgBA,EAChBO,cAAeA,EACfxC,OAAQA,EACR2C,YAAaA,EACbE,aAAcA,EACdpI,WAAY5N,EAAQ,gBACpBkW,cAAeA,EACfE,WAAYA,EACZE,YAAaA,EACbK,iBAAkBA,EAClBQ,eAAgBA,EAChBC,qBAAsBA,EACtBhI,gBAAiBpP,EAAQ,yBACzBkP,eAAgBA,EAChBoI,YAAaA,EACbK,QAASA,EACTE,QAASA,EACThG,iBAAkBA,EAClBoB,eAAgBA,EAChB2E,kBAAmBA,EAoDrB,IAAI/B,GAAkB1C,GAAS,SAAU,SAAU,UAAW,UAAW,SAyBrE4C,EAAa,wBACbE,EAAe,QAiCfO,EAAa,gBACbC,EAAmB,uCACnBC,EAAqB,8CAQrBE,EAAgB,gBAChBI,EAAgB,kEAChBH,EAAsB,uCACtBI,EAAe,uBACfC,EAAc,uCACdJ,EAAe,gFACfC,EAAoB,eA4CpBpM,EAAe,sBACfwN,EAAwB,qCA6DzBM,eAAe,GAAG7H,wBAAwB,KAAK8H,IAAI,SAAS1Y,EAAQtF,EAAOD,GAC9E,YAKA,SAASoT,GAAgB9B,GACvBlR,KAAK6U,QAAU,oBACf7U,KAAKkR,OAASA,EACdlR,KAAKuE,IAAMvE,KAAK8d,YAAa,EAN/Bje,EAAOD,QAAUoT,EAUjBA,EAAgBvQ,UAAYb,OAAOoC,OAAOjD,MAAM0B,WAChDuQ,EAAgBvQ,UAAUsb,YAAc/K,OAElCgL,IAAI,SAAS7Y,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA+B+U,EAAIsJ,GAClD,GAOIC,GAPAxC,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UAEzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,CAEvB,IADAzC,GAAO,OAAS,EAAW,iBACJ,IAAnB/G,EAAGzO,KAAK+D,OAEV,MADAyR,IAAO,IAAM,EAAW,WAG1B,IAAIkD,GAAgBjK,EAAGrQ,OAAO2F,OAC5B4U,EAAgBlK,EAAGzO,KAAK4Y,IAAMF,EAAc3B,MAC5C8B,EAAiB,EACnB,IAAIF,EAAe,CACjB,GAAIG,GAAqBrK,EAAG1T,KAAK+b,QAAQ4B,EAAc3B,MAAOoB,EAAU1J,EAAGsK,aACzEC,EAAU,SAAWf,EACrBgB,EAAW,UAAYhB,CACzBzC,IAAO,QAAU,EAAY,cAAgB,EAAuB,OAAS,EAAa,MAAQ,EAAY,OAAS,EAAY,gBAC9H,CACL,GAAIwD,GAAUvK,EAAGvH,QAAQwR,EACzB,KAAMM,IAAWA,EAAQ3R,QAEvB,MADAmO,IAAO,KAAO,EAAW,WAG3B,IAAIyD,GAAW,UAAYxK,EAAG1T,KAAKga,YAAY2D,GAAiB,WAElE,GAOEQ,GAPEC,EAAqB,iBAAZpB,EACXqB,EAAoB,mBAAqBD,EAAS,UAAY,WAC9DE,EAAc5K,EAAGrQ,OAAOgb,GACxBE,EAAc7K,EAAGzO,KAAK4Y,IAAMS,GAAeA,EAAYtC,MACvDwC,EAAMJ,EAAS,IAAM,IACrBK,EAAU,SAAWvB,EACnBwB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAQ/C,IANI0C,GACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,EAEbiB,EAAa,CACf,GAAII,GAAmBjL,EAAG1T,KAAK+b,QAAQuC,EAAYtC,MAAOoB,EAAU1J,EAAGsK,aACrEY,EAAa,YAAc1B,EAC3B2B,EAAU,KAAO3B,EACjB4B,EAAS,OAAUD,EAAU,MAC/BpE,IAAO,kBAAoB,EAAS,MAAQ,EAAqB,KACjEkE,EAAmB,aAAezB,EAClCzC,GAAO,eAAiB,EAAqB,oBAAwB,EAAqB,qBAAuB,EAAW,YAC5H,IAAIwC,GAAgBoB,EAChBU,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,yBAA2B,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACvK,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBAAmB,EAAsB,wBAE9C/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,OACHgD,IACFK,GAAkB,IAClBrD,GAAO,YAELiE,IACFjE,GAAO,QAAU,EAAiB,mBAAqB,EAAW,4BAA8B,EAAiB,iBAAqB,EAAW,oBACjJqD,GAAkB,KAEhBF,IACFnD,GAAO,SAAW,EAAa,KAAO,EAAW,mBACjDqD,GAAkB,KAEpBrD,GAAO,QAAU,EAAY,MAAQ,EAAa,IAAM,EAAU,MAEhEA,GADEiE,EACK,GAAK,EAEL,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,WAAa,EAAY,mBAAqB,EAAW,iBAAmB,EAAe,MAAQ,EAAqB,kBAAoB,EAAW,qBAAuB,EAAW,MAAQ,EAAe,MAAQ,EAAY,IAAM,EAAQ,QAAU,EAAY,IAAM,EAAQ,eAAiB,EAAW,WAAa,EAAS,MAAQ,EAAe,OAAU,EAAQ,QAAY,EAAQ,UACvY,CACL,GAAImE,IAA6B,IAAhBN,EACfQ,EAASN,CACNI,KAAYE,GAAU,IAC3B,IAAID,GAAU,IAAOC,EAAS,GAC1BJ,KACFjE,GAAO,QAAU,EAAiB,mBAAqB,EAAW,4BAA8B,EAAiB,iBAAqB,EAAW,oBACjJqD,GAAkB,KAEhBF,IACFnD,GAAO,SAAW,EAAa,KAAO,EAAW,mBACjDqD,GAAkB,KAEpBrD,GAAO,QAAU,EAAY,MAAQ,EAAa,IAAM,EAAU,MAEhEA,GADEiE,EACK,GAAK,EAEL,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,WAAa,EAAY,mBAAqB,EAAW,iBAAmB,EAAW,mBAAqB,EAAW,MAAQ,EAAY,IAAM,EACnJmE,IACHnE,GAAO,KAETA,GAAO,MAETA,GAAY,EAAmB,QAAU,EAAW,MACpD,IAAIwC,GAAgBD,EAChB+B,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,gBAAkB,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,4BAA8B,EAAY,aAE/N/C,GADEiE,EACK,GAAK,EAEL,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,iBAAmB,EAAe,OAChB,IAArB/G,EAAGzO,KAAKga,WACVxE,GAAO,0BAA6B,EAAW,KAE7CA,GADEiE,EACK,OAAU,EAAiB,OAE3B,GAAMhL,EAAG1T,KAAKka,aAAaoD,GAEpC7C,GAAO,QAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAYZ,OAXAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,UAIH4E,IAAI,SAASnb,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAyB+U,EAAIsJ,GAC5C,GAOIC,GAGFkB,EAVE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UAEzByY,EAAQ,QAAUoB,GAAY,IAC9BsB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAAIc,GAAqB,WAAZpB,EACXqB,EAAoBD,EAAS,mBAAqB,mBAClDE,EAAc5K,EAAGrQ,OAAOgb,GACxBE,EAAc7K,EAAGzO,KAAK4Y,IAAMS,GAAeA,EAAYtC,MACvDwC,EAAMJ,EAAS,IAAM,IACrBkB,EAASlB,EAAS,IAAM,GAC1B,IAAIG,EAAa,CACf,GAAII,GAAmBjL,EAAG1T,KAAK+b,QAAQuC,EAAYtC,MAAOoB,EAAU1J,EAAGsK,aACrEY,EAAa,YAAc1B,EAC3B2B,EAAU,KAAO3B,EACjB4B,EAAS,OAAUD,EAAU,MAC/BpE,IAAO,kBAAoB,EAAS,MAAQ,EAAqB,KACjEkE,EAAmB,aAAezB,EAClCzC,GAAO,iBAAmB,EAAS,gBAAkB,EAAqB,2BAA+B,EAAqB,qBAC9H,IAAIwC,GAAgBoB,EAChBU,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,mBAAqB,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACjK,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBAAmB,EAAsB,wBAE9C/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,eACHiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,eAAiB,EAAS,MAAQ,EAAqB,gBAAkB,EAAU,IAAM,EAAW,KAAO,EAAiB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,QAAU,EAAU,QAAU,EAAU,aAAe,EAAS,eAAiB,EAAS,OAAU,EAAQ,QAAY,EAAQ,UACxT,CACL,GAAImE,IAA6B,IAAhBN,EACfQ,EAASN,CACNI,KAAYE,GAAU,IAC3B,IAAID,GAAU,IAAOC,EAAS,GAC9BrE,IAAO,SACHiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,IAAM,EAAU,IAAM,EACzBmE,IACFnE,GAAO,KAETA,GAAO,IAAM,EAAiB,OAAS,EAAU,QAAU,EAAU,MAEvE,GAAIwC,GAAgBD,EAChB+B,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,UAAY,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,4BAA8B,EAAY,YAAc,EAAiB,gBAAkB,EAAe,OAClQ,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,0BAA6B,EAAW,IAE7CA,GADEiE,EACK,OAAU,EAEL,EAAY,KAGxBhL,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAK,EAEdjE,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,MACHgD,IACFhD,GAAO,YAEFA,QAGH8E,IAAI,SAASrb,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA8B+U,EAAIsJ,GACjD,GAOIC,GAGFkB,EAVE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UAEzByY,EAAQ,QAAUoB,GAAY,IAC9BsB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAAIkB,GAAkB,YAAZxB,EAAyB,IAAM,GACzCvC,IAAO,QACHiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,IAAM,EAAU,WAAa,EAAQ,IAAM,EAAiB,MACnE,IAAIwC,GAAgBD,EAChB+B,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,eAAiB,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAAyB,EAAiB,OACvM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gCAELA,GADc,YAAZuC,EACK,OAEA,OAETvC,GAAO,SAELA,GADEiE,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEdjE,GAAO,YAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAK,EAEdjE,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KACHgD,IACFhD,GAAO,YAEFA,QAGH+E,IAAI,SAAStb,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA+B+U,EAAIsJ,GAClD,GAOIC,GAGFkB,EAVE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UAEzByY,EAAQ,QAAUoB,GAAY,IAC9BsB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAAIkB,GAAkB,aAAZxB,EAA0B,IAAM,GAC1CvC,IAAO,QACHiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,sBAExD,IAApB/G,EAAGzO,KAAKwa,QACVhF,GAAO,IAAM,EAAU,WAEvBA,GAAO,eAAiB,EAAU,KAEpCA,GAAO,IAAM,EAAQ,IAAM,EAAiB,MAC5C,IAAIwC,GAAgBD,EAChB+B,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,gBAAkB,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAAyB,EAAiB,OACxM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,8BAELA,GADc,aAAZuC,EACK,SAEA,UAETvC,GAAO,SAELA,GADEiE,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEdjE,GAAO,iBAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAK,EAEdjE,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KACHgD,IACFhD,GAAO,YAEFA,QAGHiF,IAAI,SAASxb,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAmC+U,EAAIsJ,GACtD,GAOIC,GAGFkB,EAVE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UAEzByY,EAAQ,QAAUoB,GAAY,IAC9BsB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAAIkB,GAAkB,iBAAZxB,EAA8B,IAAM,GAC9CvC,IAAO,QACHiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,gBAAkB,EAAU,YAAc,EAAQ,IAAM,EAAiB,MAChF,IAAIwC,GAAgBD,EAChB+B,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,oBAAsB,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAAyB,EAAiB,OAC5M,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gCAELA,GADc,iBAAZuC,EACK,OAEA,OAETvC,GAAO,SAELA,GADEiE,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEdjE,GAAO,iBAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAK,EAEdjE,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KACHgD,IACFhD,GAAO,YAEFA,QAGHkF,IAAI,SAASzb,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAwB+U,EAAIsJ,GAC3C,GAAIvC,GAAM,IACN6C,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzBqc,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,MAC3B2C,EAAiBF,EAAIhQ,OACvBmQ,GAAmB,EACjBC,EAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAIC,GAAMC,GAAM,EACdC,EAAKH,EAAK/e,OAAS,EACdif,EAAKC,GACVF,EAAOD,EAAKE,GAAM,GACdxM,EAAG1T,KAAKqb,eAAe4E,EAAMvM,EAAG7C,MAAMiH,OACxCiI,GAAmB,EACnBH,EAAIvc,OAAS4c,EACbL,EAAIlP,WAAa6M,EAAc,IAAM2C,EAAK,IAC1CN,EAAIjP,cAAgB6M,EAAiB,IAAM0C,EAC3CzF,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,EACTrC,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,KAa1B,OARIL,KAEAhD,GADEsF,EACK,gBAEA,IAAOjC,EAAelI,MAAM,GAAI,GAAM,KAGjD6E,EAAM/G,EAAG1T,KAAKwa,YAAYC,SAItB2F,IAAI,SAASlc,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAwB+U,EAAIsJ,GAC3C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBmD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,KAI/B,IAHqBG,EAAQgD,MAAM,SAASL,GAC1C,MAAOvM,GAAG1T,KAAKqb,eAAe4E,EAAMvM,EAAG7C,MAAMiH,OAE3B,CAClB,GAAIgI,GAAiBF,EAAIhQ,MACzB6K,IAAO,QAAU,EAAU,kBAAoB,EAAW,aAC1D,IAAI8F,GAAgB7M,EAAG0L,aACvB1L,GAAG0L,cAAgBQ,EAAIR,eAAgB,CACvC,IAAIY,GAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAIC,GAAMC,GAAM,EACdC,EAAKH,EAAK/e,OAAS,EACdif,EAAKC,GACVF,EAAOD,EAAKE,GAAM,GAClBN,EAAIvc,OAAS4c,EACbL,EAAIlP,WAAa6M,EAAc,IAAM2C,EAAK,IAC1CN,EAAIjP,cAAgB6M,EAAiB,IAAM0C,EAC3CzF,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,EACbrF,GAAO,IAAM,EAAW,MAAQ,EAAW,OAAS,EAAe,UAAY,EAAW,OAC1FqD,GAAkB,GAGtBpK,GAAG0L,cAAgBQ,EAAIR,cAAgBmB,EACvC9F,GAAO,IAAM,EAAmB,SAAW,EAAW,qBAC9B,IAApB/G,EAAGsL,cACLvE,GAAO,sDAAyE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACtI,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,oDAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,kGAAoG,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,4BAChM/G,EAAGzO,KAAK1B,YACVkX,GAAO,OAETA,EAAM/G,EAAG1T,KAAKwa,YAAYC,OAEtBgD,KACFhD,GAAO,gBAGX,OAAOA,SAGH+F,IAAI,SAAStc,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA2B+U,EAAIsJ,GAC9C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBwB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,KACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,MAKlGU,IACHjE,GAAO,cAAgB,EAAS,qBAAuB,EAAgB,KAEzEA,GAAO,OAAS,EAAW,YAAc,EAAU,WAAa,EAAS,WAAa,EAAW,QACjG,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACzI,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,8CAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAYZ,OAXAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,WAIHgG,IAAI,SAASvc,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAyB+U,EAAIsJ,GAC5C,GAOIC,GAKFkB,EAZE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UAEzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBmD,EAAQ,SAAWnD,EACnBwB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAGIoD,GAAUC,EAASC,EAAQC,EAAeC,EAH1CC,EAAQhiB,KACViiB,EAAc,aAAe9D,EAC7B+D,EAAQF,EAAMpN,UAEhB,IAAI+K,GAAWuC,EAAMjF,MAAO,CAC1B8E,EAAgB,kBAAoB5D,CACpC,IAAIgE,GAAkBD,EAAMxd,cAC5BgX,IAAO,QAAU,EAAgB,oBAAuB,EAAa,sBAAyB,EAAkB,MAAQ,EAAgB,iBAExIoG,GAAgBnN,EAAGxC,cAAc6P,EAAOzD,EAAS5J,EAAGrQ,OAAQqQ,GAC5DyK,EAAe,kBAAoBZ,EACnCuD,EAAgBD,EAAchc,KAC9B6b,EAAWO,EAAMvd,QACjBid,EAAUM,EAAMjO,OAChB4N,EAASK,EAAMnN,KAEjB,IAAIqN,GAAYL,EAAgB,UAC9BZ,EAAK,IAAMhD,EACXkE,EAAW,UAAYlE,EACvBmE,EAAgBJ,EAAM7b,KACxB,IAAIic,IAAkB3N,EAAGtO,MAAO,KAAM,IAAItF,OAAM,+BAQhD,IAPM6gB,GAAWC,IACfnG,GAAY,EAAc,YAE5BA,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpDyG,IACFzG,GAAO,IAAM,EAAW,MAAQ,EAAgB,mBAAqB,EAAiB,UAAY,EAAW,OAE3GkG,EACEM,EAAMK,WACR7G,GAAO,IAAOoG,EAAsB,SAAI,IAExCpG,GAAO,IAAM,EAAW,MAASoG,EAAsB,SAAI,SAExD,IAAID,EAAQ,CACjB,GAAIhB,GAAMlM,EAAG1T,KAAK2F,KAAK+N,EACvBkM,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,KAC/ByC,GAAIvc,OAASwd,EAAcld,SAC3Bic,EAAIlP,WAAa,EACjB,IAAI6P,GAAgB7M,EAAG0L,aACvB1L,GAAG0L,cAAgBQ,EAAIR,eAAgB,CACvC,IAAImC,GAAQ7N,EAAG/P,SAASic,GAAK9I,QAAQ,oBAAqBgK,EAC1DpN,GAAG0L,cAAgBQ,EAAIR,cAAgBmB,EACvC9F,GAAO,IAAM,MACR,CACL,GAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,GACNA,GAAO,KAAO,EAAkB,UAC5B/G,EAAGzO,KAAKuc,YACV/G,GAAO,OAEPA,GAAO,OAELiG,IAA6B,IAAjBO,EAAM5d,OACpBoX,GAAO,MAAQ,EAAU,IAEzBA,GAAO,MAAQ,EAAiB,MAAQ,EAAU,qBAAwB/G,EAAa,WAAI,IAE7F+G,GAAO,sBACa,MAAhB/G,EAAG9C,YACL6J,GAAO,MAAS/G,EAAY,UAE9B,IAAI+N,GAAcrE,EAAW,QAAWA,EAAW,GAAM,IAAM,aAC7DsE,EAAsBtE,EAAW1J,EAAGsK,YAAYZ,GAAY,oBAC9D3C,IAAO,MAAQ,EAAgB,MAAQ,EAAwB,iBAC/D,IAAIkH,GAAuBlH,CAC3BA,GAAMsE,EAAWI,OACI,IAAjB8B,EAAMhR,QACRwK,GAAO,IAAM,EAAW,MACpB4G,IACF5G,GAAO,GAAM/G,EAAa,YAE5B+G,GAAY,EAAyB,MAEjC4G,GACFF,EAAY,eAAiBjE,EAC7BzC,GAAO,QAAU,EAAc,kBAAoB,EAAW,MAAS/G,EAAa,WAAI,EAAyB,mBAAqB,EAAW,+CAAiD,EAAc,iCAEhN+G,GAAO,IAAM,EAAc,YAAc,EAAW,MAAQ,EAAyB,KAU3F,GANIwG,EAAMW,YACRnH,GAAO,IAAM,EAAU,MAAQ,EAAgB,IAAM,EAAwB,MAE3EyG,IACFzG,GAAO,MAELwG,EAAMY,MACJpE,IACFhD,GAAO,qBAEJ,CACLA,GAAO,aACa9L,KAAhBsS,EAAMY,OACRpH,GAAO,KAELA,GADEmG,EACK,GAAK,EAEL,GAAK,GAGdnG,GAAO,KAAQwG,EAAMY,MAAS,IAEhCpH,GAAO,OACPwC,EAAgB8D,EAAMhN,OACtB,IAAIgL,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,EACN,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,UAAY,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,0BAA8BuD,EAAa,QAAI,QACvM,IAArBrN,EAAGzO,KAAKga,WACVxE,GAAO,8BAAiCsG,EAAa,QAAI,2BAEvDrN,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,8EAEnC,IAAIqH,GAAkBrH,CACtBA,GAAMsE,EAAWI,MACbwB,EACEM,EAAMhR,OACY,QAAhBgR,EAAMhR,SACRwK,GAAO,cAAgB,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuC/G,EAAY,UAAI,SAAW,EAAa,gCAAkC,EAAa,kBAAoB,EAAmB,QACzWA,EAAGzO,KAAKzB,UACViX,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,QAGY,IAAjBwG,EAAMhR,OACRwK,GAAO,IAAM,EAAoB,KAEjCA,GAAO,QAAU,EAAU,iBAAmB,EAAoB,uBAAyB,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuC/G,EAAY,UAAI,SAAW,EAAa,gCAAkC,EAAa,kBAAoB,EAAmB,QAC7aA,EAAGzO,KAAKzB,UACViX,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,SAGFmG,GACTnG,GAAO,mBACiB,IAApB/G,EAAGsL,cACLvE,GAAO,iBAAoBwC,GAAiB,UAAY,oCAA0CvJ,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,0BAA8BuD,EAAa,QAAI,QACvM,IAArBrN,EAAGzO,KAAKga,WACVxE,GAAO,8BAAiCsG,EAAa,QAAI,2BAEvDrN,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF/G,EAAG0L,eAAiB3B,IACnB/J,EAAGtO,MACLqV,GAAO,wCAEPA,GAAO,gDAIU,IAAjBwG,EAAMhR,OACRwK,GAAO,IAAM,EAAoB,KAEjCA,GAAO,sBAAwB,EAAc,wCAA0C,EAAc,mCAAqC,EAAc,yCAA2C,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuC/G,EAAY,UAAI,MAAQ,EAAa,kBAAoB,EAAmB,OACneA,EAAGzO,KAAKzB,UACViX,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,eAAiB,EAAoB,OAGhDA,GAAO,MACHgD,IACFhD,GAAO,YAGX,MAAOA,SAGHsH,IAAI,SAAS7d,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA+B+U,EAAIsJ,GAClD,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BiD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,MAC3B6E,KACFC,IACF,KAAKC,IAAa5E,GAAS,CACzB,GAAI2C,GAAO3C,EAAQ4E,GACfC,EAAQ5W,MAAMvH,QAAQic,GAAQgC,EAAgBD,CAClDG,GAAMD,GAAajC,EAErBxF,GAAO,OAAS,EAAU,YAC1B,IAAI2H,GAAoB1O,EAAG9C,SAC3B6J,IAAO,cAAgB,EAAS,GAChC,KAAK,GAAIyH,KAAaD,GAAe,CAGnC,GAFAE,EAAQF,EAAcC,GACtBzH,GAAO,QAAU,EAAW/G,EAAG1T,KAAKga,YAAYkI,GAAc,kBAC1DzE,EAAe,CACjBhD,GAAO,QACP,IAAIuF,GAAOmC,CACX,IAAInC,EAGF,IAFA,GAAIqC,GAAYnC,GAAM,EACpBC,EAAKH,EAAK/e,OAAS,EACdif,EAAKC,GAAI,CACdkC,EAAarC,EAAKE,GAAM,GACpBA,IACFzF,GAAO,OAET,IAAI6H,GAAQ5O,EAAG1T,KAAKga,YAAYqI,EAChC5H,IAAO,MAAQ,EAAU,EAAU,6BAA+B,EAAS,MAAS/G,EAAG1T,KAAKoT,eAAeM,EAAGzO,KAAKyW,aAAe2G,EAAaC,GAAU,OAG7J7H,GAAO,QACP,IAAI8H,GAAgB,UAAYrF,EAC9BsF,EAAmB,OAAUD,EAAgB,MAC3C7O,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAGzO,KAAKyW,aAAehI,EAAG1T,KAAKwb,YAAY4G,EAAmBG,GAAe,GAAQH,EAAoB,MAAQG,EAElI,IAAIxD,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,6DAAgF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,2BAA+B9J,EAAG1T,KAAKka,aAAagI,GAAc,wBAA4B,EAAqB,iBAAqBC,EAAY,OAAI,YAAgBzO,EAAG1T,KAAKka,aAA6B,GAAhBiI,EAAMlhB,OAAckhB,EAAM,GAAKA,EAAMO,KAAK,OAAU,QAC9X,IAArBhP,EAAGzO,KAAKga,WACVxE,GAAO,4BACa,GAAhB0H,EAAMlhB,OACRwZ,GAAO,YAAe/G,EAAG1T,KAAKka,aAAaiI,EAAM,IAEjD1H,GAAO,cAAiB/G,EAAG1T,KAAKka,aAAaiI,EAAMO,KAAK,OAE1DjI,GAAO,kBAAqB/G,EAAG1T,KAAKka,aAAagI,GAAc,iBAE7DxO,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,mFAE9B,CACLA,GAAO,OACP,IAAIkI,GAAOR,CACX,IAAIQ,EAGF,IAFA,GAAIC,GAAcC,GAAM,EACtBC,EAAKH,EAAK1hB,OAAS,EACd4hB,EAAKC,GAAI,CACdF,EAAeD,EAAKE,GAAM,EAC1B,IAAIP,GAAQ5O,EAAG1T,KAAKga,YAAY4I,GAC9BJ,EAAmB9O,EAAG1T,KAAKka,aAAa0I,EACtClP,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAG1T,KAAK6b,QAAQuG,EAAmBQ,EAAclP,EAAGzO,KAAKyW,eAE1EjB,GAAO,QAAU,EAAU,EAAU,mCACb,IAApB/G,EAAGsL,cACLvE,GAAO,6DAAgF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,2BAA+B9J,EAAG1T,KAAKka,aAAagI,GAAc,wBAA4B,EAAqB,iBAAqBC,EAAY,OAAI,YAAgBzO,EAAG1T,KAAKka,aAA6B,GAAhBiI,EAAMlhB,OAAckhB,EAAM,GAAKA,EAAMO,KAAK,OAAU,QAC9X,IAArBhP,EAAGzO,KAAKga,WACVxE,GAAO,4BACa,GAAhB0H,EAAMlhB,OACRwZ,GAAO,YAAe/G,EAAG1T,KAAKka,aAAaiI,EAAM,IAEjD1H,GAAO,cAAiB/G,EAAG1T,KAAKka,aAAaiI,EAAMO,KAAK,OAE1DjI,GAAO,kBAAqB/G,EAAG1T,KAAKka,aAAagI,GAAc,iBAE7DxO,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAIbA,GAAO,QACHgD,IACFK,GAAkB,IAClBrD,GAAO,YAGX/G,EAAG9C,UAAYwR,CACf,IAAItC,GAAiBF,EAAIhQ,MACzB,KAAK,GAAIsS,KAAaF,GAAa,CACjC,GAAI/B,GAAO+B,EAAYE,EACnBxO,GAAG1T,KAAKqb,eAAe4E,EAAMvM,EAAG7C,MAAMiH,OACxC2C,GAAO,IAAM,EAAe,gBAAkB,EAAW/G,EAAG1T,KAAKga,YAAYkI,GAAc,qBAC3FtC,EAAIvc,OAAS4c,EACbL,EAAIlP,WAAa6M,EAAc7J,EAAG1T,KAAKga,YAAYkI,GACnDtC,EAAIjP,cAAgB6M,EAAiB,IAAM9J,EAAG1T,KAAKmX,eAAe+K,GAClEzH,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,EACbrF,GAAO,OACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,MAQxB,MAJIL,KACFhD,GAAO,MAAQ,EAAmB,QAAU,EAAU,iBAExDA,EAAM/G,EAAG1T,KAAKwa,YAAYC,SAItBsI,IAAI,SAAS7e,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAuB+U,EAAIsJ,GAC1C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBwB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,KACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KAKvG,IAAIkC,GAAK,IAAMhD,EACb8F,EAAW,SAAW9F,CACnBwB,KACHjE,GAAO,QAAU,EAAa,qBAAuB,EAAgB,KAEvEA,GAAO,OAAS,EAAW,IACvBiE,IACFjE,GAAO,cAAgB,EAAS,mBAAqB,EAAW,0CAA4C,EAAS,MAAQ,EAAW,oBAE1IA,GAAY,EAAW,qBAAuB,EAAO,OAAS,EAAO,IAAM,EAAa,YAAc,EAAO,iBAAmB,EAAU,KAAO,EAAa,IAAM,EAAO,SAAW,EAAW,oBAC7LiE,IACFjE,GAAO,SAETA,GAAO,SAAW,EAAW,QAC7B,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,qDAAwE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,qCAAuC,EAAS,OACrL,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,+DAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KACHgD,IACFhD,GAAO,YAEFA,QAGHwI,IAAI,SAAS/e,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAyB+U,EAAIsJ,GAC5C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,GAClC,KAAuB,IAAnB1J,EAAGzO,KAAK+D,OAIV,MAHIyU,KACFhD,GAAO,iBAEFA,CAET,IACE0D,GADEO,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAAI4F,GAAkBxP,EAAGzO,KAAKke,eAC5BC,EAAgB7X,MAAMvH,QAAQkf,EAChC,IAAIxE,EAAS,CACX,GAAIT,GAAU,SAAWf,CACzBzC,IAAO,QAAU,EAAY,cAAgB,EAAiB,kBAAoB,EAAS,aAAe,EAAY,qBAAyB,EAAY,0BAA4B,EAAY,0BAA4B,EAAS,OACpO/G,EAAGtO,QACLqV,GAAO,aAAe,EAAS,MAAQ,EAAY,YAErDA,GAAO,IAAM,EAAY,MAAQ,EAAY,sBACzCiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,OACiB,IAApByI,GAA4BE,KAC9B3I,GAAO,KAAO,EAAiB,QAAU,EAAY,IACjD2I,IACF3I,GAAO,yCAA2C,EAAiB,YAErEA,GAAO,SAETA,GAAO,KAAO,EAAY,gBAAkB,EAAY,oBACpD/G,EAAGtO,MACLqV,GAAO,UAAY,EAAS,MAAS/G,EAAa,WAAI,IAAM,EAAY,IAAM,EAAU,OAAS,EAAY,IAAM,EAAU,MAE7H+G,GAAO,IAAM,EAAY,IAAM,EAAU,KAE3CA,GAAO,MAAQ,EAAY,SAAW,EAAU,cAC3C,CACL,GAAIwD,GAAUvK,EAAGvH,QAAQmR,EACzB,KAAKW,EAAS,CACZ,IAAwB,IAApBiF,GAA6BE,IAAsD,GAArCF,EAAgBniB,QAAQuc,GACxE,KAAM,IAAIxd,OAAM,mBAAqBwd,EAAU,gCAAkC5J,EAAG/C,cAAgB,IASpG,OAPKyS,KACHjjB,QAAQC,KAAK,mBAAqBkd,EAAU,gCAAkC5J,EAAG/C,cAAgB,KACzE,WAApBuS,GAA8B/iB,QAAQC,KAAK,sGAE7Cqd,IACFhD,GAAO,iBAEFA,EAGX,GAAI4I,GAA8B,gBAAXpF,MAAyBA,YAAmBnS,UAAWmS,EAAQta,QACtF,IAAI0f,EAAW,CACb,GAAI/S,IAA2B,IAAlB2N,EAAQ7Y,KACrB6Y,GAAUA,EAAQta,SAEpB,GAAI2M,EAAQ,CACV,IAAKoD,EAAGtO,MAAO,KAAM,IAAItF,OAAM,8BAC/B,IAAIwjB,GAAa,UAAY5P,EAAG1T,KAAKga,YAAYsD,GAAW,WAC5D7C,IAAO,UAAa/G,EAAa,WAAI,IAAM,EAAe,IAAM,EAAU,aACrE,CACL+G,GAAO,SACP,IAAI6I,GAAa,UAAY5P,EAAG1T,KAAKga,YAAYsD,EAC7C+F,KAAWC,GAAc,aAE3B7I,GADoB,kBAAXwD,GACF,IAAM,EAAe,IAAM,EAAU,KAErC,IAAM,EAAe,SAAW,EAAU,KAEnDxD,GAAO,QAGX,GAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,uDAA0E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,yBAE9J/C,GADEiE,EACK,GAAK,EAEL,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,QACkB,IAArB/G,EAAGzO,KAAKga,WACVxE,GAAO,sCAELA,GADEiE,EACK,OAAU,EAAiB,OAE3B,GAAMhL,EAAG1T,KAAKka,aAAaoD,GAEpC7C,GAAO,QAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,MACHgD,IACFhD,GAAO,YAEFA,QAGH8I,IAAI,SAASrf,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAwB+U,EAAIsJ,GAC3C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBmD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,MAC3BqG,EAAO,IAAMtG,EACfuG,EAAW7D,EAAIvC,UAAY3J,EAAG2J,UAAY,EAC1CqG,EAAY,OAASD,EACrB3D,EAAiBpM,EAAG9D,MAEtB,IADA6K,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpDlP,MAAMvH,QAAQsZ,GAAU,CAC1B,GAAIqG,GAAmBjQ,EAAGrQ,OAAOugB,eACjC,KAAyB,IAArBD,EAA4B,CAC9BlJ,GAAO,IAAM,EAAW,MAAQ,EAAU,cAAiB6C,EAAc,OAAI,IAC7E,IAAIuG,GAAqBrG,CACzBA,GAAiB9J,EAAG/C,cAAgB,mBACpC8J,GAAO,UAAY,EAAW,QAC9B,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,gEAAmF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAA0BF,EAAc,OAAI,OAC5L,IAArB5J,EAAGzO,KAAKga,WACVxE,GAAO,0CAA8C6C,EAAc,OAAI,YAErE5J,EAAGzO,KAAKzB,UACViX,GAAO,mDAAsD/G,EAAa,WAAI,YAAc,EAAU,KAExG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,MACP+C,EAAiBqG,EACbpG,IACFK,GAAkB,IAClBrD,GAAO,YAGX,GAAIuF,GAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAIC,GAAMC,GAAM,EACdC,EAAKH,EAAK/e,OAAS,EACdif,EAAKC,GAEV,GADAF,EAAOD,EAAKE,GAAM,GACdxM,EAAG1T,KAAKqb,eAAe4E,EAAMvM,EAAG7C,MAAMiH,KAAM,CAC9C2C,GAAO,IAAM,EAAe,gBAAkB,EAAU,aAAe,EAAO,MAC9E,IAAIqJ,GAAY9H,EAAQ,IAAMkE,EAAK,GACnCN,GAAIvc,OAAS4c,EACbL,EAAIlP,WAAa6M,EAAc,IAAM2C,EAAK,IAC1CN,EAAIjP,cAAgB6M,EAAiB,IAAM0C,EAC3CN,EAAIhP,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAWsP,EAAIxM,EAAGzO,KAAKyW,cAAc,GAC5EkE,EAAI5B,YAAYyF,GAAYvD,CAC5B,IAAIqB,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,OACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,KAK1B,GAA+B,gBAApB6F,IAAgCjQ,EAAG1T,KAAKqb,eAAesI,EAAkBjQ,EAAG7C,MAAMiH,KAAM,CACjG8H,EAAIvc,OAASsgB,EACb/D,EAAIlP,WAAagD,EAAGhD,WAAa,mBACjCkP,EAAIjP,cAAgB+C,EAAG/C,cAAgB,mBACvC8J,GAAO,IAAM,EAAe,gBAAkB,EAAU,aAAgB6C,EAAc,OAAI,iBAAmB,EAAS,MAASA,EAAc,OAAI,KAAO,EAAS,MAAQ,EAAU,YAAc,EAAS,SAC1MsC,EAAIhP,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW4S,EAAM9P,EAAGzO,KAAKyW,cAAc,EAC9E,IAAIoI,GAAY9H,EAAQ,IAAMwH,EAAO,GACrC5D,GAAI5B,YAAYyF,GAAYD,CAC5B,IAAIjC,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEgD,IACFhD,GAAO,SAAW,EAAe,aAEnCA,GAAO,SACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,UAGjB,IAAIpK,EAAG1T,KAAKqb,eAAeiC,EAAS5J,EAAG7C,MAAMiH,KAAM,CACxD8H,EAAIvc,OAASia,EACbsC,EAAIlP,WAAa6M,EACjBqC,EAAIjP,cAAgB6M,EACpB/C,GAAO,cAAgB,EAAS,SAAqB,EAAS,MAAQ,EAAU,YAAc,EAAS,SACvGmF,EAAIhP,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW4S,EAAM9P,EAAGzO,KAAKyW,cAAc,EAC9E,IAAIoI,GAAY9H,EAAQ,IAAMwH,EAAO,GACrC5D,GAAI5B,YAAYyF,GAAYD,CAC5B,IAAIjC,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEgD,IACFhD,GAAO,SAAW,EAAe,aAEnCA,GAAO,OACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,KAOtB,MAJIL,KACFhD,GAAO,IAAM,EAAmB,QAAU,EAAU,iBAEtDA,EAAM/G,EAAG1T,KAAKwa,YAAYC,SAItBsJ,IAAI,SAAS7f,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA6B+U,EAAIsJ,GAChD,GASEmB,GATE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BsB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,EAEjB7C,GAAO,eAAiB,EAAS,QAC7BiE,IACFjE,GAAO,IAAM,EAAiB,8BAAgC,EAAiB,oBAEjFA,GAAO,aAAe,EAAS,MAAQ,EAAU,MAAQ,EAAiB,KACtE/G,EAAGzO,KAAK+e,oBACVvJ,GAAO,gCAAkC,EAAS,eAAiB,EAAS,UAAa/G,EAAGzO,KAAwB,oBAAI,IAExHwV,GAAO,YAAc,EAAS,yBAA2B,EAAS,KAEpEA,GAAO,MACHiE,IACFjE,GAAO,SAETA,GAAO,SACP,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,2DAA8E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,4BAA8B,EAAiB,OAC1L,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,sCAELA,GADEiE,EACK,OAAU,EAEL,EAAY,KAGxBhL,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAK,EAEdjE,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KACHgD,IACFhD,GAAO,YAEFA,QAGHwJ,IAAI,SAAS/f,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAsB+U,EAAIsJ,GACzC,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BiD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,EACvBkM,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,KAC/B,IAAIzJ,EAAG1T,KAAKqb,eAAeiC,EAAS5J,EAAG7C,MAAMiH,KAAM,CACjD8H,EAAIvc,OAASia,EACbsC,EAAIlP,WAAa6M,EACjBqC,EAAIjP,cAAgB6M,EACpB/C,GAAO,QAAU,EAAU,cAC3B,IAAI8F,GAAgB7M,EAAG0L,aACvB1L,GAAG0L,cAAgBQ,EAAIR,eAAgB,EACvCQ,EAAIZ,cAAe,CACnB,IAAIkF,EACAtE,GAAI3a,KAAK1B,YACX2gB,EAAmBtE,EAAI3a,KAAK1B,UAC5Bqc,EAAI3a,KAAK1B,WAAY,GAEvBkX,GAAO,IAAO/G,EAAG/P,SAASic,GAAQ,IAClCA,EAAIZ,cAAe,EACfkF,IAAkBtE,EAAI3a,KAAK1B,UAAY2gB,GAC3CxQ,EAAG0L,cAAgBQ,EAAIR,cAAgBmB,EACvC9F,GAAO,QAAU,EAAe,QAChC,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,oDAAuE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACpI,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,sCAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,uBAAyB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,4BACrH/G,EAAGzO,KAAK1B,YACVkX,GAAO,WAGTA,IAAO,kBACiB,IAApB/G,EAAGsL,cACLvE,GAAO,oDAAuE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACpI,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,sCAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,+EACHgD,IACFhD,GAAO,iBAGX,OAAOA,SAGH0J,IAAI,SAASjgB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAwB+U,EAAIsJ,GAC3C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBmD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,KAC/B1C,IAAO,OAAS,EAAU,0BAA4B,EAAS,gBAAkB,EAAW,WAC5F,IAAIqF,GAAiBF,EAAIhQ,OACrB2Q,EAAgB7M,EAAG0L,aACvB1L,GAAG0L,cAAgBQ,EAAIR,eAAgB,CACvC,IAAIY,GAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAIC,GAAMC,GAAM,EACdC,EAAKH,EAAK/e,OAAS,EACdif,EAAKC,GACVF,EAAOD,EAAKE,GAAM,GACdxM,EAAG1T,KAAKqb,eAAe4E,EAAMvM,EAAG7C,MAAMiH,MACxC8H,EAAIvc,OAAS4c,EACbL,EAAIlP,WAAa6M,EAAc,IAAM2C,EAAK,IAC1CN,EAAIjP,cAAgB6M,EAAiB,IAAM0C,EAC3CzF,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,GAEbrF,GAAO,QAAU,EAAe,YAE9ByF,IACFzF,GAAO,QAAU,EAAe,gBAAkB,EAAS,KAAO,EAAW,oBAC7EqD,GAAkB,KAEpBrD,GAAO,QAAU,EAAe,KAAO,EAAW,eAAiB,EAAS,UAGhF/G,GAAG0L,cAAgBQ,EAAIR,cAAgBmB,EACvC9F,GAAY,EAAmB,QAAU,EAAW,QACpD,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,sDAAyE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kBACtI,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,2DAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,sBAAwB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,2BACpH/G,EAAGzO,KAAK1B,YACVkX,GAAO,OAEFA,QAGH2J,IAAI,SAASlgB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA0B+U,EAAIsJ,GAC7C,GASEmB,GATE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BsB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,IACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,CAEjB,IAAI+G,GAAU3F,EAAU,eAAiBP,EAAe,KAAOzK,EAAG1C,WAAWsM,EAC7E7C,IAAO,QACHiE,IACFjE,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,KAAO,EAAY,SAAW,EAAU,UAC/C,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,wDAA2E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,0BAE/J/C,GADEiE,EACK,GAAK,EAEL,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,QACkB,IAArB/G,EAAGzO,KAAKga,WACVxE,GAAO,uCAELA,GADEiE,EACK,OAAU,EAAiB,OAE3B,GAAMhL,EAAG1T,KAAKka,aAAaoD,GAEpC7C,GAAO,QAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAMhL,EAAG1T,KAAKoT,eAAekK,GAEtC7C,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CAeZ,OAdAA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KACHgD,IACFhD,GAAO,YAEFA,QAGH6J,IAAI,SAASpgB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAkC+U,EAAIsJ,GACrD,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBqH,EAAO,MAAQrH,EACjBsH,EAAW,iBAAmBtH,EAC9BY,EAAiB,GACjB2G,EAAiB/Q,EAAGzO,KAAKyf,aAC3BjK,IAAO,OAAS,EAAW,UAC3B,IAAIuF,GAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAI2E,GAAYC,GAAM,EACpBzE,EAAKH,EAAK/e,OAAS,EACd2jB,EAAKzE,GAAI,CACdwE,EAAa3E,EAAK4E,GAAM,GACxBnK,GAAO,QAAU,EAAa,sBAAwB,EAAS,OAAS,EAAU,QAC9EgK,IACFhK,GAAO,8CAAgD,EAAU,KAAO,EAAS,iBAEnFA,GAAO,IAAM,EAAa,MAAS/G,EAAG1C,WAAW2T,GAAe,SAAW,EAAS,UAAY,EAAa,aAC7G,IAAIE,GAAkBnR,EAAG1T,KAAKka,aAAayK,EAC3ClK,IAAO,SAAW,EAAa,OAAS,EAAW,2BAC3B,IAApB/G,EAAGsL,cACLvE,GAAO,gEAAmF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,iCAAoC,EAAoB,QACxM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,yDAA6D,EAAoB,SAEtF/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,mFACHgD,IACFK,GAAkB,IAClBrD,GAAO,YAKb,MADAA,IAAO,GAAK,QAIRqK,IAAI,SAAS5gB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA6B+U,EAAIsJ,GAChD,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBmD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,MAC3BoH,EAAO,MAAQrH,EACjBuG,EAAW7D,EAAIvC,UAAY3J,EAAG2J,UAAY,EAC1CqG,EAAY,OAASD,EACnBsB,EAAcpkB,OAAOC,KAAK0c,OAC5B0H,EAAetR,EAAGrQ,OAAO4hB,sBACzBC,EAAiBvkB,OAAOC,KAAKokB,GAC7BG,EAAezR,EAAGrQ,OAAO+hB,qBACzBC,EAAkBN,EAAY9jB,QAAUikB,EAAejkB,OACvDqkB,GAAiC,IAAjBH,EAChBI,EAA6C,gBAAhBJ,IAA4BxkB,OAAOC,KAAKukB,GAAclkB,OACnFukB,EAAoB9R,EAAGzO,KAAKwgB,iBAC5BC,EAAmBJ,GAAiBC,GAAuBC,EAC3Df,EAAiB/Q,EAAGzO,KAAKyf,cACzB5E,EAAiBpM,EAAG9D,OAClB+V,EAAYjS,EAAGrQ,OAAO6B;kVAC1B,IAAIygB,KAAejS,EAAGzO,KAAK4Y,KAAM8H,EAAU3J,QAAU2J,EAAU1kB,OAASyS,EAAGzO,KAAK2gB,aAAc,GAAIC,GAAgBnS,EAAG1T,KAAKqX,OAAOsO,EACjI,IAAIjS,EAAGzO,KAAK4Y,GACV,GAAIiI,GAAgBpS,EAAGrQ,OAAO0iB,kBAC5BC,EAAkBrlB,OAAOC,KAAKklB,EAGlC,IADArL,GAAO,OAAS,EAAU,iBAAmB,EAAe,WACxDiL,EAAkB,CAKpB,GAJAjL,GAAO,aAAe,EAAS,OAAS,EAAU,QAC9CgK,IACFhK,GAAO,8CAAgD,EAAU,KAAO,EAAS,iBAE/E4K,EAAiB,CAEnB,GADA5K,GAAO,oBAAsB,EAAS,cAClCsK,EAAY9jB,OACd,GAAI8jB,EAAY9jB,OAAS,EACvBwZ,GAAO,sBAAwB,EAAgB,IAAM,EAAS,SACzD,CACL,GAAIuF,GAAO+E,CACX,IAAI/E,EAGF,IAFA,GAAIiG,GAAcrB,GAAM,EACtBzE,EAAKH,EAAK/e,OAAS,EACd2jB,EAAKzE,GACV8F,EAAejG,EAAK4E,GAAM,GAC1BnK,GAAO,OAAS,EAAS,OAAU/G,EAAG1T,KAAKoT,eAAe6S,GAAiB,IAKnF,GAAIf,EAAejkB,OAAQ,CACzB,GAAI0hB,GAAOuC,CACX,IAAIvC,EAGF,IAFA,GAAIgC,GAAYzE,GAAM,EACpB4C,EAAKH,EAAK1hB,OAAS,EACdif,EAAK4C,GACV6B,EAAahC,EAAKzC,GAAM,GACxBzF,GAAO,OAAU/G,EAAG1C,WAAW2T,GAAe,SAAW,EAAS,KAIxE,GAAIjR,EAAGzO,KAAK4Y,IAAMmI,GAAmBA,EAAgB/kB,OAAQ,CAC3D,GAAIilB,GAAOF,CACX,IAAIE,EAGF,IAFA,GAAIC,GAAajG,GAAM,EACrBkG,EAAKF,EAAKjlB,OAAS,EACdif,EAAKkG,GACVD,EAAcD,EAAKhG,GAAM,GACzBzF,GAAO,OAAU/G,EAAG1C,WAAWmV,GAAgB,SAAW,EAAS,KAIzE1L,GAAO,uBAAyB,EAAS,OAE3C,GAAyB,OAArB+K,EACF/K,GAAO,WAAa,EAAU,IAAM,EAAS,UACxC,CACL,GAAI2H,GAAoB1O,EAAG9C,UACvByV,EAAsB,OAAU9B,EAAO,MAI3C,IAHI7Q,EAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW2T,EAAM7Q,EAAGzO,KAAKyW,eAE7D4J,EACF,GAAIE,EACF/K,GAAO,WAAa,EAAU,IAAM,EAAS,UACxC,CACLA,GAAO,IAAM,EAAe,YAC5B,IAAIoJ,GAAqBrG,CACzBA,GAAiB9J,EAAG/C,cAAgB,uBACpC,IAAIoO,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,qEAAwF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,qCAAwC,EAAwB,QACrN,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,wDAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,mDAAsD/G,EAAa,WAAI,YAAc,EAAU,KAExG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnC+C,EAAiBqG,EACbpG,IACFhD,GAAO,gBAGN,IAAI8K,EACT,GAAyB,WAArBC,EAAgC,CAClC/K,GAAO,QAAU,EAAU,cAC3B,IAAI8F,GAAgB7M,EAAG0L,aACvB1L,GAAG0L,cAAgBQ,EAAIR,eAAgB,EACvCQ,EAAIvc,OAAS8hB,EACbvF,EAAIlP,WAAagD,EAAGhD,WAAa,wBACjCkP,EAAIjP,cAAgB+C,EAAG/C,cAAgB,wBACvCiP,EAAIhP,UAAY8C,EAAGzO,KAAKwd,uBAAyB/O,EAAG9C,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW2T,EAAM7Q,EAAGzO,KAAKyW,aAChH,IAAIoI,GAAY9H,EAAQ,IAAMuI,EAAO,GACrC3E,GAAI5B,YAAYyF,GAAYc,CAC5B,IAAIhD,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,SAAW,EAAe,gBAAkB,EAAU,wHAA0H,EAAU,IAAM,EAAS,SAChN/G,EAAG0L,cAAgBQ,EAAIR,cAAgBmB,MAClC,CACLX,EAAIvc,OAAS8hB,EACbvF,EAAIlP,WAAagD,EAAGhD,WAAa,wBACjCkP,EAAIjP,cAAgB+C,EAAG/C,cAAgB,wBACvCiP,EAAIhP,UAAY8C,EAAGzO,KAAKwd,uBAAyB/O,EAAG9C,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW2T,EAAM7Q,EAAGzO,KAAKyW,aAChH,IAAIoI,GAAY9H,EAAQ,IAAMuI,EAAO,GACrC3E,GAAI5B,YAAYyF,GAAYc,CAC5B,IAAIhD,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEgD,IACFhD,GAAO,SAAW,EAAe,aAIvC/G,EAAG9C,UAAYwR,EAEbiD,IACF5K,GAAO,OAETA,GAAO,OACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,KAGtB,GAAIwI,GAAe5S,EAAGzO,KAAKshB,cAAgB7S,EAAG0L,aAC9C,IAAI2F,EAAY9jB,OAAQ,CACtB,GAAIulB,GAAOzB,CACX,IAAIyB,EAGF,IAFA,GAAIP,GAAcQ,IAAM,EACtBC,GAAKF,EAAKvlB,OAAS,EACdwlB,GAAKC,IAAI,CACdT,EAAeO,EAAKC,IAAM,EAC1B,IAAIxG,IAAO3C,EAAQ2I,EACnB,IAAIvS,EAAG1T,KAAKqb,eAAe4E,GAAMvM,EAAG7C,MAAMiH,KAAM,CAC9C,GAAIwK,IAAQ5O,EAAG1T,KAAKga,YAAYiM,GAC9BnC,EAAY9H,EAAQsG,GACpBqE,GAAcL,OAAiC3X,KAAjBsR,GAAK2G,OACrChH,GAAIvc,OAAS4c,GACbL,EAAIlP,WAAa6M,EAAc+E,GAC/B1C,EAAIjP,cAAgB6M,EAAiB,IAAM9J,EAAG1T,KAAKmX,eAAe8O,GAClErG,EAAIhP,UAAY8C,EAAG1T,KAAK6b,QAAQnI,EAAG9C,UAAWqV,EAAcvS,EAAGzO,KAAKyW,cACpEkE,EAAI5B,YAAYyF,GAAY/P,EAAG1T,KAAKoT,eAAe6S,EACnD,IAAI1E,GAAQ7N,EAAG/P,SAASic,EAExB,IADAA,EAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAAG,CAC/CnC,EAAQ7N,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,EAC7C,IAAI+C,IAAW/C,MACV,CACL,GAAI+C,IAAWnD,CACfjJ,IAAO,QAAU,EAAc,MAAQ,EAAc,KAEvD,GAAIkM,GACFlM,GAAO,IAAM,EAAU,QAClB,CACL,GAAIoL,GAAiBA,EAAcI,GAAe,CAChDxL,GAAO,QAAU,GAAa,qBAAuB,EAAe,YACpE,IAAI2H,GAAoB1O,EAAG9C,UACzBiT,EAAqBrG,EACrBgF,GAAmB9O,EAAG1T,KAAKka,aAAa+L,EACtCvS,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAG1T,KAAK6b,QAAQuG,EAAmB6D,EAAcvS,EAAGzO,KAAKyW,eAE1E8B,EAAiB9J,EAAG/C,cAAgB,WACpC,IAAIoO,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kCAAqC,GAAqB,QACnM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBACH/G,EAAGzO,KAAKwd,uBACVhI,GAAO,yBAEPA,GAAO,oCAAuC,GAAqB,MAErEA,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnC+C,EAAiBqG,EACjBnQ,EAAG9C,UAAYwR,EACf3H,GAAO,iBAGLA,IADEgD,EACK,QAAU,GAAa,qBAAuB,EAAe,qBAE7D,QAAU,GAAa,oBAGlChD,IAAO,IAAM,EAAU,OAGvBgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,MAK1B,GAAIgJ,IAAO5B,CACX,IAAI4B,GAGF,IAFA,GAAInC,GAAYoC,IAAM,EACpBC,GAAKF,GAAK7lB,OAAS,EACd8lB,GAAKC,IAAI,CACdrC,EAAamC,GAAKC,IAAM,EACxB,IAAI9G,IAAO+E,EAAaL,EACxB,IAAIjR,EAAG1T,KAAKqb,eAAe4E,GAAMvM,EAAG7C,MAAMiH,KAAM,CAC9C8H,EAAIvc,OAAS4c,GACbL,EAAIlP,WAAagD,EAAGhD,WAAa,qBAAuBgD,EAAG1T,KAAKga,YAAY2K,GAC5E/E,EAAIjP,cAAgB+C,EAAG/C,cAAgB,sBAAwB+C,EAAG1T,KAAKmX,eAAewN,GACtFlK,GAAO,aAAe,EAAS,OAAS,EAAU,QAC9CgK,IACFhK,GAAO,8CAAgD,EAAU,KAAO,EAAS,iBAEnFA,GAAO,QAAW/G,EAAG1C,WAAW2T,GAAe,SAAW,EAAS,QACnE/E,EAAIhP,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW2T,EAAM7Q,EAAGzO,KAAKyW,aAChE,IAAIoI,GAAY9H,EAAQ,IAAMuI,EAAO,GACrC3E,GAAI5B,YAAYyF,GAAYc,CAC5B,IAAIhD,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEgD,IACFhD,GAAO,SAAW,EAAe,aAEnCA,GAAO,MACHgD,IACFhD,GAAO,SAAW,EAAe,aAEnCA,GAAO,OACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,MAK1B,GAAIpK,EAAGzO,KAAK4Y,GAAI,CACd,GAAIoJ,IAAOjB,CACX,IAAIiB,GAGF,IAFA,GAAId,GAAae,IAAM,EACrBC,GAAKF,GAAKhmB,OAAS,EACdimB,GAAKC,IAAI,CACdhB,EAAcc,GAAKC,IAAM,EACzB,IAAIE,IAAYtB,EAAcK,GAC5BlG,GAAOmH,GAAU/jB,MACnB,IAAIqQ,EAAG1T,KAAKqb,eAAe4E,GAAMvM,EAAG7C,MAAMiH,KAAM,CAC9C8H,EAAIvc,OAAS4c,GACbL,EAAIlP,WAAagD,EAAGhD,WAAa,iBAAmBgD,EAAG1T,KAAKga,YAAYmM,GAAe,UACvFvG,EAAIjP,cAAgB+C,EAAG/C,cAAgB,kBAAoB+C,EAAG1T,KAAKmX,eAAegP,GAAe,UACjG1L,GAAO,mBAAqB,EAAS,kBAAoB,EAAS,OAAS,EAAU,QACjFgK,IACFhK,GAAO,8CAAgD,EAAU,KAAO,EAAS,iBAEnFA,GAAO,QAAW/G,EAAG1C,WAAWmV,GAAgB,SAAW,EAAS,mBAAqB,EAAS,OAClGvG,EAAIhP,UAAY8C,EAAG1T,KAAKwb,YAAY9H,EAAG9C,UAAW2T,EAAM7Q,EAAGzO,KAAKyW,aAChE,IAAIoI,GAAY9H,EAAQ,IAAMuI,EAAO,GACrC3E,GAAI5B,YAAYyF,GAAYc,CAC5B,IAAIhD,GAAQ7N,EAAG/P,SAASic,EACxBA,GAAIhQ,OAASkQ,EACTpM,EAAG1T,KAAKoa,cAAcmH,EAAOmC,GAAa,EAC5CjJ,GAAO,IAAO/G,EAAG1T,KAAKsa,WAAWiH,EAAOmC,EAAWI,GAAc,IAEjErJ,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEgD,IACFhD,GAAO,SAAW,EAAe,aAEnCA,GAAO,MACHgD,IACFhD,GAAO,SAAW,EAAe,aAEnCA,GAAO,OACHgD,IACFhD,GAAO,QAAU,EAAe,OAChCqD,GAAkB,IAEpB,IAAIuJ,IAASD,GAAUje,QACrBme,GAASF,GAAUle,OACrB,QAAeyF,KAAX0Y,QAAmC1Y,KAAX2Y,GAAsB,CAChD7M,GAAO,QAAU,EAAW,WAC5B,IAAIoJ,GAAqBrG,CACzB,QAAe7O,KAAX0Y,GAAsB,CACxB,GAAIE,IAASF,GACXG,GAAU,UACVC,GAAc,MAChBhN,IAAO,IAAM,EAAW,iBAAmB,EAAS,OAAS,GAAW,KACxE+C,EAAiB9J,EAAG/C,cAAgB,yBACpC8J,GAAO,UAAY,EAAW,QAC9B,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,8DAAiF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,yBAA4B,GAAY,aAAgB,GAAW,eAAmB9J,EAAG1T,KAAKka,aAAaiM,GAAgB,QACzQ,IAArBzS,EAAGzO,KAAKga,WACVxE,GAAO,gCAAmC,GAAgB,SAAW,GAAW,iCAAoC/G,EAAG1T,KAAKka,aAAaiM,GAAgB,QAEvJzS,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,UACQ9L,KAAX2Y,KACF7M,GAAO,UAGX,OAAe9L,KAAX2Y,GAAsB,CACxB,GAAIC,IAASD,GACXE,GAAU,UACVC,GAAc,MAChBhN,IAAO,IAAM,EAAW,iBAAmB,EAAS,OAAS,GAAW,KACxE+C,EAAiB9J,EAAG/C,cAAgB,yBACpC8J,GAAO,UAAY,EAAW,QAC9B,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,8DAAiF/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,yBAA4B,GAAY,aAAgB,GAAW,eAAmB9J,EAAG1T,KAAKka,aAAaiM,GAAgB,QACzQ,IAArBzS,EAAGzO,KAAKga,WACVxE,GAAO,gCAAmC,GAAgB,SAAW,GAAW,iCAAoC/G,EAAG1T,KAAKka,aAAaiM,GAAgB,QAEvJzS,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,MAET+C,EAAiBqG,EACbpG,IACFhD,GAAO,QAAU,EAAW,OAC5BqD,GAAkB,QAW9B,MAJIL,KACFhD,GAAO,IAAM,EAAmB,QAAU,EAAU,iBAEtDA,EAAM/G,EAAG1T,KAAKwa,YAAYC,SAItBiN,IAAI,SAASxjB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAsB+U,EAAIsJ,GACzC,GAQI1M,GAAQqX,EARRlN,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,CAEvB,IAAe,KAAXI,GAA6B,MAAXA,EAChB5J,EAAGrD,QACLC,EAASoD,EAAGtO,MACZuiB,EAAW,aAEXrX,GAAmC,IAA1BoD,EAAGjV,KAAK4E,OAAOiN,OACxBqX,EAAW,sBAER,CACL,GAAIC,GAAUlU,EAAG3C,WAAW2C,EAAG9D,OAAQ0N,EAAS5J,EAAGrD,OACnD,QAAgB1B,KAAZiZ,EAAuB,CACzB,GAAIC,GAAW,2BAA8BvK,EAAU,YAAc5J,EAAG9D,MACxE,IAA2B,QAAvB8D,EAAGzO,KAAK6iB,YAAuB,CACjC3nB,QAAQkG,IAAIwhB,EACZ,IAAI9I,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,qDAAwE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,sBAA0B9J,EAAG1T,KAAKka,aAAaoD,GAAY,QAChM,IAArB5J,EAAGzO,KAAKga,WACVxE,GAAO,0CAA+C/G,EAAG1T,KAAKka,aAAaoD,GAAY,MAErF5J,EAAGzO,KAAKzB,UACViX,GAAO,cAAiB/G,EAAG1T,KAAKoT,eAAekK,GAAY,mCAAsC5J,EAAa,WAAI,YAAc,EAAU,KAE5I+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAE/BgD,IACFhD,GAAO,sBAEJ,CAAA,GAA2B,UAAvB/G,EAAGzO,KAAK6iB,YAKZ,CACL,GAAIC,GAAS,GAAIjoB,OAAM+nB,EAGvB,MAFAE,GAAOvgB,WAAakM,EAAG5C,QAAQqB,IAAIuB,EAAG9D,OAAQ0N,GAC9CyK,EAAO9gB,cAAgByM,EAAG5C,QAAQwE,YAAY5B,EAAG5C,QAAQoG,SAAS6Q,EAAOvgB,aACnEugB,EARN5nB,QAAQkG,IAAIwhB,GACRpK,IACFhD,GAAO,sBAQN,IAAImN,EAAQ5U,OAAQ,CACzB,GAAI4M,GAAMlM,EAAG1T,KAAK2F,KAAK+N,EACvBkM,GAAIzC,OACJ,IAAI0C,GAAa,QAAUD,EAAIzC,KAC/ByC,GAAIvc,OAASukB,EAAQvkB,OACrBuc,EAAIlP,WAAa,GACjBkP,EAAIjP,cAAgB2M,CACpB,IAAIiE,GAAQ7N,EAAG/P,SAASic,GAAK9I,QAAQ,oBAAqB8Q,EAAQ/iB,KAClE4V,IAAO,IAAM,EAAU,IACnBgD,IACFhD,GAAO,QAAU,EAAe,YAGlCnK,IAA4B,IAAnBsX,EAAQtX,OACjBqX,EAAWC,EAAQ/iB,KAGvB,GAAI8iB,EAAU,CACZ,GAAI5I,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,GACF/G,EAAGzO,KAAKuc,YACV/G,GAAO,IAAM,EAAa,eAE1BA,GAAO,IAAM,EAAa,KAE5BA,GAAO,IAAM,EAAU,qBACH,MAAhB/G,EAAG9C,YACL6J,GAAO,MAAS/G,EAAY,UAI9B+G,IAAO,OAFW2C,EAAW,QAAWA,EAAW,GAAM,IAAM,cAEhC,OADPA,EAAW1J,EAAGsK,YAAYZ,GAAY,sBACC,eAC/D,IAAI4K,GAAiBvN,CAErB,IADAA,EAAMsE,EAAWI,MACb7O,EAAQ,CACV,IAAKoD,EAAGtO,MAAO,KAAM,IAAItF,OAAM,yCAC/B2a,IAAO,UACHgD,IACFhD,GAAO,OAAS,EAAW,MAE7BA,GAAO,IAAO/G,EAAa,WAAI,IAAM,EAAmB,+KACpD+J,IACFhD,GAAO,QAAU,EAAW,YAG9BA,IAAO,SAAW,EAAmB,uCAAyC,EAAa,0CAA4C,EAAa,wCAChJgD,IACFhD,GAAO,YAIb,MAAOA,SAGHwN,IAAI,SAAS/jB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA2B+U,EAAIsJ,GAC9C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBwB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAE3C0C,KACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KAKvG,IAAIgF,GAAW,SAAW9F,CAC1B,KAAKwB,EACH,GAAIpB,EAAQrc,OAASyS,EAAGzO,KAAK2gB,cAAgBlS,EAAGrQ,OAAOyG,YAAcnJ,OAAOC,KAAK8S,EAAGrQ,OAAOyG,YAAY7I,OAAQ,CAC7G,GAAI0kB,MACA3F,EAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAIkC,GAAW0C,GAAM,EACnBzE,EAAKH,EAAK/e,OAAS,EACd2jB,EAAKzE,GAAI,CACd+B,EAAYlC,EAAK4E,GAAM,EACvB,IAAIsD,GAAexU,EAAGrQ,OAAOyG,WAAWoY,EAClCgG,IAAgBxU,EAAG1T,KAAKqb,eAAe6M,EAAcxU,EAAG7C,MAAMiH,OAClE6N,EAAUA,EAAU1kB,QAAUihB,QAKpC,IAAIyD,GAAYrI,CAGpB,IAAIoB,GAAWiH,EAAU1kB,OAAQ,CAC/B,GAAImhB,GAAoB1O,EAAG9C,UACzBuX,EAAgBzJ,GAAWiH,EAAU1kB,QAAUyS,EAAGzO,KAAK2gB,YACzD,IAAInI,EAEF,GADAhD,GAAO,eAAiB,EAAS,KAC7B0N,EAAe,CACZzJ,IACHjE,GAAO,QAAU,EAAa,qBAAuB,EAAgB,KAEvE,IAAIyF,GAAK,IAAMhD,EACbqF,EAAgB,SAAWrF,EAAO,IAAMgD,EAAK,IAC7CsC,EAAmB,OAAUD,EAAgB,MAC3C7O,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAG1T,KAAKwb,YAAY4G,EAAmBG,EAAe7O,EAAGzO,KAAKyW,eAE/EjB,GAAO,QAAU,EAAW,YACxBiE,IACFjE,GAAO,cAAgB,EAAS,mBAAqB,EAAW,0CAA4C,EAAS,MAAQ,EAAW,oBAE1IA,GAAO,aAAe,EAAO,SAAW,EAAO,MAAQ,EAAa,YAAc,EAAO,SAAW,EAAW,MAAQ,EAAU,IAAM,EAAa,IAAM,EAAO,0BAA4B,EAAW,cACpMiE,IACFjE,GAAO,SAETA,GAAO,UAAY,EAAW,QAC9B,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kCAAqC,EAAqB,QACnM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBACH/G,EAAGzO,KAAKwd,uBACVhI,GAAO,yBAEPA,GAAO,oCAAuC,EAAqB,MAErEA,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,iBACF,CACLA,GAAO,QACP,IAAIkI,GAAOgD,CACX,IAAIhD,EAGF,IAFA,GAAIN,GAAYnC,GAAM,EACpB4C,EAAKH,EAAK1hB,OAAS,EACdif,EAAK4C,GAAI,CACdT,EAAaM,EAAKzC,GAAM,GACpBA,IACFzF,GAAO,OAET,IAAI6H,GAAQ5O,EAAG1T,KAAKga,YAAYqI,EAChC5H,IAAO,MAAQ,EAAU,EAAU,6BAA+B,EAAS,MAAS/G,EAAG1T,KAAKoT,eAAeM,EAAGzO,KAAKyW,aAAe2G,EAAaC,GAAU,OAG7J7H,GAAO,OACP,IAAI8H,GAAgB,UAAYrF,EAC9BsF,EAAmB,OAAUD,EAAgB,MAC3C7O,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAGzO,KAAKyW,aAAehI,EAAG1T,KAAKwb,YAAY4G,EAAmBG,GAAe,GAAQH,EAAoB,MAAQG,EAElI,IAAIxD,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kCAAqC,EAAqB,QACnM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBACH/G,EAAGzO,KAAKwd,uBACVhI,GAAO,yBAEPA,GAAO,oCAAuC,EAAqB,MAErEA,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,iBAGT,IAAI0N,EAAe,CACZzJ,IACHjE,GAAO,QAAU,EAAa,qBAAuB,EAAgB,KAEvE,IAAIyF,GAAK,IAAMhD,EACbqF,EAAgB,SAAWrF,EAAO,IAAMgD,EAAK,IAC7CsC,EAAmB,OAAUD,EAAgB,MAC3C7O,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAG1T,KAAKwb,YAAY4G,EAAmBG,EAAe7O,EAAGzO,KAAKyW,eAE3EgD,IACFjE,GAAO,QAAU,EAAa,sBAAwB,EAAa,sBAC3C,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kCAAqC,EAAqB,QACnM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBACH/G,EAAGzO,KAAKwd,uBACVhI,GAAO,yBAEPA,GAAO,oCAAuC,EAAqB,MAErEA,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,0FAA4F,EAAa,sBAElHA,GAAO,aAAe,EAAO,SAAW,EAAO,MAAQ,EAAa,YAAc,EAAO,aAAe,EAAU,IAAM,EAAa,IAAM,EAAO,qCAC1H,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kCAAqC,EAAqB,QACnM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBACH/G,EAAGzO,KAAKwd,uBACVhI,GAAO,yBAEPA,GAAO,oCAAuC,EAAqB,MAErEA,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,mFACHiE,IACFjE,GAAO,aAEJ,CACL,GAAIyL,GAAOP,CACX,IAAIO,EAGF,IAFA,GAAItD,GAAcwF,GAAM,EACtBhC,EAAKF,EAAKjlB,OAAS,EACdmnB,EAAKhC,GAAI,CACdxD,EAAesD,EAAKkC,GAAM,EAC1B,IAAI9F,GAAQ5O,EAAG1T,KAAKga,YAAY4I,GAC9BJ,EAAmB9O,EAAG1T,KAAKka,aAAa0I,EACtClP,GAAGzO,KAAKwd,yBACV/O,EAAG9C,UAAY8C,EAAG1T,KAAK6b,QAAQuG,EAAmBQ,EAAclP,EAAGzO,KAAKyW,eAE1EjB,GAAO,QAAU,EAAU,EAAU,mCACb,IAApB/G,EAAGsL,cACLvE,GAAO,yDAA4E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,kCAAqC,EAAqB,QACnM,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,gBACH/G,EAAGzO,KAAKwd,uBACVhI,GAAO,yBAEPA,GAAO,oCAAuC,EAAqB,MAErEA,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAKf/G,EAAG9C,UAAYwR,MACN3E,KACThD,GAAO,eAET,OAAOA,SAGH4N,IAAI,SAASnkB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAAyB+U,EAAIsJ,GAC5C,GAAIvC,GAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBmD,EAAQ,SAAWnD,EACnB0C,EAAMlM,EAAG1T,KAAK2F,KAAK+N,GACnBoK,EAAiB,EACrB8B,GAAIzC,OACJ,IAGEmL,GAHEzI,EAAa,QAAUD,EAAIzC,MAC3BoL,EAAY,WAAa7U,EAAGyJ,MAC9B2C,EAAiBF,EAAIhQ,MAEvB6K,IAAO,OAAS,EAAc,GAC9B,IAAIuF,GAAO1C,CACX,IAAI0C,EAGF,IAFA,GAAIC,GAAMuI,GAAc,EACtBrI,EAAKH,EAAK/e,OAAS,EACdunB,EAAarI,GAAI,CAMtB,GALAF,EAAOD,EAAKwI,GAAc,GACtBA,IAAeF,IACjB7N,GAAO,SAAW,EAAc,OAChCqD,GAAkB,KAEhBmC,EAAKwI,IAAM/U,EAAG1T,KAAKqb,eAAe4E,EAAKwI,GAAI/U,EAAG7C,MAAMiH,KAAM,CAC5D2C,GAAO,QAAU,EAAU,eAC3B,IAAI8F,GAAgB7M,EAAG0L,aAWvB,IAVA1L,EAAG0L,cAAgBQ,EAAIR,eAAgB,EACvCQ,EAAIZ,cAAe,EACnBY,EAAIvc,OAAS4c,EAAKwI,GAClB7I,EAAIlP,WAAa6M,EAAc,IAAMiL,EAAa,OAClD5I,EAAIjP,cAAgB6M,EAAiB,IAAMgL,EAAa,MACxD/N,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,EACbF,EAAIZ,cAAe,EACnBtL,EAAG0L,cAAgBQ,EAAIR,cAAgBmB,EACvC9F,GAAO,IAAM,EAAc,MAAQ,EAAe,SAAW,EAAc,QACnD,iBAAbwF,GAAKyI,KAAmB,CACjC,IAAkB,IAAdzI,EAAKyI,KAAgB,CACvB,GAAI3J,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,uDAA0E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,2BAA6B,EAAe,OACnL,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,4DAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAGrCA,GAAO,QAAU,EAAe,MAASwF,EAAS,KAAI,SAEtDL,GAAIvc,OAAS4c,EAAKyI,KAClB9I,EAAIlP,WAAa6M,EAAc,IAAMiL,EAAa,SAClD5I,EAAIjP,cAAgB6M,EAAiB,IAAMgL,EAAa,QACxD/N,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,CAEfrF,IAAO,wBAA0B,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,kCAG1H,IADAA,GAAO,IAAM,EAAc,aACH,iBAAbwF,GAAKyI,KAAmB,CACjC,IAAkB,IAAdzI,EAAKyI,KAAgB,CACvB,GAAI3J,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,uDAA0E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,2BAA6B,EAAe,OACnL,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,4DAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAGrCA,GAAO,QAAU,EAAe,MAASwF,EAAS,KAAI,SAEtDL,GAAIvc,OAAS4c,EAAKyI,KAClB9I,EAAIlP,WAAa6M,EAAc,IAAMiL,EAAa,SAClD5I,EAAIjP,cAAgB6M,EAAiB,IAAMgL,EAAa,QACxD/N,GAAO,KAAQ/G,EAAG/P,SAASic,GAAQ,IACnCA,EAAIhQ,OAASkQ,CAGjBwI,GAAkBrI,EAAK0I,SAK3B,MAFAlO,IAAY,EAAmB,OAAS,EAAW,MAAQ,EAAe,KAC1EA,EAAM/G,EAAG1T,KAAKwa,YAAYC,SAItBmO,IAAI,SAAS1kB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA8B+U,EAAIsJ,GACjD,GAUEmB,GAVE1D,EAAM,IACNyC,EAAOxJ,EAAGyJ,MACVC,EAAW1J,EAAG2J,UACdC,EAAU5J,EAAGrQ,OAAO2Z,GACpBO,EAAc7J,EAAGhD,WAAagD,EAAG1T,KAAKga,YAAYgD,GAClDQ,EAAiB9J,EAAG/C,cAAgB,IAAMqM,EAC1CS,GAAiB/J,EAAGzO,KAAK1B,UACzByY,EAAQ,QAAUoB,GAAY,IAC9BM,EAAS,QAAUR,EACnBwB,EAAUhL,EAAGzO,KAAK4Y,IAAMP,GAAWA,EAAQtB,KAQ/C,IANI0C,GACFjE,GAAO,cAAgB,EAAS,MAAS/G,EAAG1T,KAAK+b,QAAQuB,EAAQtB,MAAOoB,EAAU1J,EAAGsK,aAAgB,KACrGG,EAAe,SAAWjB,GAE1BiB,EAAeb,GAEZA,GAAWoB,KAAoC,IAAxBhL,EAAGzO,KAAK8E,YAAuB,CACrD2U,IACFjE,GAAO,QAAU,EAAW,SAAW,EAAiB,iBAAmB,EAAiB,mBAAqB,EAAW,4BAA8B,EAAiB,kBAAsB,EAAW,qBAE9MA,GAAO,QAAU,EAAW,gBAAkB,EAAU,0BAA4B,EAAU,kEAAoE,EAAU,QAAU,EAAU,WAAa,EAAW,kCACpNiE,IACFjE,GAAO,SAETA,GAAO,SAAW,EAAW,QAC7B,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,4DAA+E/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,8BAC5I,IAArB9J,EAAGzO,KAAKga,WACVxE,GAAO,mGAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,eAELA,GADEiE,EACK,kBAAoB,EAEpB,GAAK,EAEdjE,GAAO,2CAA8C/G,EAAa,WAAI,YAAc,EAAU,KAEhG+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,MACHgD,IACFhD,GAAO,gBAGLgD,KACFhD,GAAO,gBAGX,OAAOA,SAGHoO,IAAI,SAAS3kB,EAAQtF,EAAOD,GAClC,YACAC,GAAOD,QAAU,SAA2B+U,EAAIsJ,GAiX9C,QAAS8L,GAAe/H,GACtB,WAAoCpS,KAA7B+E,EAAGrQ,OAAO0d,EAAMhN,UAA4C,cAAjBgN,EAAMhN,WAA+D,IAAnCL,EAAGrQ,OAAO+hB,sBAA2E,gBAAlC1R,GAAGrQ,OAAO+hB,sBAAqC1R,EAAGrQ,OAAO4hB,mBAAqBtkB,OAAOC,KAAK8S,EAAGrQ,OAAO4hB,mBAAmBhkB,QAAYyS,EAAGzO,KAAK4Y,IAAMnK,EAAGrQ,OAAO0iB,eAAiBplB,OAAOC,KAAK8S,EAAGrQ,OAAO0iB,eAAe9kB,QAjX1V,GAAIwZ,GAAM,GACNnK,GAA8B,IAArBoD,EAAGrQ,OAAOiN,MACvB,IAAIoD,EAAGjD,MAAO,CACZ,GAAIsY,GAAOrV,EAAGjD,MACZyM,EAAOxJ,EAAGyJ,MAAQ,EAClBC,EAAW1J,EAAG2J,UAAY,EAC1BrB,EAAQ,MAGV,IAFAtI,EAAGsV,OAAStV,EAAG5C,QAAQoG,SAASxD,EAAGjV,KAAK4E,OAAOjE,IAC/CsU,EAAG9D,OAAS8D,EAAG9D,QAAU8D,EAAGsV,OACxB1Y,EAAQ,CACVoD,EAAGtO,OAAQ,CACX,IAAI6jB,GAAwB,OAAjBvV,EAAGzO,KAAKG,KACnBsO,GAAGwV,WAAaD,EAAO,QAAU,cAE5BvV,GAAGjD,MACViD,EAAGsK,iBAAerP,IAClB8L,GAAO,mBACHnK,EACE2Y,EACFxO,GAAO,qBAEc,OAAjB/G,EAAGzO,KAAKG,QACVqV,GAAO,WAETA,GAAO,eAGTA,GAAO,cAETA,GAAO,mGACPA,GAAO,wBACPA,GAAO,oDACF,CACL,GAAIyC,GAAOxJ,EAAGyJ,MACZC,EAAW1J,EAAG2J,UACdrB,EAAQ,QAAUoB,GAAY,GAEhC,IADI1J,EAAGrQ,OAAOjE,KAAIsU,EAAG9D,OAAS8D,EAAG5C,QAAQqB,IAAIuB,EAAG9D,OAAQ8D,EAAGrQ,OAAOjE,KAC9DkR,IAAWoD,EAAGtO,MAAO,KAAM,IAAItF,OAAM,8BACzC2a,IAAO,aAAe,EAAS,aAEjC,GAAIiD,GAAS,QAAUR,EACrBO,GAAiB/J,EAAGzO,KAAK1B,UACzB4lB,EAAkB,GAClBC,EAAkB,GAChBC,EAAc3V,EAAGrQ,OAAOoU,KAC1B6R,EAAe/d,MAAMvH,QAAQqlB,EAC/B,IAAIA,GAAe3V,EAAGzO,KAAKskB,YAAa,CACtC,GAAIC,GAAiB9V,EAAG1T,KAAK6Z,cAAcnG,EAAGzO,KAAKskB,YAAaF,EAChE,IAAIG,EAAgB,CAClB,GAAIjM,GAAc7J,EAAGhD,WAAa,QAChC8M,EAAiB9J,EAAG/C,cAAgB,QACpC8Y,EAAUH,EAAe,iBAAmB,eAC9C7O,IAAO,QAAW/G,EAAG1T,KAAKypB,GAASJ,EAAarN,GAAO,GAAS,OAChE,IAAI0N,GAAY,WAAaxM,EAC3ByM,EAAW,UAAYzM,CACzBzC,IAAO,QAAU,EAAc,aAAe,EAAU,KAC7B,SAAvB/G,EAAGzO,KAAKskB,cACV9O,GAAO,QAAU,EAAc,iCAAqC,EAAU,MAAQ,EAAc,gBAEtGA,GAAO,QAAU,EAAa,gBAC9B,IAAImP,GAAkB,GAClB5J,EAAOwJ,CACX,IAAIxJ,EAGF,IAFA,GAAI6J,GAAO3J,GAAM,EACfC,EAAKH,EAAK/e,OAAS,EACdif,EAAKC,GACV0J,EAAQ7J,EAAKE,GAAM,GACfA,IACFzF,GAAO,QAAU,EAAa,qBAC9BmP,GAAmB,KAEM,SAAvBlW,EAAGzO,KAAKskB,aAAmC,SAATM,IACpCpP,GAAO,QAAU,EAAc,kBAAsB,EAAU,mBAAqB,EAAa,MAAQ,EAAU,MAAQ,EAAU,QAAU,EAAc,aAAe,EAAU,SAE3K,UAAToP,EACFpP,GAAO,QAAU,EAAc,mBAAuB,EAAc,kBAAsB,EAAa,WAAe,EAAU,cAAgB,EAAU,cAAgB,EAAa,UACrK,UAAToP,GAA8B,WAATA,GAC9BpP,GAAO,QAAU,EAAc,oBAAwB,EAAU,iBAAmB,EAAc,mBAAuB,EAAU,OAAS,EAAU,QAAU,EAAU,IAC7J,WAAToP,IACFpP,GAAO,SAAW,EAAU,SAE9BA,GAAO,MAAQ,EAAa,OAAS,EAAU,MAC7B,WAAToP,EACTpP,GAAO,QAAU,EAAU,mBAAuB,EAAU,aAAe,EAAU,cAAgB,EAAa,sBAAwB,EAAU,kBAAsB,EAAU,WAAa,EAAa,YAC5L,QAAToP,EACTpP,GAAO,QAAU,EAAU,cAAkB,EAAU,aAAe,EAAU,eAAiB,EAAa,YAC9E,SAAvB/G,EAAGzO,KAAKskB,aAAmC,SAATM,IAC3CpP,GAAO,QAAU,EAAc,mBAAuB,EAAc,mBAAuB,EAAc,oBAAwB,EAAU,aAAe,EAAa,OAAS,EAAU,MAIhMA,IAAO,IAAM,EAAoB,QAAU,EAAa,sBACxD,IAAIsE,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,qDAAwE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAE5J/C,GADE6O,EACK,GAAMD,EAAY3G,KAAK,KAEvB,GAAK,EAEdjI,GAAO,QACkB,IAArB/G,EAAGzO,KAAKga,WACVxE,GAAO,0BAELA,GADE6O,EACK,GAAMD,EAAY3G,KAAK,KAEvB,GAAK,EAEdjI,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,aACP,IAAIgH,GAAcrE,EAAW,QAAWA,EAAW,GAAM,IAAM,aAC7DsE,EAAsBtE,EAAW1J,EAAGsK,YAAYZ,GAAY,oBAC9D3C,IAAO,IAAM,EAAU,MAAQ,EAAa,KACvC2C,IACH3C,GAAO,OAAS,EAAgB,mBAElCA,GAAO,IAAM,EAAgB,IAAM,EAAwB,OAAS,EAAa,UAGrF,GAAIqP,EACJ,IAAIpW,EAAGrQ,OAAOsF,OAASmhB,EAAepW,EAAG1T,KAAKsb,qBAAqB5H,EAAGrQ,OAAQqQ,EAAG7C,MAAMiH,IAAK,SAAU,CACpG,GAA0B,QAAtBpE,EAAGzO,KAAK8kB,WACV,KAAM,IAAIjqB,OAAM,qDAAuD4T,EAAG/C,cAAgB,IAC3D,WAAtB+C,EAAGzO,KAAK8kB,YACjBD,GAAe,EACf3pB,QAAQkG,IAAI,6CAA+CqN,EAAG/C,cAAgB,OAC9C,IAAvB+C,EAAGzO,KAAK8kB,YACjB5pB,QAAQkG,IAAI,8CAAgDqN,EAAG/C,cAAgB,0HAGnF,GAAI+C,EAAGrQ,OAAOsF,OAASmhB,EACrBrP,GAAO,IAAO/G,EAAG7C,MAAMiH,IAAInP,KAAK9D,KAAK6O,EAAI,QAAW,IAChD+J,IACFhD,GAAO,qBAELA,GADEsO,EACK,IAEA,QAAU,EAEnBtO,GAAO,OACP2O,GAAmB,SAEhB,CACL,GAAIzG,GAAOjP,EAAG7C,KACd,IAAI8R,EAGF,IAFA,GAAIqH,GAAanH,GAAM,EACrBC,EAAKH,EAAK1hB,OAAS,EACd4hB,EAAKC,GAEV,GADAkH,EAAcrH,EAAKE,GAAM,GAkM/B,SAAyBmH,GACvB,IAAK,GAAIlmB,GAAI,EAAGA,EAAIkmB,EAAYtS,MAAMzW,OAAQ6C,IAC5C,GAAIglB,EAAekB,EAAYtS,MAAM5T,IAAK,OAAO,GAnM3BkmB,GAAc,CAIhC,GAHIA,EAAYvS,OACdgD,GAAO,QAAW/G,EAAG1T,KAAK+Y,cAAciR,EAAYvS,KAAMuE,GAAU,QAElEtI,EAAGzO,KAAKshB,cAAgB7S,EAAG0L,cAC7B,GAAwB,UAApB4K,EAAYvS,MAAoB/D,EAAGrQ,OAAOyG,WAAY,CACxD,GAAIwT,GAAU5J,EAAGrQ,OAAOyG,WACtBib,EAAcpkB,OAAOC,KAAK0c,GACxB4I,EAAOnB,CACX,IAAImB,EAGF,IAFA,GAAID,GAAcmC,GAAM,EACtBhC,EAAKF,EAAKjlB,OAAS,EACdmnB,EAAKhC,GAAI,CACdH,EAAeC,EAAKkC,GAAM,EAC1B,IAAInI,GAAO3C,EAAQ2I,EACnB,QAAqBtX,KAAjBsR,EAAK2G,QAAuB,CAC9B,GAAI9C,GAAY9H,EAAQtI,EAAG1T,KAAKga,YAAYiM,EAC5CxL,IAAO,SAAW,EAAc,mBAAqB,EAAc,MACxC,UAAvB/G,EAAGzO,KAAKshB,YACV9L,GAAO,IAAO/G,EAAGzC,WAAWgP,EAAK2G,SAAY,IAE7CnM,GAAO,IAAOtY,KAAKC,UAAU6d,EAAK2G,SAAY,IAEhDnM,GAAO,WAIR,IAAwB,SAApBuP,EAAYvS,MAAmBlM,MAAMvH,QAAQ0P,EAAGrQ,OAAO4F,OAAQ,CACxE,GAAIud,GAAO9S,EAAGrQ,OAAO4F,KACrB,IAAIud,EAGF,IAFA,GAAIvG,GAAMC,GAAM,EACdwG,EAAKF,EAAKvlB,OAAS,EACdif,EAAKwG,GAEV,GADAzG,EAAOuG,EAAKtG,GAAM,OACGvR,KAAjBsR,EAAK2G,QAAuB,CAC9B,GAAI9C,GAAY9H,EAAQ,IAAMkE,EAAK,GACnCzF,IAAO,SAAW,EAAc,mBAAqB,EAAc,MACxC,UAAvB/G,EAAGzO,KAAKshB,YACV9L,GAAO,IAAO/G,EAAGzC,WAAWgP,EAAK2G,SAAY,IAE7CnM,GAAO,IAAOtY,KAAKC,UAAU6d,EAAK2G,SAAY,IAEhDnM,GAAO,MAMjB,GAAIqM,GAAOkD,EAAYtS,KACvB,IAAIoP,EAGF,IAFA,GAAI/F,GAAOgG,GAAM,EACfC,EAAKF,EAAK7lB,OAAS,EACd8lB,EAAKC,GACVjG,EAAQ+F,EAAKC,GAAM,GACf+B,EAAe/H,KACjBtG,GAAO,IAAOsG,EAAMlc,KAAK6O,EAAIqN,EAAMhN,SAAY,IAC3C0J,IACF0L,GAAmB,KAS3B,IAJI1L,IACFhD,GAAO,IAAM,EAAoB,IACjC0O,EAAkB,IAEhBa,EAAYvS,OACdgD,GAAO,MACH4O,GAAeA,IAAgBW,EAAYvS,MAAM,CACnD,GAAIwS,IAAe,CACnBxP,IAAO,UACP,IAAI8C,GAAc7J,EAAGhD,WAAa,QAChC8M,EAAiB9J,EAAG/C,cAAgB,QAClCoO,EAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,qDAAwE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAE5J/C,GADE6O,EACK,GAAMD,EAAY3G,KAAK,KAEvB,GAAK,EAEdjI,GAAO,QACkB,IAArB/G,EAAGzO,KAAKga,WACVxE,GAAO,0BAELA,GADE6O,EACK,GAAMD,EAAY3G,KAAK,KAEvB,GAAK,EAEdjI,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,MAGPgD,IACFhD,GAAO,mBAELA,GADEsO,EACK,IAEA,QAAU,EAEnBtO,GAAO,OACP2O,GAAmB,MAM7B,GAAIC,IAAgBY,KAAkBvW,EAAGzO,KAAKskB,cAAeC,GAAiB,CAC5E,GAAIjM,GAAc7J,EAAGhD,WAAa,QAChC8M,EAAiB9J,EAAG/C,cAAgB,QACpC8Y,EAAUH,EAAe,iBAAmB,eAC9C7O,IAAO,QAAW/G,EAAG1T,KAAKypB,GAASJ,EAAarN,GAAO,GAAS,QAChE,IAAI+C,GAAaA,KACjBA,GAAW9G,KAAKwC,GAChBA,EAAM,IACkB,IAApB/G,EAAGsL,cACLvE,GAAO,qDAAwE/G,EAAY,UAAI,kBAAqBA,EAAG1T,KAAKoT,eAAeoK,GAAmB,uBAE5J/C,GADE6O,EACK,GAAMD,EAAY3G,KAAK,KAEvB,GAAK,EAEdjI,GAAO,QACkB,IAArB/G,EAAGzO,KAAKga,WACVxE,GAAO,0BAELA,GADE6O,EACK,GAAMD,EAAY3G,KAAK,KAEvB,GAAK,EAEdjI,GAAO,MAEL/G,EAAGzO,KAAKzB,UACViX,GAAO,6BAA+B,EAAgB,mCAAsC/G,EAAa,WAAI,YAAc,EAAU,KAEvI+G,GAAO,OAEPA,GAAO,MAET,IAAIyE,GAAQzE,CACZA,GAAMsE,EAAWI,OACZzL,EAAG0L,eAAiB3B,EACnB/J,EAAGtO,MACLqV,GAAO,+BAAiC,EAAU,OAElDA,GAAO,uBAAyB,EAAU,oBAG5CA,GAAO,cAAgB,EAAU,+EAEnCA,GAAO,KA8BT,MA5BIgD,KACFhD,GAAO,IAAM,EAAoB,KAE/BsO,GACEzY,GACFmK,GAAO,6CACPA,GAAO,+CAEPA,GAAO,+BACPA,GAAO,gCAETA,GAAO,yBAEPA,GAAO,QAAU,EAAW,sBAAwB,EAAS,IAE/DA,EAAM/G,EAAG1T,KAAKwa,YAAYC,GACtBsO,GAAQtL,IACVhD,EAAM/G,EAAG1T,KAAK6a,iBAAiBJ,EAAKnK,IAW/BmK,QAGHyP,IAAI,SAAShmB,EAAQtF,EAAOD,GAClC,YAiBA,SAASwrB,GAAWpW,EAASJ,GA8C3B,QAASyW,GAASrW,EAASiF,EAAUrF,GAEnC,IAAK,GADD0W,GACKvmB,EAAE,EAAGA,EAAE+M,EAAM5P,OAAQ6C,IAAK,CACjC,GAAIwmB,GAAKzZ,EAAM/M,EACf,IAAIwmB,EAAG7S,MAAQuB,EAAU,CACvBqR,EAAYC,CACZ,QAICD,IACHA,GAAc5S,KAAMuB,EAAUtB,UAC9B7G,EAAMoH,KAAKoS,GAGb,IAAI7W,IACFO,QAASA,EACTJ,WAAYA,EACZ0E,QAAQ,EACRxT,KAAM8M,EAER0Y,GAAU3S,MAAMO,KAAKzE,GACrB3C,EAAMwH,OAAOtE,GAAWP,EAI1B,QAASuF,GAAcC,GACrB,IAAKnI,EAAMuH,MAAMY,GAAW,KAAM,IAAIlZ,OAAM,gBAAkBkZ,GAtEhE,GAAInI,GAAQ9R,KAAK8R,KAEjB,IAAIA,EAAMqH,SAASnE,GACjB,KAAM,IAAIjU,OAAM,WAAaiU,EAAU,sBAEzC,KAAKkG,EAAWrM,KAAKmG,GACnB,KAAM,IAAIjU,OAAM,WAAaiU,EAAU,6BAEzC,IAAIJ,EAAY,CACd,GAAIA,EAAWG,WAA8BnF,KAArBgF,EAAWkO,MACjC,KAAM,IAAI/hB,OAAM,oDAElB,IAAIkZ,GAAWrF,EAAW8D,IAC1B,IAAIlM,MAAMvH,QAAQgV,GAAW,CAC3B,GAAIlV,GAAG4U,EAAMM,EAAS/X,MACtB,KAAK6C,EAAE,EAAGA,EAAE4U,EAAK5U,IAAKiV,EAAcC,EAASlV,GAC7C,KAAKA,EAAE,EAAGA,EAAE4U,EAAK5U,IAAKsmB,EAASrW,EAASiF,EAASlV,GAAI6P,OAEjDqF,IAAUD,EAAcC,GAC5BoR,EAASrW,EAASiF,EAAUrF,EAG9B,IAAIqI,IAA6B,IAArBrI,EAAWqI,OAAkBjd,KAAK2G,MAAMmY,EACpD,IAAI7B,IAAUrI,EAAWhQ,SACvB,KAAM,IAAI7D,OAAM,oDAElB,IAAIyqB,GAAa5W,EAAW4W,UACxBA,KACEvO,IACFuO,GACE1hB,OACE0hB,GACE5hB,KAAQ,+GAIhBgL,EAAWlQ,eAAiB1E,KAAK2E,QAAQ6mB,GAAY,IAIzD1Z,EAAMqH,SAASnE,GAAWlD,EAAMiH,IAAI/D,IAAW,EAyCjD,QAASyW,GAAWzW,GAElB,GAAIP,GAAOzU,KAAK8R,MAAMwH,OAAOtE,EAC7B,OAAOP,GAAOA,EAAKG,WAAa5U,KAAK8R,MAAMqH,SAASnE,KAAY,EASlE,QAAS0W,GAAc1W,GAErB,GAAIlD,GAAQ9R,KAAK8R,YACVA,GAAMqH,SAASnE,SACflD,GAAMiH,IAAI/D,SACVlD,GAAMwH,OAAOtE,EACpB,KAAK,GAAIjQ,GAAE,EAAGA,EAAE+M,EAAM5P,OAAQ6C,IAE5B,IAAK,GADD4T,GAAQ7G,EAAM/M,GAAG4T,MACZgT,EAAE,EAAGA,EAAEhT,EAAMzW,OAAQypB,IAC5B,GAAIhT,EAAMgT,GAAG3W,SAAWA,EAAS,CAC/B2D,EAAMnD,OAAOmW,EAAG,EAChB,QA1HR,GAAIzQ,GAAa,0BACbtI,EAAiBzN,EAAQ,iBAE7BtF,GAAOD,SACLgsB,IAAKR,EACLroB,IAAK0oB,EACLI,OAAQH,KA0HPI,iBAAiB,KAAKC,IAAI,SAAS5mB,EAAQtF,EAAOD,GACrDC,EAAOD,SACHS,GAAM,0CACNke,QAAW,0CACXyN,YAAe,0BACfC,aACIC,aACIxT,KAAQ,QACRpO,SAAY,EACZJ,OAAWN,KAAQ,MAEvBuiB,iBACIzT,KAAQ,UACRtO,QAAW,GAEfgiB,yBACIviB,QAAaD,KAAQ,kCAAqCie,QAAW,KAEzEwE,aACIriB,MAAU,QAAS,UAAW,UAAW,OAAQ,SAAU,SAAU,WAEzEsiB,aACI5T,KAAQ,QACRxO,OAAWwO,KAAQ,UACnBpO,SAAY,EACZU,aAAe,IAGvB0N,KAAQ,SACR3N,YACI1K,IACIqY,KAAQ,SACRzO,OAAU,OAEdsU,SACI7F,KAAQ,SACRzO,OAAU,OAEdsiB,OACI7T,KAAQ,UAEZsT,aACItT,KAAQ,UAEZmP,WACAld,YACI+N,KAAQ,SACRtO,QAAW,EACXoiB,kBAAoB,GAExBriB,SACIuO,KAAQ,UAEZ+T,kBACI/T,KAAQ,UACRmP,SAAW,GAEfzd,SACIsO,KAAQ,UAEZ8T,kBACI9T,KAAQ,UACRmP,SAAW,GAEftd,WAAeX,KAAQ,iCACvBY,WAAeZ,KAAQ,yCACvBkB,SACI4N,KAAQ,SACRzO,OAAU,SAEd4a,iBACI/a,QACM4O,KAAQ,YACR9O,KAAQ,MAEdie,YAEJ3d,OACIJ,QACMF,KAAQ,MACRA,KAAQ,8BAEdie,YAEJxd,UAAcT,KAAQ,iCACtBU,UAAcV,KAAQ,yCACtBoB,aACI0N,KAAQ,UACRmP,SAAW,GAEfpd,eAAmBb,KAAQ,iCAC3Bc,eAAmBd,KAAQ,yCAC3BzD,UAAcyD,KAAQ,6BACtByc,sBACIvc,QACM4O,KAAQ,YACR9O,KAAQ,MAEdie,YAEJoE,aACIvT,KAAQ,SACR2N,sBAA0Bzc,KAAQ,KAClCie,YAEJ9c,YACI2N,KAAQ,SACR2N,sBAA0Bzc,KAAQ,KAClCie,YAEJ3B,mBACIxN,KAAQ,SACR2N,sBAA0Bzc,KAAQ,KAClCie,YAEJ9d,cACI2O,KAAQ,SACR2N,sBACIvc,QACMF,KAAQ,MACRA,KAAQ,gCAItBI,MACI0O,KAAQ,QACRpO,SAAY,EACZU,aAAe,GAEnB0N,MACI5O,QACMF,KAAQ,8BAEN8O,KAAQ,QACRxO,OAAWN,KAAQ,6BACnBU,SAAY,EACZU,aAAe,KAI3BnB,OAAWD,KAAQ,6BACnBE,OAAWF,KAAQ,6BACnBiB,OAAWjB,KAAQ,6BACnBgB,KAAShB,KAAQ,MAErBG,cACI0iB,kBAAsB,WACtBD,kBAAsB,YAE1B3E,iBAGE6E,IAAI,SAASvnB,EAAQtF,EAAOD,GAClCC,EAAOD,SACHS,GAAM,yFACNke,QAAW,0CACXyN,YAAe,yCACfC,aACIC,aACIxT,KAAQ,QACRpO,SAAY,EACZJ,OAAWN,KAAQ,MAEvBuiB,iBACIzT,KAAQ,UACRtO,QAAW,GAEfgiB,yBACIviB,QAAaD,KAAQ,kCAAqCie,QAAW,KAEzEwE,aACIriB,MAAU,QAAS,UAAW,UAAW,OAAQ,SAAU,SAAU,WAEzEsiB,aACI5T,KAAQ,QACRxO,OAAWwO,KAAQ,UACnBpO,SAAY,EACZU,aAAe,GAEnBiS,OACIvE,KAAQ,SACRvS,UAAc,SACd4E,YACIkS,OACIvE,KAAQ,SACR5O,QACMG,OAAU,0BACVA,OAAU,mBAIxBoc,sBAAwB,IAGhC3N,KAAQ,SACR3N,YACI1K,IACIqY,KAAQ,SACRzO,OAAU,OAEdsU,SACI7F,KAAQ,SACRzO,OAAU,OAEdsiB,OACI7T,KAAQ,UAEZsT,aACItT,KAAQ,UAEZmP,WACAld,YACIb,QAEQ4O,KAAQ,SACRtO,QAAW,EACXoiB,kBAAoB,IAEtB5iB,KAAQ,yBAGlBO,SACIL,QACM4O,KAAQ,WACR9O,KAAQ,yBAGlB6iB,kBACI3iB,QAEQ4O,KAAQ,UACRmP,SAAW,IAEbje,KAAQ,yBAGlBQ,SACIN,QACM4O,KAAQ,WACR9O,KAAQ,yBAGlB4iB,kBACI1iB,QAEQ4O,KAAQ,UACRmP,SAAW,IAEbje,KAAQ,yBAGlBW,WACIT,QACMF,KAAQ,kCACRA,KAAQ,yBAGlBY,WACIV,QACMF,KAAQ,0CACRA,KAAQ,yBAGlBkB,SACIhB,QAEQ4O,KAAQ,SACRzO,OAAU,UAEZL,KAAQ,yBAGlBib,iBACI/a,QACM4O,KAAQ,YACR9O,KAAQ,MACRA,KAAQ,wBAEdie,YAEJ3d,OACIJ,QACMF,KAAQ,MACRA,KAAQ,8BAEdie,YAEJxd,UACIP,QACMF,KAAQ,kCACRA,KAAQ,yBAGlBU,UACIR,QACMF,KAAQ,0CACRA,KAAQ,yBAGlBoB,aACIlB,QAEQ4O,KAAQ,UACRmP,SAAW,IAEbje,KAAQ,yBAGlBa,eACIX,QACMF,KAAQ,kCACRA,KAAQ,yBAGlBc,eACIZ,QACMF,KAAQ,0CACRA,KAAQ,yBAGlBzD,UACI2D,QACMF,KAAQ,8BACRA,KAAQ,yBAGlByc,sBACIvc,QACM4O,KAAQ,YACR9O,KAAQ,MACRA,KAAQ,wBAEdie,YAEJoE,aACIvT,KAAQ,SACR2N,sBAA0Bzc,KAAQ,KAClCie,YAEJ9c,YACI2N,KAAQ,SACR2N,sBAA0Bzc,KAAQ,KAClCie,YAEJ3B,mBACIxN,KAAQ,SACR2N,sBAA0Bzc,KAAQ,KAClCie,YAEJ9d,cACI2O,KAAQ,SACR2N,sBACIvc,QACMF,KAAQ,MACRA,KAAQ,gCAItBI,MACIF,QAEQ4O,KAAQ,QACRpO,SAAY,EACZU,aAAe,IAEjBpB,KAAQ,yBAGlB8O,MACI5O,QACMF,KAAQ,8BAEN8O,KAAQ,QACRxO,OAAWN,KAAQ,6BACnBU,SAAY,EACZU,aAAe,KAI3BnB,OAAWD,KAAQ,6BACnBE,OAAWF,KAAQ,6BACnBiB,OAAWjB,KAAQ,6BACnBgB,KAAShB,KAAQ,KACjBK,QACIH,QACM4O,KAAQ,WACR9O,KAAQ,yBAGlB+iB,eACI7iB,QACM4O,KAAQ,WACR9O,KAAQ,yBAGlBgjB,eACI9iB,QACM4O,KAAQ,WACR9O,KAAQ,yBAGlBijB,wBACI/iB,QAEQ4O,KAAQ,UACRmP,SAAW,IAEbje,KAAQ,yBAGlBkjB,wBACIhjB,QAEQ4O,KAAQ,UACRmP,SAAW,IAEbje,KAAQ,yBAGlBmjB,UACIjjB,WAEMF,KAAQ,yBAGlBojB,UAAcpjB,KAAQ,KACtBod,eACItO,KAAQ,SACR2N,sBACI3N,KAAQ,SACRvS,UAAc,UACd4E,YACIZ,SACIL,QACMF,KAAQ,kCACRA,KAAQ,yBAGlBQ,SACIN,QACMF,KAAQ,0CACRA,KAAQ,yBAGlBtF,QAAYsF,KAAQ,MAExByc,sBAAwB,GAE5BwB,YAEJoF,QACIvU,KAAQ,QACRxO,OACI/D,UAAc,QACd4E,YACI2e,IAAQ9f,KAAQ,KAChB+f,MACI7f,QACM4O,KAAQ,YACR9O,KAAQ,OAGlBggB,UAAclR,KAAQ,YAE1B2N,sBAAwB,EACxBtc,cACI6f,UAAc,UAK9B7f,cACI0iB,kBAAsB,WACtBD,kBAAsB,WACtBG,eAAmB,UACnBC,eAAmB,UACnBC,wBAA4B,iBAC5BC,wBAA4B,kBAEhCjF,iBAGEqF,IAAI,SAAS/nB,EAAQtF,EAAOD,GAClC,YAUA,SAASutB,GAAS5oB,GAyBhB,QAAS6oB,GAAYpY,EAASqE,EAAOgU,GACnC,GAAIzY,IACFX,OAAQoZ,GAAcC,EAAgBtY,GACtCuN,YAAY,EACZrR,OAAQ,OAENmI,KAAOzE,EAAW8D,KAAOW,GAC7B9U,EAAI6mB,WAAWpW,EAASJ,GA/B1B,GAAI0Y,IACFL,OAAU9nB,EAAQ,kBAClB4nB,SAAY5nB,EAAQ,oBACpBooB,aAAgBpoB,EAAQ,wBACxBqoB,gBAAmBroB,EAAQ,2BAG7B,KAAuB,IAAnBZ,EAAIoC,MAAM8mB,KAAgB,CAC5B,GAAIjC,GAAarmB,EAAQ,6BACzBZ,GAAImpB,cAAclC,EAAYmC,GAEhCP,EAAY,YACZ7oB,EAAI6mB,WAAW,YAAc1S,KAAM,QAAS3D,MAAO6Y,IAEnDR,EAAY,gBAAiB,SAAUE,EAAgBC,cACvDH,EAAY,gBAAiB,SAAUE,EAAgBC,cACvDhpB,EAAI6mB,WAAW,0BACf7mB,EAAI6mB,WAAW,0BAEf7mB,EAAI6mB,WAAW,iBACfgC,EAAY,kBAAmB,UAC/BA,EAAY,UAed,QAASQ,GAActpB,GACrB,OACEsG,KAAOV,OAASU,IAAKtG,KA/CzB,GAAIqpB,GAAiB,uFAErB9tB,GAAOD,SACLiuB,OAAQV,EACRQ,eAAgBA,KA+CfG,uBAAuB,GAAGC,mBAAmB,GAAGC,0BAA0B,GAAGC,iBAAiB,GAAGC,6BAA6B,KAAKC,IAAI,SAAShpB,EAAQtF,EAAOD,GA2ClK,QAASkT,GAAGsb,GACV,GAAIC,GAAMruB,KACNsuB,EAAOzX,EAAMtW,KAAK0B,UAAW,EAKjC,OAAO,IAAIssB,SAAQ,SAASxc,EAASyc,GAYnC,QAASC,GAAY9e,GACnB,GAAI+e,EACJ,KACEA,EAAMN,EAAIO,KAAKhf,GACf,MAAOrK,GACP,MAAOkpB,GAAOlpB,GAEhBqpB,EAAKD,GASP,QAASE,GAAWvsB,GAClB,GAAIqsB,EACJ,KACEA,EAAMN,EAAIS,MAAMxsB,GAChB,MAAOiD,GACP,MAAOkpB,GAAOlpB,GAEhBqpB,EAAKD,GAYP,QAASC,GAAKD,GACZ,GAAIA,EAAII,KAAM,MAAO/c,GAAQ2c,EAAIjlB,MACjC,IAAIA,GAAQslB,EAAUxuB,KAAK8tB,EAAKK,EAAIjlB,MACpC,OAAIA,IAASulB,EAAUvlB,GAAeA,EAAMkgB,KAAK8E,EAAaG,GACvDA,EAAW,GAAIK,WAAU,8GACeC,OAAOR,EAAIjlB,OAAS,MAlDrE,GADmB,kBAAR2kB,KAAoBA,EAAMA,EAAInd,MAAMod,EAAKC,KAC/CF,GAA2B,kBAAbA,GAAIO,KAAqB,MAAO5c,GAAQqc,EAE3DK,OA6DJ,QAASM,GAAUtV,GACjB,MAAKA,GACDuV,EAAUvV,GAAaA,EACvB0V,EAAoB1V,IAAQ2V,EAAY3V,GAAa3G,EAAGvS,KAAKP,KAAMyZ,GACnE,kBAAqBA,GAAY4V,EAAe9uB,KAAKP,KAAMyZ,GAC3DjN,MAAMvH,QAAQwU,GAAa6V,EAAe/uB,KAAKP,KAAMyZ,GACrD8V,EAAS9V,GAAa+V,EAAgBjvB,KAAKP,KAAMyZ,GAC9CA,EANUA,EAiBnB,QAAS4V,GAAeI,GACtB,GAAIpB,GAAMruB,IACV,OAAO,IAAIuuB,SAAQ,SAAUxc,EAASyc,GACpCiB,EAAGlvB,KAAK8tB,EAAK,SAAUhsB,EAAKsN,GAC1B,GAAItN,EAAK,MAAOmsB,GAAOnsB,EACnBJ,WAAUC,OAAS,IAAGyN,EAAMkH,EAAMtW,KAAK0B,UAAW,IACtD8P,EAAQpC,OAcd,QAAS2f,GAAe7V,GACtB,MAAO8U,SAAQxV,IAAIU,EAAIR,IAAI8V,EAAW/uB,OAYxC,QAASwvB,GAAgB/V,GAIvB,IAAK,GAHDiW,GAAU,GAAIjW,GAAIsE,YAClBlc,EAAOD,OAAOC,KAAK4X,GACnBhS,KACK1C,EAAI,EAAGA,EAAIlD,EAAKK,OAAQ6C,IAAK,CACpC,GAAIyE,GAAM3H,EAAKkD,GACX4qB,EAAUZ,EAAUxuB,KAAKP,KAAMyZ,EAAIjQ,GACnCmmB,IAAWX,EAAUW,GAO3B,SAAeA,EAASnmB,GAEtBkmB,EAAQlmB,OAAOoG,GACfnI,EAASyR,KAAKyW,EAAQhG,KAAK,SAAUha,GACnC+f,EAAQlmB,GAAOmG,MAXwBggB,EAASnmB,GAC7CkmB,EAAQlmB,GAAOiQ,EAAIjQ,GAE1B,MAAO+kB,SAAQxV,IAAItR,GAAUkiB,KAAK,WAChC,MAAO+F,KAoBX,QAASV,GAAUvV,GACjB,MAAO,kBAAqBA,GAAIkQ,KAWlC,QAASyF,GAAY3V,GACnB,MAAO,kBAAqBA,GAAIkV,MAAQ,kBAAqBlV,GAAIoV,MAUnE,QAASM,GAAoB1V,GAC3B,GAAIsE,GAActE,EAAIsE,WACtB,SAAKA,IACD,sBAAwBA,EAAYxa,MAAQ,sBAAwBwa,EAAY6R,aAC7ER,EAAYrR,EAAYtb,YAWjC,QAAS8sB,GAASM,GAChB,MAAOjuB,SAAUiuB,EAAI9R,YAtOvB,GAAIlH,GAAQrK,MAAM/J,UAAUoU,KAM5BhX,GAAOD,QAAUkT,EAAY,QAAIA,EAAGA,GAAKA,EAczCA,EAAGgd,KAAO,SAAUL,GAGlB,QAASM,KACP,MAAOjd,GAAGvS,KAAKP,KAAMyvB,EAAGxe,MAAMjR,KAAMiC,YAFtC,MADA8tB,GAAcC,sBAAwBP,EAC/BM,QAmNHE,IAAI,SAAS9qB,EAAQtF,EAAOD,GAClC,GAAIkB,GAAuB,mBAATsC,MAAuBA,KAAO+B,EAAQ,UAExDtF,GAAOD,QAAU,SAAU6Z,EAAKvT,GACvBA,IAAMA,MACS,kBAATA,KAAqBA,GAASgqB,IAAKhqB,GAC9C,IAAIiqB,GAAQjqB,EAAKiqB,OAAS,EACL,iBAAVA,KAAoBA,EAAQ3jB,MAAM2jB,EAAM,GAAGxM,KAAK,KAC3D,IAAIyM,GAAiC,iBAAhBlqB,GAAKkqB,QAAwBlqB,EAAKkqB,OACnDC,EAAWnqB,EAAKmqB,UAAY,SAAS7mB,EAAKC,GAAS,MAAOA,IAE1DymB,EAAMhqB,EAAKgqB,KAAO,SAAW7qB,GAC7B,MAAO,UAAUirB,GACb,MAAO,UAAUzqB,EAAGyG,GAChB,GAAIikB,IAAS/mB,IAAK3D,EAAG4D,MAAO6mB,EAAKzqB,IAC7B2qB,GAAShnB,IAAK8C,EAAG7C,MAAO6mB,EAAKhkB,GACjC,OAAOjH,GAAEkrB,EAAMC,MAGxBtqB,EAAKgqB,KAEJO,IACJ,OAAO,SAAUptB,GAAWqtB,EAAQlnB,EAAK8mB,EAAMlS,GAC3C,GAAIuS,GAASR,EAAS,KAAO,GAAI3jB,OAAM4R,EAAQ,GAAGuF,KAAKwM,GAAU,GAC7DS,EAAiBT,EAAQ,KAAO,GAQpC,IANIG,GAAQA,EAAKO,QAAiC,kBAAhBP,GAAKO,SACnCP,EAAOA,EAAKO,cAKHjhB,MAFb0gB,EAAOD,EAAS9vB,KAAKmwB,EAAQlnB,EAAK8mB,IAElC,CAGA,GAAoB,gBAATA,IAA8B,OAATA,EAC5B,MAAOxvB,GAAKuC,UAAUitB,EAE1B,IAAIrrB,EAAQqrB,GAAO,CAEf,IAAK,GADD5U,MACK3W,EAAI,EAAGA,EAAIurB,EAAKpuB,OAAQ6C,IAAK,CAClC,GAAIsS,GAAOhU,EAAUitB,EAAMvrB,EAAGurB,EAAKvrB,GAAIqZ,EAAM,IAAMtd,EAAKuC,UAAU,KAClEqY,GAAIxC,KAAKyX,EAASR,EAAQ9Y,GAE9B,MAAO,IAAMqE,EAAIiI,KAAK,KAAOgN,EAAS,IAGtC,IAA4B,IAAxBF,EAAKzuB,QAAQsuB,GAAc,CAC3B,GAAIF,EAAQ,MAAOtvB,GAAKuC,UAAU,YAClC,MAAM,IAAI4rB,WAAU,yCAEnBwB,EAAKvX,KAAKoX,EAIf,KAAK,GAFDzuB,GAAOivB,EAAWR,GAAMS,KAAKb,GAAOA,EAAII,IACxC5U,KACK3W,EAAI,EAAGA,EAAIlD,EAAKK,OAAQ6C,IAAK,CAClC,GAAIyE,GAAM3H,EAAKkD,GACX0E,EAAQpG,EAAUitB,EAAM9mB,EAAK8mB,EAAK9mB,GAAM4U,EAAM,EAElD,IAAI3U,EAAJ,CAEA,GAAIunB,GAAWlwB,EAAKuC,UAAUmG,GACxBonB,EACAnnB,CAENiS,GAAIxC,KAAKyX,EAASR,EAAQa,IAG9B,MADAP,GAAKjb,OAAOib,EAAKzuB,QAAQsuB,GAAO,GACzB,IAAM5U,EAAIiI,KAAK,KAAOgN,EAAS,OAEzCM,GAAIxX,GAAO,GAAIA,EAAK,GAG7B,IAAIxU,GAAUuH,MAAMvH,SAAW,SAAUisB,GACrC,MAA+B,sBAArBjkB,SAAS1M,KAAK2wB,IAGxBJ,EAAalvB,OAAOC,MAAQ,SAAU4X,GACtC,GAAI0X,GAAMvvB,OAAOa,UAAUyK,gBAAkB,WAAc,OAAO,GAC9DrL,IACJ,KAAK,GAAI2H,KAAOiQ,GACR0X,EAAI5wB,KAAKkZ,EAAKjQ,IAAM3H,EAAKqX,KAAK1P,EAEtC,OAAO3H,MAGRuvB,QAAU,KAAKC,IAAI,SAASlsB,EAAQtF,EAAOD,GAC9CA,EAAQsD,MAAQiC,EAAQ,eACxBvF,EAAQyD,UAAY8B,EAAQ,qBAEzBmsB,cAAc,GAAGC,kBAAkB,KAAKC,IAAI,SAASrsB,EAAQtF,EAAOD,GACvE,GAAI6xB,GACAC,EAWAC,EA4IAloB,EAtJAmoB,GACIC,IAAM,IACNC,KAAM,KACNC,IAAM,IACNzlB,EAAM,KACNjH,EAAM,KACNG,EAAM,KACNC,EAAM,KACNF,EAAM,MAIVpE,EAAQ,SAAUX,GAEd,MACI+C,KAAS,cACTsR,QAASrU,EACTixB,GAASA,EACTE,KAASA,IAIjBhD,EAAO,SAAUluB,GAWb,MATIA,IAAKA,IAAMixB,GACXvwB,EAAM,aAAeV,EAAI,iBAAmBixB,EAAK,KAMrDA,EAAKC,EAAKK,OAAOP,GACjBA,GAAM,EACCC,GAGX9W,EAAS,WAEL,GAAIA,GACAqX,EAAS,EAMb,KAJW,MAAPP,IACAO,EAAS,IACTtD,EAAK,MAEF+C,GAAM,KAAOA,GAAM,KACtBO,GAAUP,EACV/C,GAEJ,IAAW,MAAP+C,EAEA,IADAO,GAAU,IACHtD,KAAU+C,GAAM,KAAOA,GAAM,KAChCO,GAAUP,CAGlB,IAAW,MAAPA,GAAqB,MAAPA,EAOd,IANAO,GAAUP,EACV/C,IACW,MAAP+C,GAAqB,MAAPA,IACdO,GAAUP,EACV/C,KAEG+C,GAAM,KAAOA,GAAM,KACtBO,GAAUP,EACV/C,GAIR,IADA/T,GAAUqX,EACLC,SAAStX,GAGV,MAAOA,EAFPzZ,GAAM,eAMd8wB,EAAS,WAEL,GAAIE,GACAptB,EAEAqtB,EADAH,EAAS,EAIb,IAAW,MAAPP,EACA,KAAO/C,KAAQ,CACX,GAAW,MAAP+C,EAEA,MADA/C,KACOsD,CACJ,IAAW,OAAPP,EAEP,GADA/C,IACW,MAAP+C,EAAY,CAEZ,IADAU,EAAQ,EACHrtB,EAAI,EAAGA,EAAI,IACZotB,EAAME,SAAS1D,IAAQ,IAClBuD,SAASC,IAFCptB,GAAK,EAKpBqtB,EAAgB,GAARA,EAAaD,CAEzBF,IAAU/C,OAAOoD,aAAaF,OAC3B,CAAA,GAA2B,gBAAhBR,GAAQF,GAGtB,KAFAO,IAAUL,EAAQF,OAKtBO,IAAUP,EAItBvwB,EAAM,eAGVoxB,EAAQ,WAIJ,KAAOb,GAAMA,GAAM,KACf/C,KAIR6D,EAAO,WAIH,OAAQd,GACR,IAAK,IAKD,MAJA/C,GAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,MACE,CACX,KAAK,IAMD,MALAA,GAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,MACE,CACX,KAAK,IAKD,MAJAA,GAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,KACE,KAEXxtB,EAAM,eAAiBuwB,EAAK,MAKhCjX,EAAQ,WAIJ,GAAIA,KAEJ,IAAW,MAAPiX,EAAY,CAGZ,GAFA/C,EAAK,KACL4D,IACW,MAAPb,EAEA,MADA/C,GAAK,KACElU,CAEX,MAAOiX,GAAI,CAGP,GAFAjX,EAAMvB,KAAKzP,KACX8oB,IACW,MAAPb,EAEA,MADA/C,GAAK,KACElU,CAEXkU,GAAK,KACL4D,KAGRpxB,EAAM,cAGVuZ,EAAS,WAIL,GAAIlR,GACAkR,IAEJ,IAAW,MAAPgX,EAAY,CAGZ,GAFA/C,EAAK,KACL4D,IACW,MAAPb,EAEA,MADA/C,GAAK,KACEjU,CAEX,MAAOgX,GAAI,CASP,GARAloB,EAAMyoB,IACNM,IACA5D,EAAK,KACD/sB,OAAOsL,eAAe3M,KAAKma,EAAQlR,IACnCrI,EAAM,kBAAoBqI,EAAM,KAEpCkR,EAAOlR,GAAOC,IACd8oB,IACW,MAAPb,EAEA,MADA/C,GAAK,KACEjU,CAEXiU,GAAK,KACL4D,KAGRpxB,EAAM,cAGdsI,GAAQ,WAMJ,OADA8oB,IACQb,GACR,IAAK,IACD,MAAOhX,IACX,KAAK,IACD,MAAOD,IACX,KAAK,IACD,MAAOwX,IACX,KAAK,IACD,MAAOrX,IACX,SACI,MAAO8W,IAAM,KAAOA,GAAM,IAAM9W,IAAW4X,MAOnD3yB,EAAOD,QAAU,SAAUuT,EAAQsf,GAC/B,GAAIzhB,EAiBJ,OAfA2gB,GAAOxe,EACPse,EAAK,EACLC,EAAK,IACL1gB,EAASvH,IACT8oB,IACIb,GACAvwB,EAAM,gBASgB,kBAAZsxB,GAA0B,QAASC,GAAKC,EAAQnpB,GAC1D,GAAIopB,GAAGjf,EAAGlK,EAAQkpB,EAAOnpB,EACzB,IAAIC,GAA0B,gBAAVA,GAChB,IAAKmpB,IAAKnpB,GACF7H,OAAOa,UAAUyK,eAAe3M,KAAKkJ,EAAOmpB,KAC5Cjf,EAAI+e,EAAKjpB,EAAOmpB,OACNhjB,KAAN+D,EACAlK,EAAMmpB,GAAKjf,QAEJlK,GAAMmpB,GAK7B,OAAOH,GAAQlyB,KAAKoyB,EAAQnpB,EAAKC,KAClCwnB,GAAIjgB,GAAS,IAAOA,QAGrB6hB,IAAI,SAAS1tB,EAAQtF,EAAOD,GAgBlC,QAASkzB,GAAMb,GAOX,MADAc,GAAUC,UAAY,EACfD,EAAUlkB,KAAKojB,GAAU,IAAMA,EAAOla,QAAQgb,EAAW,SAAUltB,GACtE,GAAIpF,GAAIgtB,EAAK5nB,EACb,OAAoB,gBAANpF,GAAiBA,EAC3B,OAAS,OAASoF,EAAEgU,WAAW,GAAG5M,SAAS,KAAK4J,OAAO,KAC1D,IAAM,IAAMob,EAAS,IAG9B,QAASxkB,GAAIjE,EAAKmpB,GAEd,GAAI5tB,GACA6tB,EACAjf,EACAzR,EAEA+wB,EADAC,EAAOC,EAEP1pB,EAAQkpB,EAAOnpB,EAenB,QAZIC,GAA0B,gBAAVA,IACY,kBAAjBA,GAAMonB,SACjBpnB,EAAQA,EAAMonB,OAAOrnB,IAKN,kBAAR4pB,KACP3pB,EAAQ2pB,EAAI7yB,KAAKoyB,EAAQnpB,EAAKC,UAInBA,IACX,IAAK,SACD,MAAOqpB,GAAMrpB,EAEjB,KAAK,SAED,MAAOyoB,UAASzoB,GAASylB,OAAOzlB,GAAS,MAE7C,KAAK,UACL,IAAK,OAID,MAAOylB,QAAOzlB,EAElB,KAAK,SACD,IAAKA,EAAO,MAAO,MAKnB,IAJA0pB,GAAOxC,EACPsC,KAG+C,mBAA3CrxB,OAAOa,UAAUwK,SAASgE,MAAMxH,GAA6B,CAE7D,IADAvH,EAASuH,EAAMvH,OACV6C,EAAI,EAAGA,EAAI7C,EAAQ6C,GAAK,EACzBkuB,EAAQluB,GAAK0I,EAAI1I,EAAG0E,IAAU,MASlC,OAJAkK,GAAuB,IAAnBsf,EAAQ/wB,OAAe,KAAOixB,EAC9B,MAAQA,EAAMF,EAAQtP,KAAK,MAAQwP,GAAO,KAAOD,EAAO,IACxD,IAAMD,EAAQtP,KAAK,KAAO,IAC9BwP,EAAMD,EACCvf,EAKX,GAAIyf,GAAsB,gBAARA,GAEd,IADAlxB,EAASkxB,EAAIlxB,OACR6C,EAAI,EAAGA,EAAI7C,EAAQ6C,GAAK,EAER,iBADjB6tB,EAAIQ,EAAIruB,MAEJ4O,EAAIlG,EAAImlB,EAAGnpB,KAEPwpB,EAAQ/Z,KAAK4Z,EAAMF,IAAMO,EAAM,KAAO,KAAOxf,OAOzD,KAAKif,IAAKnpB,GACF7H,OAAOa,UAAUyK,eAAe3M,KAAKkJ,EAAOmpB,KAC5Cjf,EAAIlG,EAAImlB,EAAGnpB,KAEPwpB,EAAQ/Z,KAAK4Z,EAAMF,IAAMO,EAAM,KAAO,KAAOxf,EAajE,OAJAA,GAAuB,IAAnBsf,EAAQ/wB,OAAe,KAAOixB,EAC9B,MAAQA,EAAMF,EAAQtP,KAAK,MAAQwP,GAAO,KAAOD,EAAO,IACxD,IAAMD,EAAQtP,KAAK,KAAO,IAC9BwP,EAAMD,EACCvf,GAzHf,GAEIwf,GACAxC,EAUAyC,EAZAL,EAAY,2HAGZtF,GACI4F,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACN5B,IAAM,MACNC,KAAM,OAkHdjyB,GAAOD,QAAU,SAAU6J,EAAO4mB,EAAUF,GACxC,GAAIprB,EAMJ,IALAouB,EAAM,GACNxC,EAAS,GAIY,gBAAVR,GACP,IAAKprB,EAAI,EAAGA,EAAIorB,EAAOprB,GAAK,EACxB4rB,GAAU,QAIQ,gBAAVR,KACZQ,EAASR,EAMb,IADAiD,EAAM/C,EACFA,GAAgC,kBAAbA,KACC,gBAAbA,IAAoD,gBAApBA,GAASnuB,QAChD,KAAM,IAAInB,OAAM,iBAKpB,OAAO0M,GAAI,IAAKwjB,GAAIxnB,UAGlBiqB,IAAI,SAASvuB,EAAQtF,EAAOD,IAClC,SAAWwF,IAET,SAAS1F,GAgEV,QAASyB,GAAMuX,GACd,KAAM,IAAIib,YAAWziB,EAAOwH,IAW7B,QAASO,GAAIwB,EAAOgV,GAGnB,IAFA,GAAIvtB,GAASuY,EAAMvY,OACf8O,KACG9O,KACN8O,EAAO9O,GAAUutB,EAAGhV,EAAMvY,GAE3B,OAAO8O,GAaR,QAAS4iB,GAAU3B,EAAQxC,GAC1B,GAAI3Y,GAAQmb,EAAOxjB,MAAM,KACrBuC,EAAS,EAWb,OAVI8F,GAAM5U,OAAS,IAGlB8O,EAAS8F,EAAM,GAAK,IACpBmb,EAASnb,EAAM,IAGhBmb,EAASA,EAAOla,QAAQ8b,EAAiB,KAGlC7iB,EADOiI,EADDgZ,EAAOxjB,MAAM,KACAghB,GAAI9L,KAAK,KAiBpC,QAASmQ,GAAW7B,GAMnB,IALA,GAGIxoB,GACAsqB,EAJAC,KACAC,EAAU,EACV/xB,EAAS+vB,EAAO/vB,OAGb+xB,EAAU/xB,GAChBuH,EAAQwoB,EAAOpY,WAAWoa,KACtBxqB,GAAS,OAAUA,GAAS,OAAUwqB,EAAU/xB,GAEnD6xB,EAAQ9B,EAAOpY,WAAWoa,KACF,QAAX,MAARF,GACJC,EAAO9a,OAAe,KAARzP,IAAkB,KAAe,KAARsqB,GAAiB,QAIxDC,EAAO9a,KAAKzP,GACZwqB,MAGDD,EAAO9a,KAAKzP,EAGd,OAAOuqB,GAWR,QAASE,GAAWzZ,GACnB,MAAOxB,GAAIwB,EAAO,SAAShR,GAC1B,GAAIuqB,GAAS,EAOb,OANIvqB,GAAQ,QACXA,GAAS,MACTuqB,GAAUG,EAAmB1qB,IAAU,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElBuqB,GAAUG,EAAmB1qB,KAE3Bka,KAAK,IAYT,QAASyQ,GAAaC,GACrB,MAAIA,GAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbC,EAcR,QAASC,GAAaC,EAAOC,GAG5B,MAAOD,GAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,GAQzD,QAASC,GAAMC,EAAOC,EAAWC,GAChC,GAAIjC,GAAI,CAGR,KAFA+B,EAAQE,EAAYC,EAAMH,EAAQI,GAAQJ,GAAS,EACnDA,GAASG,EAAMH,EAAQC,GACOD,EAAQK,EAAgBC,GAAQ,EAAGrC,GAAK0B,EACrEK,EAAQG,EAAMH,EAAQK,EAEvB,OAAOF,GAAMlC,GAAKoC,EAAgB,GAAKL,GAASA,EAAQO,IAUzD,QAASC,GAAOC,GAEf,GAEI1Z,GAIA2Z,EACA1J,EACAxX,EACAmhB,EACAC,EACA3C,EACA4B,EACAjvB,EAEAiwB,EAfAxB,KACAyB,EAAcL,EAAMlzB,OAEpB6C,EAAI,EACJS,EAAIkwB,EACJC,EAAOC,CAqBX,KALAP,EAAQD,EAAMS,YAAYC,GACtBT,EAAQ,IACXA,EAAQ,GAGJ1J,EAAI,EAAGA,EAAI0J,IAAS1J,EAEpByJ,EAAMvb,WAAW8R,IAAM,KAC1BxqB,EAAM,aAEP6yB,EAAO9a,KAAKkc,EAAMvb,WAAW8R,GAM9B,KAAKxX,EAAQkhB,EAAQ,EAAIA,EAAQ,EAAI,EAAGlhB,EAAQshB,GAAwC,CAOvF,IAAKH,EAAOvwB,EAAGwwB,EAAI,EAAG3C,EAAI0B,EAErBngB,GAASshB,GACZt0B,EAAM,iBAGPqzB,EAAQJ,EAAagB,EAAMvb,WAAW1F,OAElCqgB,GAASF,GAAQE,EAAQM,GAAOiB,EAAShxB,GAAKwwB,KACjDp0B,EAAM,YAGP4D,GAAKyvB,EAAQe,EACbhwB,EAAIqtB,GAAK+C,EAAOK,EAAQpD,GAAK+C,EAAOV,EAAOA,EAAOrC,EAAI+C,IAElDnB,EAAQjvB,GAfuCqtB,GAAK0B,EAmBxDkB,EAAalB,EAAO/uB,EAChBgwB,EAAIT,EAAMiB,EAASP,IACtBr0B,EAAM,YAGPo0B,GAAKC,CAIN9Z,GAAMsY,EAAO9xB,OAAS,EACtByzB,EAAOjB,EAAM3vB,EAAIuwB,EAAM5Z,EAAa,GAAR4Z,GAIxBR,EAAM/vB,EAAI2W,GAAOqa,EAASvwB,GAC7BrE,EAAM,YAGPqE,GAAKsvB,EAAM/vB,EAAI2W,GACf3W,GAAK2W,EAGLsY,EAAOxe,OAAOzQ,IAAK,EAAGS,GAIvB,MAAO0uB,GAAWF,GAUnB,QAASiC,GAAOb,GACf,GAAI5vB,GACAmvB,EACAuB,EACAC,EACAR,EACAhK,EACAnrB,EACA41B,EACAxD,EACArtB,EACA8wB,EAGAZ,EAEAa,EACAd,EACAe,EANAvC,IAoBJ,KAXAoB,EAAQtB,EAAWsB,GAGnBK,EAAcL,EAAMlzB,OAGpBsD,EAAIkwB,EACJf,EAAQ,EACRgB,EAAOC,EAGFjK,EAAI,EAAGA,EAAI8J,IAAe9J,GAC9B0K,EAAejB,EAAMzJ,IACF,KAClBqI,EAAO9a,KAAKib,EAAmBkC,GAejC,KAXAH,EAAiBC,EAAcnC,EAAO9xB,OAMlCi0B,GACHnC,EAAO9a,KAAK4c,GAINI,EAAiBT,GAAa,CAIpC,IAAKj1B,EAAIu1B,EAAQpK,EAAI,EAAGA,EAAI8J,IAAe9J,GAC1C0K,EAAejB,EAAMzJ,KACDnmB,GAAK6wB,EAAe71B,IACvCA,EAAI61B,EAcN,KARAC,EAAwBJ,EAAiB,EACrC11B,EAAIgF,EAAIsvB,GAAOiB,EAASpB,GAAS2B,IACpCn1B,EAAM,YAGPwzB,IAAUn0B,EAAIgF,GAAK8wB,EACnB9wB,EAAIhF,EAECmrB,EAAI,EAAGA,EAAI8J,IAAe9J,EAO9B,GANA0K,EAAejB,EAAMzJ,GAEjB0K,EAAe7wB,KAAOmvB,EAAQoB,GACjC50B,EAAM,YAGHk1B,GAAgB7wB,EAAG,CAEtB,IAAK4wB,EAAIzB,EAAO/B,EAAI0B,EACnB/uB,EAAIqtB,GAAK+C,EAAOK,EAAQpD,GAAK+C,EAAOV,EAAOA,EAAOrC,EAAI+C,IAClDS,EAAI7wB,GAFqCqtB,GAAK0B,EAKlDiC,EAAUH,EAAI7wB,EACdiwB,EAAalB,EAAO/uB,EACpByuB,EAAO9a,KACNib,EAAmBI,EAAahvB,EAAIgxB,EAAUf,EAAY,KAE3DY,EAAItB,EAAMyB,EAAUf,EAGrBxB,GAAO9a,KAAKib,EAAmBI,EAAa6B,EAAG,KAC/CT,EAAOjB,EAAMC,EAAO2B,EAAuBJ,GAAkBC,GAC7DxB,EAAQ,IACNuB,IAIFvB,IACAnvB,EAGH,MAAOwuB,GAAOrQ,KAAK,IAcpB,QAAS6S,GAAUpB,GAClB,MAAOxB,GAAUwB,EAAO,SAASnD,GAChC,MAAOwE,GAAc5nB,KAAKojB,GACvBkD,EAAOlD,EAAOpb,MAAM,GAAG6f,eACvBzE,IAeL,QAAS0E,GAAQvB,GAChB,MAAOxB,GAAUwB,EAAO,SAASnD,GAChC,MAAO2E,GAAc/nB,KAAKojB,GACvB,OAASgE,EAAOhE,GAChBA,IAvdL,GAAI4E,GAAgC,gBAAXj3B,IAAuBA,IAC9CA,EAAQk3B,UAAYl3B,EAClBm3B,EAA8B,gBAAVl3B,IAAsBA,IAC5CA,EAAOi3B,UAAYj3B,EACjBm3B,EAA8B,gBAAV5xB,IAAsBA,CAE7C4xB,GAAW5xB,SAAW4xB,GACtBA,EAAWC,SAAWD,GACtBA,EAAW/uB,OAAS+uB,IAEpBt3B,EAAOs3B,EAQR,IAAIE,GAiCJ1tB,EA9BAusB,EAAS,WAGTzB,EAAO,GACP0B,EAAO,EACPf,EAAO,GACPC,EAAO,GACPH,EAAO,IACPa,EAAc,GACdF,EAAW,IACXI,EAAY,IAGZW,EAAgB,QAChBG,EAAgB,eAChB/C,EAAkB,4BAGlB3iB,GACCimB,SAAY,kDACZC,YAAa,iDACbC,gBAAiB,iBAIlBrC,EAAgBV,EAAO0B,EACvBlB,EAAQwC,KAAKxC,MACbX,EAAqBjF,OAAOoD,YAyc5B,IA3BA4E,GAMCK,QAAW,QAQXC,MACCrC,OAAUrB,EACVmC,OAAU/B,GAEXiB,OAAUA,EACVc,OAAUA,EACVU,QAAWA,EACXH,UAAaA,GAOI,kBAAV12B,IACc,gBAAdA,GAAOC,KACdD,EAAOC,IAEPD,EAAO,WAAY,WAClB,MAAOo3B,SAEF,IAAIL,GAAeE,EACzB,GAAIl3B,EAAOD,SAAWi3B,EAErBE,EAAWn3B,QAAUs3B,MAGrB,KAAK1tB,IAAO0tB,GACXA,EAAShqB,eAAe1D,KAASqtB,EAAYrtB,GAAO0tB,EAAS1tB,QAK/D9J,GAAKw3B,SAAWA,GAGhBl3B,QAECO,KAAKP,SAAuB,KAAXoF,EAAyBA,EAAyB,mBAAT6C,MAAuBA,KAAyB,mBAAXgvB,QAAyBA,gBACrHQ,IAAI,SAAStyB,EAAQtF,EAAOD,GAsBlC,YAKA,SAASsN,GAAeuM,EAAKzU,GAC3B,MAAOpD,QAAOa,UAAUyK,eAAe3M,KAAKkZ,EAAKzU,GAGnDnF,EAAOD,QAAU,SAAS83B,EAAIC,EAAKC,EAAI/2B,GACrC82B,EAAMA,GAAO,IACbC,EAAKA,GAAM,GACX,IAAIne,KAEJ,IAAkB,gBAAPie,IAAiC,IAAdA,EAAGx1B,OAC/B,MAAOuX,EAITie,GAAKA,EAAGjpB,MAAMkpB,EAEd,IAAIE,GAAU,GACVh3B,IAAsC,gBAApBA,GAAQg3B,UAC5BA,EAAUh3B,EAAQg3B,QAGpB,IAAIle,GAAM+d,EAAGx1B,MAET21B,GAAU,GAAKle,EAAMke,IACvBle,EAAMke,EAGR,KAAK,GAAI9yB,GAAI,EAAGA,EAAI4U,IAAO5U,EAAG,CAC5B,GAEI+yB,GAAMC,EAAMnF,EAAGjf,EAFfud,EAAIwG,EAAG3yB,GAAGgT,QAfH,MAemB,OAC1BigB,EAAM9G,EAAElvB,QAAQ41B,EAGhBI,IAAO,GACTF,EAAO5G,EAAE+G,OAAO,EAAGD,GACnBD,EAAO7G,EAAE+G,OAAOD,EAAM,KAEtBF,EAAO5G,EACP6G,EAAO,IAGTnF,EAAIlV,mBAAmBoa,GACvBnkB,EAAI+J,mBAAmBqa,GAElB7qB,EAAeuM,EAAKmZ,GAEd3tB,EAAQwU,EAAImZ,IACrBnZ,EAAImZ,GAAG1Z,KAAKvF,GAEZ8F,EAAImZ,IAAMnZ,EAAImZ,GAAIjf,GAJlB8F,EAAImZ,GAAKjf,EAQb,MAAO8F,GAGT,IAAIxU,GAAUuH,MAAMvH,SAAW,SAAUizB,GACvC,MAA8C,mBAAvCt2B,OAAOa,UAAUwK,SAAS1M,KAAK23B,SAGlCC,IAAI,SAAShzB,EAAQtF,EAAOD,GAsBlC,YAgDA,SAASqZ,GAAKif,EAAI7yB,GAChB,GAAI6yB,EAAGjf,IAAK,MAAOif,GAAGjf,IAAI5T,EAE1B,KAAK,GADDsK,MACK5K,EAAI,EAAGA,EAAImzB,EAAGh2B,OAAQ6C,IAC7B4K,EAAIuJ,KAAK7T,EAAE6yB,EAAGnzB,GAAIA,GAEpB,OAAO4K,GApDT,GAAIyoB,GAAqB,SAASzkB,GAChC,aAAeA,IACb,IAAK,SACH,MAAOA,EAET,KAAK,UACH,MAAOA,GAAI,OAAS,OAEtB,KAAK,SACH,MAAOue,UAASve,GAAKA,EAAI,EAE3B,SACE,MAAO,IAIb9T,GAAOD,QAAU,SAAS6Z,EAAKke,EAAKC,EAAIr0B,GAOtC,MANAo0B,GAAMA,GAAO,IACbC,EAAKA,GAAM,IACC,OAARne,IACFA,MAAM7J,IAGW,gBAAR6J,GACFR,EAAI6X,EAAWrX,GAAM,SAASmZ,GACnC,GAAIyF,GAAK1a,mBAAmBya,EAAmBxF,IAAMgF,CACrD,OAAI3yB,GAAQwU,EAAImZ,IACP3Z,EAAIQ,EAAImZ,GAAI,SAASjf,GAC1B,MAAO0kB,GAAK1a,mBAAmBya,EAAmBzkB,MACjDgQ,KAAKgU,GAEDU,EAAK1a,mBAAmBya,EAAmB3e,EAAImZ,OAEvDjP,KAAKgU,GAILp0B,EACEoa,mBAAmBya,EAAmB70B,IAASq0B,EAC/Cja,mBAAmBya,EAAmB3e,IAF3B,GAKpB,IAAIxU,GAAUuH,MAAMvH,SAAW,SAAUizB,GACvC,MAA8C,mBAAvCt2B,OAAOa,UAAUwK,SAAS1M,KAAK23B,IAYpCpH,EAAalvB,OAAOC,MAAQ,SAAU4X,GACxC,GAAI9J,KACJ,KAAK,GAAInG,KAAOiQ,GACV7X,OAAOa,UAAUyK,eAAe3M,KAAKkZ,EAAKjQ,IAAMmG,EAAIuJ,KAAK1P,EAE/D,OAAOmG,SAGH2oB,IAAI,SAASnzB,EAAQtF,EAAOD,GAClC,YAEAA,GAAQu1B,OAASv1B,EAAQsD,MAAQiC,EAAQ,YACzCvF,EAAQq2B,OAASr2B,EAAQyD,UAAY8B,EAAQ,cAE1CozB,WAAW,GAAGC,WAAW,KAAKC,IAAI,SAAStzB,EAAQtF,EAAOD,GAsB7D,YAYA,SAAS84B,KACP14B,KAAK2X,SAAW,KAChB3X,KAAK24B,QAAU,KACf34B,KAAK44B,KAAO,KACZ54B,KAAK6X,KAAO,KACZ7X,KAAK64B,KAAO,KACZ74B,KAAK2O,SAAW,KAChB3O,KAAK4W,KAAO,KACZ5W,KAAK84B,OAAS,KACd94B,KAAK+4B,MAAQ,KACb/4B,KAAKg5B,SAAW,KAChBh5B,KAAK8X,KAAO,KACZ9X,KAAK4X,KAAO,KAwDd,QAASqhB,GAAS7lB,EAAK8lB,EAAkBC,GACvC,GAAI/lB,GAAOnS,EAAKsuB,SAASnc,IAAQA,YAAeslB,GAAK,MAAOtlB,EAE5D,IAAIxN,GAAI,GAAI8yB,EAEZ,OADA9yB,GAAE1C,MAAMkQ,EAAK8lB,EAAkBC,GACxBvzB,EAyQT,QAASwzB,GAAU3f,GAMjB,MADIxY,GAAKo4B,SAAS5f,KAAMA,EAAMwf,EAASxf,IACjCA,YAAeif,GACdjf,EAAIxP,SADuByuB,EAAIj2B,UAAUwH,OAAO1J,KAAKkZ,GA4D9D,QAAS6f,GAAWnmB,EAAQomB,GAC1B,MAAON,GAAS9lB,GAAQ,GAAO,GAAMpB,QAAQwnB,GAO/C,QAASC,GAAiBrmB,EAAQomB,GAChC,MAAKpmB,GACE8lB,EAAS9lB,GAAQ,GAAO,GAAMsmB,cAAcF,GAD/BA,EAvatB,GAAIrC,GAAW/xB,EAAQ,YACnBlE,EAAOkE,EAAQ,SAEnBvF,GAAQsD,MAAQ+1B,EAChBr5B,EAAQmS,QAAUunB,EAClB15B,EAAQ65B,cAAgBD,EACxB55B,EAAQqK,OAASmvB,EAEjBx5B,EAAQ84B,IAAMA,CAqBd,IAAIgB,GAAkB,oBAClBC,EAAc,WAGdC,EAAoB,qCAIpBC,GAAU,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAG/CC,GAAU,IAAK,IAAK,IAAK,KAAM,IAAK,KAAK1gB,OAAOygB,GAGhDE,GAAc,KAAM3gB,OAAO0gB,GAK3BE,GAAgB,IAAK,IAAK,IAAK,IAAK,KAAK5gB,OAAO2gB,GAChDE,GAAmB,IAAK,IAAK,KAK7BC,GACEC,YAAc,EACdC,eAAe,GAGjBC,GACEF,YAAc,EACdC,eAAe,GAGjBE,GACEC,MAAQ,EACRC,OAAS,EACTC,KAAO,EACPC,QAAU,EACVC,MAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,QAAQ,EACRC,WAAW,EACXC,SAAS,GAEXC,EAAc91B,EAAQ,cAU1BuzB,GAAIj2B,UAAUS,MAAQ,SAASkQ,EAAK8lB,EAAkBC,GACpD,IAAKl4B,EAAKo4B,SAASjmB,GACjB,KAAM,IAAI6b,WAAU,+CAAkD7b,GAMxE,IAAI8nB,GAAa9nB,EAAIpR,QAAQ,KACzBm5B,GACqB,IAAhBD,GAAqBA,EAAa9nB,EAAIpR,QAAQ,KAAQ,IAAM,IACjEo5B,EAAShoB,EAAI3E,MAAM0sB,EAEvBC,GAAO,GAAKA,EAAO,GAAGrjB,QADL,MACyB,KAC1C3E,EAAMgoB,EAAOzX,KAAKwX,EAElB,IAAIE,GAAOjoB,CAMX,IAFAioB,EAAOA,EAAKC,QAEPnC,GAA+C,IAA1B/lB,EAAI3E,MAAM,KAAKvM,OAAc,CAErD,GAAIq5B,GAAa3B,EAAkB4B,KAAKH,EACxC,IAAIE,EAeF,MAdAv7B,MAAK8X,KAAOujB,EACZr7B,KAAK4X,KAAOyjB,EACZr7B,KAAKg5B,SAAWuC,EAAW,GACvBA,EAAW,IACbv7B,KAAK84B,OAASyC,EAAW,GAEvBv7B,KAAK+4B,MADHG,EACW+B,EAAY/3B,MAAMlD,KAAK84B,OAAOb,OAAO,IAErCj4B,KAAK84B,OAAOb,OAAO,IAEzBiB,IACTl5B,KAAK84B,OAAS,GACd94B,KAAK+4B,UAEA/4B,KAIX,GAAIy7B,GAAQ/B,EAAgB8B,KAAKH,EACjC,IAAII,EAAO,CACTA,EAAQA,EAAM,EACd,IAAIC,GAAaD,EAAM/E,aACvB12B,MAAK2X,SAAW+jB,EAChBL,EAAOA,EAAKpD,OAAOwD,EAAMv5B,QAO3B,GAAIi3B,GAAqBsC,GAASJ,EAAK1tB,MAAM,wBAAyB,CACpE,GAAIgrB,GAAgC,OAAtB0C,EAAKpD,OAAO,EAAG,IACzBU,GAAa8C,GAASpB,EAAiBoB,KACzCJ,EAAOA,EAAKpD,OAAO,GACnBj4B,KAAK24B,SAAU,GAInB,IAAK0B,EAAiBoB,KACjB9C,GAAY8C,IAAUnB,EAAgBmB,IAAU,CAmBnD,IAAK,GADDE,IAAW,EACN52B,EAAI,EAAGA,EAAIk1B,EAAgB/3B,OAAQ6C,IAAK,CAC/C,GAAI62B,GAAMP,EAAKr5B,QAAQi4B,EAAgBl1B,KAC1B,IAAT62B,KAA4B,IAAbD,GAAkBC,EAAMD,KACzCA,EAAUC,GAKd,GAAIhD,GAAMiD,CAGRA,IAFe,IAAbF,EAEON,EAAKxF,YAAY,KAIjBwF,EAAKxF,YAAY,IAAK8F,IAKjB,IAAZE,IACFjD,EAAOyC,EAAKxkB,MAAM,EAAGglB,GACrBR,EAAOA,EAAKxkB,MAAMglB,EAAS,GAC3B77B,KAAK44B,KAAOlb,mBAAmBkb,IAIjC+C,GAAW,CACX,KAAK,GAAI52B,GAAI,EAAGA,EAAIi1B,EAAa93B,OAAQ6C,IAAK,CAC5C,GAAI62B,GAAMP,EAAKr5B,QAAQg4B,EAAaj1B,KACvB,IAAT62B,KAA4B,IAAbD,GAAkBC,EAAMD,KACzCA,EAAUC,IAGG,IAAbD,IACFA,EAAUN,EAAKn5B,QAEjBlC,KAAK6X,KAAOwjB,EAAKxkB,MAAM,EAAG8kB,GAC1BN,EAAOA,EAAKxkB,MAAM8kB,GAGlB37B,KAAK87B,YAIL97B,KAAK2O,SAAW3O,KAAK2O,UAAY,EAIjC,IAAIotB,GAAoC,MAArB/7B,KAAK2O,SAAS,IACe,MAA5C3O,KAAK2O,SAAS3O,KAAK2O,SAASzM,OAAS,EAGzC,KAAK65B,EAEH,IAAK,GADDC,GAAYh8B,KAAK2O,SAASF,MAAM,MAC3B1J,EAAI,EAAGgB,EAAIi2B,EAAU95B,OAAQ6C,EAAIgB,EAAGhB,IAAK,CAChD,GAAIgS,GAAOilB,EAAUj3B,EACrB,IAAKgS,IACAA,EAAKpJ,MAjLQ,0BAiLoB,CAEpC,IAAK,GADDsuB,GAAU,GACLtQ,EAAI,EAAGiH,EAAI7b,EAAK7U,OAAQypB,EAAIiH,EAAGjH,IAClC5U,EAAK8C,WAAW8R,GAAK,IAIvBsQ,GAAW,IAEXA,GAAWllB,EAAK4U,EAIpB,KAAKsQ,EAAQtuB,MA9LG,0BA8LyB,CACvC,GAAIuuB,GAAaF,EAAUnlB,MAAM,EAAG9R,GAChCo3B,EAAUH,EAAUnlB,MAAM9R,EAAI,GAC9Bq3B,EAAMrlB,EAAKpJ,MAhMH,+BAiMRyuB,KACFF,EAAWhjB,KAAKkjB,EAAI,IACpBD,EAAQE,QAAQD,EAAI,KAElBD,EAAQj6B,SACVm5B,EAAO,IAAMc,EAAQxY,KAAK,KAAO0X,GAEnCr7B,KAAK2O,SAAWutB,EAAWvY,KAAK,IAChC,SAMJ3jB,KAAK2O,SAASzM,OAjND,IAkNflC,KAAK2O,SAAW,GAGhB3O,KAAK2O,SAAW3O,KAAK2O,SAAS+nB,cAG3BqF,IAKH/7B,KAAK2O,SAAWuoB,EAASP,QAAQ32B,KAAK2O,UAGxC,IAAIjO,GAAIV,KAAK64B,KAAO,IAAM74B,KAAK64B,KAAO,GAClCyD,EAAIt8B,KAAK2O,UAAY,EACzB3O,MAAK6X,KAAOykB,EAAI57B,EAChBV,KAAK4X,MAAQ5X,KAAK6X,KAIdkkB,IACF/7B,KAAK2O,SAAW3O,KAAK2O,SAASspB,OAAO,EAAGj4B,KAAK2O,SAASzM,OAAS,GAC/C,MAAZm5B,EAAK,KACPA,EAAO,IAAMA,IAOnB,IAAKnB,EAAewB,GAKlB,IAAK,GAAI32B,GAAI,EAAGgB,EAAIg0B,EAAW73B,OAAQ6C,EAAIgB,EAAGhB,IAAK,CACjD,GAAIw3B,GAAKxC,EAAWh1B,EACpB,KAA0B,IAAtBs2B,EAAKr5B,QAAQu6B,GAAjB,CAEA,GAAIC,GAAM7e,mBAAmB4e,EACzBC,KAAQD,IACVC,EAAMC,OAAOF,IAEflB,EAAOA,EAAK5sB,MAAM8tB,GAAI5Y,KAAK6Y,IAM/B,GAAI5lB,GAAOykB,EAAKr5B,QAAQ,MACV,IAAV4U,IAEF5W,KAAK4W,KAAOykB,EAAKpD,OAAOrhB,GACxBykB,EAAOA,EAAKxkB,MAAM,EAAGD,GAEvB,IAAI8lB,GAAKrB,EAAKr5B,QAAQ,IAoBtB,KAnBY,IAAR06B,GACF18B,KAAK84B,OAASuC,EAAKpD,OAAOyE,GAC1B18B,KAAK+4B,MAAQsC,EAAKpD,OAAOyE,EAAK,GAC1BxD,IACFl5B,KAAK+4B,MAAQkC,EAAY/3B,MAAMlD,KAAK+4B,QAEtCsC,EAAOA,EAAKxkB,MAAM,EAAG6lB,IACZxD,IAETl5B,KAAK84B,OAAS,GACd94B,KAAK+4B,UAEHsC,IAAMr7B,KAAKg5B,SAAWqC,GACtBf,EAAgBoB,IAChB17B,KAAK2O,WAAa3O,KAAKg5B,WACzBh5B,KAAKg5B,SAAW,KAIdh5B,KAAKg5B,UAAYh5B,KAAK84B,OAAQ,CAChC,GAAIp4B,GAAIV,KAAKg5B,UAAY,GACrBtzB,EAAI1F,KAAK84B,QAAU,EACvB94B,MAAK8X,KAAOpX,EAAIgF,EAKlB,MADA1F,MAAK4X,KAAO5X,KAAKiK,SACVjK,MAcT04B,EAAIj2B,UAAUwH,OAAS,WACrB,GAAI2uB,GAAO54B,KAAK44B,MAAQ,EACpBA,KACFA,EAAOjb,mBAAmBib,GAC1BA,EAAOA,EAAK7gB,QAAQ,OAAQ,KAC5B6gB,GAAQ,IAGV,IAAIjhB,GAAW3X,KAAK2X,UAAY,GAC5BqhB,EAAWh5B,KAAKg5B,UAAY,GAC5BpiB,EAAO5W,KAAK4W,MAAQ,GACpBiB,GAAO,EACPkhB,EAAQ,EAER/4B,MAAK6X,KACPA,EAAO+gB,EAAO54B,KAAK6X,KACV7X,KAAK2O,WACdkJ,EAAO+gB,IAAwC,IAAhC54B,KAAK2O,SAAS3M,QAAQ,KACjChC,KAAK2O,SACL,IAAM3O,KAAK2O,SAAW,KACtB3O,KAAK64B,OACPhhB,GAAQ,IAAM7X,KAAK64B,OAInB74B,KAAK+4B,OACL93B,EAAKsuB,SAASvvB,KAAK+4B,QACnBn3B,OAAOC,KAAK7B,KAAK+4B,OAAO72B,SAC1B62B,EAAQkC,EAAY53B,UAAUrD,KAAK+4B,OAGrC,IAAID,GAAS94B,KAAK84B,QAAWC,GAAU,IAAMA,GAAW,EAsBxD,OApBIphB,IAAoC,MAAxBA,EAASsgB,QAAQ,KAAYtgB,GAAY,KAIrD3X,KAAK24B,WACHhhB,GAAY2iB,EAAgB3iB,MAAuB,IAATE,GAC9CA,EAAO,MAAQA,GAAQ,IACnBmhB,GAAmC,MAAvBA,EAAShH,OAAO,KAAYgH,EAAW,IAAMA,IACnDnhB,IACVA,EAAO,IAGLjB,GAA2B,MAAnBA,EAAKob,OAAO,KAAYpb,EAAO,IAAMA,GAC7CkiB,GAA+B,MAArBA,EAAO9G,OAAO,KAAY8G,EAAS,IAAMA,GAEvDE,EAAWA,EAASjhB,QAAQ,QAAS,SAASpK,GAC5C,MAAOgQ,oBAAmBhQ,KAE5BmrB,EAASA,EAAO/gB,QAAQ,IAAK,OAEtBJ,EAAWE,EAAOmhB,EAAWF,EAASliB,GAO/C8hB,EAAIj2B,UAAUsP,QAAU,SAASwnB,GAC/B,MAAOv5B,MAAKy5B,cAAcR,EAASM,GAAU,GAAO,IAAOtvB,UAQ7DyuB,EAAIj2B,UAAUg3B,cAAgB,SAASF,GACrC,GAAIt4B,EAAKo4B,SAASE,GAAW,CAC3B,GAAIoD,GAAM,GAAIjE,EACdiE,GAAIz5B,MAAMq2B,GAAU,GAAO,GAC3BA,EAAWoD,EAKb,IAAK,GAFD3rB,GAAS,GAAI0nB,GACbkE,EAAQh7B,OAAOC,KAAK7B,MACf68B,EAAK,EAAGA,EAAKD,EAAM16B,OAAQ26B,IAAM,CACxC,GAAIC,GAAOF,EAAMC,EACjB7rB,GAAO8rB,GAAQ98B,KAAK88B,GAQtB,GAHA9rB,EAAO4F,KAAO2iB,EAAS3iB,KAGD,KAAlB2iB,EAAS3hB,KAEX,MADA5G,GAAO4G,KAAO5G,EAAO/G,SACd+G,CAIT,IAAIuoB,EAASZ,UAAYY,EAAS5hB,SAAU,CAG1C,IAAK,GADDolB,GAAQn7B,OAAOC,KAAK03B,GACfyD,EAAK,EAAGA,EAAKD,EAAM76B,OAAQ86B,IAAM,CACxC,GAAIC,GAAOF,EAAMC,EACJ,cAATC,IACFjsB,EAAOisB,GAAQ1D,EAAS0D,IAU5B,MANI3C,GAAgBtpB,EAAO2G,WACvB3G,EAAOrC,WAAaqC,EAAOgoB,WAC7BhoB,EAAO8G,KAAO9G,EAAOgoB,SAAW,KAGlChoB,EAAO4G,KAAO5G,EAAO/G,SACd+G,EAGT,GAAIuoB,EAAS5hB,UAAY4hB,EAAS5hB,WAAa3G,EAAO2G,SAAU,CAS9D,IAAK2iB,EAAgBf,EAAS5hB,UAAW,CAEvC,IAAK,GADD9V,GAAOD,OAAOC,KAAK03B,GACd5lB,EAAI,EAAGA,EAAI9R,EAAKK,OAAQyR,IAAK,CACpC,GAAIif,GAAI/wB,EAAK8R,EACb3C,GAAO4hB,GAAK2G,EAAS3G,GAGvB,MADA5hB,GAAO4G,KAAO5G,EAAO/G,SACd+G,EAIT,GADAA,EAAO2G,SAAW4hB,EAAS5hB,SACtB4hB,EAAS1hB,MAASwiB,EAAiBd,EAAS5hB,UAS/C3G,EAAOgoB,SAAWO,EAASP,aAT+B,CAE1D,IADA,GAAIkE,IAAW3D,EAASP,UAAY,IAAIvqB,MAAM,KACvCyuB,EAAQh7B,UAAYq3B,EAAS1hB,KAAOqlB,EAAQC,WAC9C5D,EAAS1hB,OAAM0hB,EAAS1hB,KAAO,IAC/B0hB,EAAS5qB,WAAU4qB,EAAS5qB,SAAW,IACzB,KAAfuuB,EAAQ,IAAWA,EAAQb,QAAQ,IACnCa,EAAQh7B,OAAS,GAAGg7B,EAAQb,QAAQ,IACxCrrB,EAAOgoB,SAAWkE,EAAQvZ,KAAK,KAWjC,GAPA3S,EAAO8nB,OAASS,EAAST,OACzB9nB,EAAO+nB,MAAQQ,EAASR,MACxB/nB,EAAO6G,KAAO0hB,EAAS1hB,MAAQ,GAC/B7G,EAAO4nB,KAAOW,EAASX,KACvB5nB,EAAOrC,SAAW4qB,EAAS5qB,UAAY4qB,EAAS1hB,KAChD7G,EAAO6nB,KAAOU,EAASV,KAEnB7nB,EAAOgoB,UAAYhoB,EAAO8nB,OAAQ,CACpC,GAAIp4B,GAAIsQ,EAAOgoB,UAAY,GACvBtzB,EAAIsL,EAAO8nB,QAAU,EACzB9nB,GAAO8G,KAAOpX,EAAIgF,EAIpB,MAFAsL,GAAO2nB,QAAU3nB,EAAO2nB,SAAWY,EAASZ,QAC5C3nB,EAAO4G,KAAO5G,EAAO/G,SACd+G,EAGT,GAAIosB,GAAepsB,EAAOgoB,UAA0C,MAA9BhoB,EAAOgoB,SAAShH,OAAO,GACzDqL,EACI9D,EAAS1hB,MACT0hB,EAASP,UAA4C,MAAhCO,EAASP,SAAShH,OAAO,GAElDsL,EAAcD,GAAYD,GACXpsB,EAAO6G,MAAQ0hB,EAASP,SACvCuE,EAAgBD,EAChBE,EAAUxsB,EAAOgoB,UAAYhoB,EAAOgoB,SAASvqB,MAAM,SACnDyuB,EAAU3D,EAASP,UAAYO,EAASP,SAASvqB,MAAM,SACvDgvB,EAAYzsB,EAAO2G,WAAa2iB,EAAgBtpB,EAAO2G,SA2B3D,IApBI8lB,IACFzsB,EAAOrC,SAAW,GAClBqC,EAAO6nB,KAAO,KACV7nB,EAAO6G,OACU,KAAf2lB,EAAQ,GAAWA,EAAQ,GAAKxsB,EAAO6G,KACtC2lB,EAAQnB,QAAQrrB,EAAO6G,OAE9B7G,EAAO6G,KAAO,GACV0hB,EAAS5hB,WACX4hB,EAAS5qB,SAAW,KACpB4qB,EAASV,KAAO,KACZU,EAAS1hB,OACQ,KAAfqlB,EAAQ,GAAWA,EAAQ,GAAK3D,EAAS1hB,KACxCqlB,EAAQb,QAAQ9C,EAAS1hB,OAEhC0hB,EAAS1hB,KAAO,MAElBylB,EAAaA,IAA8B,KAAfJ,EAAQ,IAA4B,KAAfM,EAAQ,KAGvDH,EAEFrsB,EAAO6G,KAAQ0hB,EAAS1hB,MAA0B,KAAlB0hB,EAAS1hB,KAC3B0hB,EAAS1hB,KAAO7G,EAAO6G,KACrC7G,EAAOrC,SAAY4qB,EAAS5qB,UAAkC,KAAtB4qB,EAAS5qB,SAC/B4qB,EAAS5qB,SAAWqC,EAAOrC,SAC7CqC,EAAO8nB,OAASS,EAAST,OACzB9nB,EAAO+nB,MAAQQ,EAASR,MACxByE,EAAUN,MAEL,IAAIA,EAAQh7B,OAGZs7B,IAASA,MACdA,EAAQpd,MACRod,EAAUA,EAAQpkB,OAAO8jB,GACzBlsB,EAAO8nB,OAASS,EAAST,OACzB9nB,EAAO+nB,MAAQQ,EAASR,UACnB,KAAK93B,EAAKy8B,kBAAkBnE,EAAST,QAAS,CAInD,GAAI2E,EAAW,CACbzsB,EAAOrC,SAAWqC,EAAO6G,KAAO2lB,EAAQL,OAIxC,IAAIQ,MAAa3sB,EAAO6G,MAAQ7G,EAAO6G,KAAK7V,QAAQ,KAAO,IAC1CgP,EAAO6G,KAAKpJ,MAAM,IAC/BkvB,KACF3sB,EAAO4nB,KAAO+E,EAAWR,QACzBnsB,EAAO6G,KAAO7G,EAAOrC,SAAWgvB,EAAWR,SAW/C,MARAnsB,GAAO8nB,OAASS,EAAST,OACzB9nB,EAAO+nB,MAAQQ,EAASR,MAEnB93B,EAAK28B,OAAO5sB,EAAOgoB,WAAc/3B,EAAK28B,OAAO5sB,EAAO8nB,UACvD9nB,EAAO8G,MAAQ9G,EAAOgoB,SAAWhoB,EAAOgoB,SAAW,KACpChoB,EAAO8nB,OAAS9nB,EAAO8nB,OAAS,KAEjD9nB,EAAO4G,KAAO5G,EAAO/G,SACd+G,EAGT,IAAKwsB,EAAQt7B,OAWX,MARA8O,GAAOgoB,SAAW,KAEdhoB,EAAO8nB,OACT9nB,EAAO8G,KAAO,IAAM9G,EAAO8nB,OAE3B9nB,EAAO8G,KAAO,KAEhB9G,EAAO4G,KAAO5G,EAAO/G,SACd+G,CAcT,KAAK,GARD6sB,GAAOL,EAAQ3mB,OAAO,GAAG,GACzBinB,GACC9sB,EAAO6G,MAAQ0hB,EAAS1hB,MAAQ2lB,EAAQt7B,OAAS,KACxC,MAAT27B,GAAyB,OAATA,IAA2B,KAATA,EAInCzgB,EAAK,EACArY,EAAIy4B,EAAQt7B,OAAQ6C,GAAK,EAAGA,IACnC84B,EAAOL,EAAQz4B,GACF,MAAT84B,EACFL,EAAQhoB,OAAOzQ,EAAG,GACA,OAAT84B,GACTL,EAAQhoB,OAAOzQ,EAAG,GAClBqY,KACSA,IACTogB,EAAQhoB,OAAOzQ,EAAG,GAClBqY,IAKJ,KAAKkgB,IAAeC,EAClB,KAAOngB,IAAMA,EACXogB,EAAQnB,QAAQ,OAIhBiB,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGxL,OAAO,IACpCwL,EAAQnB,QAAQ,IAGdyB,GAAsD,MAAjCN,EAAQ7Z,KAAK,KAAKsU,QAAQ,IACjDuF,EAAQtkB,KAAK,GAGf,IAAI6kB,GAA4B,KAAfP,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGxL,OAAO,EAGrC,IAAIyL,EAAW,CACbzsB,EAAOrC,SAAWqC,EAAO6G,KAAOkmB,EAAa,GACbP,EAAQt7B,OAASs7B,EAAQL,QAAU,EAInE,IAAIQ,MAAa3sB,EAAO6G,MAAQ7G,EAAO6G,KAAK7V,QAAQ,KAAO,IAC1CgP,EAAO6G,KAAKpJ,MAAM,IAC/BkvB,KACF3sB,EAAO4nB,KAAO+E,EAAWR,QACzBnsB,EAAO6G,KAAO7G,EAAOrC,SAAWgvB,EAAWR,SAyB/C,MArBAG,GAAaA,GAAetsB,EAAO6G,MAAQ2lB,EAAQt7B,OAE/Co7B,IAAeS,GACjBP,EAAQnB,QAAQ,IAGbmB,EAAQt7B,OAIX8O,EAAOgoB,SAAWwE,EAAQ7Z,KAAK,MAH/B3S,EAAOgoB,SAAW,KAClBhoB,EAAO8G,KAAO,MAMX7W,EAAK28B,OAAO5sB,EAAOgoB,WAAc/3B,EAAK28B,OAAO5sB,EAAO8nB,UACvD9nB,EAAO8G,MAAQ9G,EAAOgoB,SAAWhoB,EAAOgoB,SAAW,KACpChoB,EAAO8nB,OAAS9nB,EAAO8nB,OAAS,KAEjD9nB,EAAO4nB,KAAOW,EAASX,MAAQ5nB,EAAO4nB,KACtC5nB,EAAO2nB,QAAU3nB,EAAO2nB,SAAWY,EAASZ,QAC5C3nB,EAAO4G,KAAO5G,EAAO/G,SACd+G,GAGT0nB,EAAIj2B,UAAUq5B,UAAY,WACxB,GAAIjkB,GAAO7X,KAAK6X,KACZghB,EAAOc,EAAY6B,KAAK3jB,EACxBghB,KACFA,EAAOA,EAAK,GACC,MAATA,IACF74B,KAAK64B,KAAOA,EAAKZ,OAAO,IAE1BpgB,EAAOA,EAAKogB,OAAO,EAAGpgB,EAAK3V,OAAS22B,EAAK32B,SAEvC2V,IAAM7X,KAAK2O,SAAWkJ,MAGzBtH,SAAS,GAAG2mB,SAAW,GAAG+D,YAAc,KAAK+C,IAAI,SAAS74B,EAAQtF,EAAOD,GAC5E,YAEAC,GAAOD,SACLy5B,SAAU,SAAS4E,GACjB,MAAuB,gBAAV,IAEf1O,SAAU,SAAS0O,GACjB,MAAuB,gBAAV,IAA8B,OAARA,GAErCL,OAAQ,SAASK,GACf,MAAe,QAARA,GAETP,kBAAmB,SAASO,GAC1B,MAAc,OAAPA,SAIL15B,KAAO,SAASY,EAAQtF,EAAOD,GACrC,YA0BA,SAASs+B,GAAuBzwB,GAC9B,MAAO0wB,GAAkBtvB,KAAKpB,GAWhC,QAASrL,GAAI8D,GAiDX,QAAStB,GAASw5B,EAAc36B,GAC9B,GAAIkQ,EACJ,IAA2B,gBAAhByqB,IAET,KADAzqB,EAAI0qB,EAAUD,IACN,KAAM,IAAIr9B,OAAM,8BAAgCq9B,EAAe,SAClE,CACL,GAAIv1B,GAAYC,EAAWs1B,EAC3BzqB,GAAI9K,EAAUjE,UAAYsR,EAASrN,GAGrC,GAAIia,GAAQnP,EAAElQ,EACd,QAAiB,IAAbkQ,EAAEpC,OACuB,KAApBtJ,EAAKtB,MAAMN,MAAeyM,EAAGgQ,GAASA,GAC/C7a,EAAKiJ,OAASyC,EAAEzC,OACT4R,GAUT,QAASne,GAAQL,EAAQg6B,GACvB,GAAIz1B,GAAYC,EAAWxE,MAAQsL,GAAW0uB,EAC9C,OAAOz1B,GAAUjE,UAAYsR,EAASrN,GAWxC,QAASL,GAAUlE,EAAQkF,EAAK+0B,EAAiBD,GAC/C,GAAI9xB,MAAMvH,QAAQX,GAChB,IAAK,GAAIS,GAAE,EAAGA,EAAET,EAAOpC,OAAQ6C,IAAKyD,EAAUlE,EAAOS,OAAI6K,GAAW2uB,EAAiBD,OAIvF90B,GAAMuI,EAAQwE,YAAY/M,GAAOlF,EAAOjE,IACxCm+B,EAAYh1B,GACZvB,EAAKM,SAASiB,GAAOV,EAAWxE,EAAQi6B,EAAiBD,GAAO,GAWlE,QAAS5Q,GAAcppB,EAAQkF,EAAKi1B,GAClCj2B,EAAUlE,EAAQkF,EAAKi1B,GAAgB,GAUzC,QAAS/5B,GAAeJ,EAAQo6B,GAC9B,GAAIngB,GAAUja,EAAOia,SAAWtW,EAAKtB,MAAMg4B,aAAeA,IACtDC,EAAmB32B,EAAKmN,SAAStG,GACrC7G,GAAKmN,SAAStG,IAAiC,kBAApB8vB,GACLV,EACAC,CACtB,IAAIrb,EACJ,KAAMA,EAAQle,EAAS2Z,EAASja,GAChC,QAAU2D,EAAKmN,SAAStG,IAAM8vB,EAC9B,IAAK9b,GAAS4b,EAAiB,CAC7B,GAAI7pB,GAAU,sBAAwBC,GACtC,IAAiC,OAA7B7M,EAAKtB,MAAMjC,eACV,KAAM,IAAI3D,OAAM8T,EADmBzT,SAAQD,MAAM0T,GAGxD,MAAOiO,GAIT,QAAS6b,KACP,GAAIlR,GAAOxlB,EAAKtB,MAAM8mB,IAMtB,OALAxlB,GAAKtB,MAAMg4B,YAA6B,gBAARlR,GACJA,EAAKptB,IAAMotB,EACXxlB,EAAKtB,MAAMmY,GACTA,EAAG6O,eACHA,EACvB1lB,EAAKtB,MAAMg4B,YASpB,QAASN,GAAUQ,GACjB,GAAIh2B,GAAYi2B,EAAcD,EAC9B,cAAeh2B,IACb,IAAK,SAAU,MAAOA,GAAUjE,UAAYsR,EAASrN,EACrD,KAAK,SAAU,MAAOw1B,GAAUx1B,EAChC,KAAK,YAAa,MAAOk2B,GAAmBF,IAKhD,QAASE,GAAmBz2B,GAC1B,GAAIqH,GAAMoC,EAAQzN,OAAO/D,KAAK0H,GAAQ3D,WAAcgE,EACpD,IAAIqH,EAAK,CACP,GAAIrL,GAASqL,EAAIrL,OACb5E,EAAOiQ,EAAIjQ,KACXmR,EAASlB,EAAIkB,OACb8C,EAAIqrB,EAAcz+B,KAAK0H,EAAM3D,EAAQ5E,MAAMkQ,GAAWiB,EAS1D,OARA5I,GAAKg3B,WAAW32B,GAAO,GAAI2N,IACzB3N,IAAKA,EACL42B,UAAU,EACV56B,OAAQA,EACR5E,KAAMA,EACNmR,OAAQA,EACRjM,SAAU+O,IAELA,GAKX,QAASmrB,GAAcD,GAErB,MADAA,GAAS9sB,EAAQwE,YAAYsoB,GACtB52B,EAAKM,SAASs2B,IAAW52B,EAAKI,MAAMw2B,IAAW52B,EAAKg3B,WAAWJ,GAWxE,QAASM,GAAaf,GACpB,GAAIA,YAAwBrxB,QAG1B,MAFAqyB,GAAkBn3B,EAAKM,SAAU61B,OACjCgB,GAAkBn3B,EAAKI,MAAO+1B,EAGhC,cAAeA,IACb,IAAK,YAIH,MAHAgB,GAAkBn3B,EAAKM,UACvB62B,EAAkBn3B,EAAKI,WACvBJ,GAAKqB,OAAOxF,OAEd,KAAK,SACH,GAAI+E,GAAYi2B,EAAcV,EAI9B,OAHIv1B,IAAWZ,EAAKqB,OAAOI,IAAIb,EAAUw2B,eAClCp3B,GAAKM,SAAS61B,cACdn2B,GAAKI,MAAM+1B,EAEpB,KAAK,SACH,GAAIiB,GAAU9qB,EAAgB6pB,EAC9Bn2B,GAAKqB,OAAOI,IAAI21B,EAChB,IAAIh/B,GAAK+9B,EAAa/9B,EAClBA,KACFA,EAAK0R,EAAQwE,YAAYlW,SAClB4H,GAAKM,SAASlI,SACd4H,GAAKI,MAAMhI,KAM1B,QAAS++B,GAAkBE,EAASrwB,GAClC,IAAK,GAAI4vB,KAAUS,GAAS,CAC1B,GAAIz2B,GAAYy2B,EAAQT,EACnBh2B,GAAU4kB,MAAUxe,IAASA,EAAMJ,KAAKgwB,KAC3C52B,EAAKqB,OAAOI,IAAIb,EAAUw2B,eACnBC,GAAQT,KAMrB,QAAS/1B,GAAWxE,EAAQm6B,EAAgBhR,EAAM8R,GAChD,GAAqB,gBAAVj7B,GAAoB,KAAM,IAAIvD,OAAM,0BAC/C,IAAIs+B,GAAU9qB,EAAgBjQ,GAC1Bk7B,EAASv3B,EAAKqB,OAAOvG,IAAIs8B,EAC7B,IAAIG,EAAQ,MAAOA,EAEnBD,GAAkBA,IAAgD,IAA7Bt3B,EAAKtB,MAAM84B,aAEhD,IAAIp/B,GAAK0R,EAAQwE,YAAYjS,EAAOjE,GAChCA,IAAMk/B,GAAiBf,EAAYn+B,EAEvC,IACIq/B,GADAC,GAA6C,IAA9B13B,EAAKtB,MAAMjC,iBAA6B+5B,CAEvDkB,MAAkBD,EAAgBp7B,EAAOjE,IAAMiE,EAAOjE,IAAMiE,EAAOia,UACrE7Z,EAAeJ,GAAQ,EAEzB,IAAIsM,GAAYmB,EAAQsG,IAAI9X,KAAK0H,EAAM3D,GAEnCuE,EAAY,GAAIoN,IAClB5V,GAAIA,EACJiE,OAAQA,EACRsM,UAAWA,EACXyuB,QAASA,EACT5R,KAAMA,GAQR,OALa,KAATptB,EAAG,IAAak/B,IAAiBt3B,EAAKI,MAAMhI,GAAMwI,GACtDZ,EAAKqB,OAAOC,IAAI81B,EAASx2B,GAErB82B,GAAgBD,GAAeh7B,EAAeJ,GAAQ,GAEnDuE,EAIT,QAASqN,GAASrN,EAAWnJ,GAgC3B,QAASoR,KACP,GAAI8uB,GAAY/2B,EAAUjE,SACtBoM,EAAS4uB,EAAU3uB,MAAM,KAAMhP,UAEnC,OADA6O,GAAaI,OAAS0uB,EAAU1uB,OACzBF,EAnCT,GAAInI,EAAUsM,UAOZ,MANAtM,GAAUjE,SAAWkM,EACrBA,EAAaxM,OAASuE,EAAUvE,OAChCwM,EAAaI,OAAS,KACtBJ,EAAapR,KAAOA,GAAcoR,GACF,IAA5BjI,EAAUvE,OAAOiN,SACnBT,EAAaS,QAAS,GACjBT,CAETjI,GAAUsM,WAAY,CAEtB,IAAI0qB,EACAh3B,GAAU4kB,OACZoS,EAAc53B,EAAKtB,MACnBsB,EAAKtB,MAAQsB,EAAK63B,UAGpB,IAAInsB,EACJ,KAAMA,EAAIqrB,EAAcz+B,KAAK0H,EAAMY,EAAUvE,OAAQ5E,EAAMmJ,EAAU+H,WACrE,QACE/H,EAAUsM,WAAY,EAClBtM,EAAU4kB,OAAMxlB,EAAKtB,MAAQk5B,GAOnC,MAJAh3B,GAAUjE,SAAW+O,EACrB9K,EAAUoK,KAAOU,EAAEV,KACnBpK,EAAUwJ,OAASsB,EAAEtB,OACrBxJ,EAAUnJ,KAAOiU,EAAEjU,KACZiU,EAkBT,QAASmB,GAAW5D,EAAQrQ,GAE1B,KADAqQ,EAASA,GAAUjJ,EAAKiJ,QACX,MAAO,WACpBrQ,GAAUA,KAKV,KAAK,GAJDk/B,OAAkCnwB,KAAtB/O,EAAQk/B,UAA0B,KAAOl/B,EAAQk/B,UAC7DzkB,MAA8B1L,KAApB/O,EAAQya,QAAwB,OAASza,EAAQya,QAE3DqW,EAAO,GACF5sB,EAAE,EAAGA,EAAEmM,EAAOhP,OAAQ6C,IAAK,CAClC,GAAIO,GAAI4L,EAAOnM,EACXO,KAAGqsB,GAAQrW,EAAUhW,EAAE06B,SAAW,IAAM16B,EAAEuP,QAAUkrB,GAE1D,MAAOpO,GAAK9a,MAAM,GAAIkpB,EAAU79B,QASlC,QAAS+9B,GAAU18B,EAAM0G,GACF,gBAAVA,KAAoBA,EAAS,GAAI8C,QAAO9C,IACnDhC,EAAKmN,SAAS7R,GAAQ0G,EA6BxB,QAASu0B,GAAYn+B,GACnB,GAAI4H,EAAKM,SAASlI,IAAO4H,EAAKI,MAAMhI,GAClC,KAAM,IAAIU,OAAM,0BAA4BV,EAAK,oBAlXrD,KAAML,eAAgBoC,IAAM,MAAO,IAAIA,GAAI8D,EAC3C,IAAI+B,GAAOjI,IAEXkG,GAAOlG,KAAK2G,MAAQ1F,EAAK2F,KAAKV,OAC9BlG,KAAKuI,YACLvI,KAAKqI,SACLrI,KAAKi/B,cACLj/B,KAAKoV,SAAWhI,EAAQlH,EAAK+D,QAC7BjK,KAAKsJ,OAASpD,EAAKg6B,OAAS,GAAI72B,GAChCrJ,KAAK2I,mBACL3I,KAAKkV,iBACLlV,KAAK8R,MAAQ6G,IAIb3Y,KAAK4E,SAAWA,EAChB5E,KAAK2E,QAAUA,EACf3E,KAAKwI,UAAYA,EACjBxI,KAAK0tB,cAAgBA,EACrB1tB,KAAK0E,eAAiBA,EACtB1E,KAAKq+B,UAAYA,EACjBr+B,KAAKm/B,aAAeA,EACpBn/B,KAAKigC,UAAYA,EACjBjgC,KAAK8U,WAAaA,EAElB9U,KAAK8I,WAAaA,EAClB9I,KAAKkW,SAAWA,EAEhBhQ,EAAK2gB,aAAe3gB,EAAK2gB,cAAgBtP,EAAAA,GACrCrR,EAAKG,OAASH,EAAKI,YAAWD,EAAM0C,MAAM7C,IACxB,IAAlBA,EAAKwK,WAAmBxK,EAAKwK,UAAayvB,YAAa,IACjC,YAAtBj6B,EAAKk6B,gBAA6Bl6B,EAAKwd,wBAAyB,GACpE1jB,KAAK8/B,UAsVL,WAEE,IAAK,GADDO,GAAWp/B,EAAK2F,KAAKqB,EAAKtB,OACrB5B,EAAE,EAAGA,EAAEu7B,EAAoBp+B,OAAQ6C,UACnCs7B,GAASC,EAAoBv7B,GACtC,OAAOs7B,MAxVLn6B,EAAKkH,SAsUT,WACE,IAAK,GAAI7J,KAAQ0E,GAAKtB,MAAMyG,QAE1B6yB,EAAU18B,EADG0E,EAAKtB,MAAMyG,QAAQ7J,OAnBpC,YAC0B,IAApB0E,EAAKtB,MAAM8mB,OAEbC,EADiBvoB,EAAQ,oCACCwoB,GAAgB,GAC1C1lB,EAAKI,MAAM,iCAAmCslB,MAvT9CznB,EAAK4Y,IAAIA,EAAG+O,OAAO7tB,MACC,gBAAbkG,GAAKunB,MAAkBC,EAAcxnB,EAAKunB,MA2TrD,WACE,GAAI8S,GAAct4B,EAAKtB,MAAM24B,OAC7B,IAAKiB,EACL,GAAI/zB,MAAMvH,QAAQs7B,GAAc/3B,EAAU+3B,OACrC,KAAK,GAAI/2B,KAAO+2B,GAAa/3B,EAAU+3B,EAAY/2B,GAAMA,MAzYlE,GAAIw1B,GAAgB75B,EAAQ,aACxB4M,EAAU5M,EAAQ,qBAClBkE,EAAQlE,EAAQ,WAChB8Q,EAAe9Q,EAAQ,wBACvBoP,EAAkBpP,EAAQ,yBAC1BiI,EAAUjI,EAAQ,qBAClBwT,EAAQxT,EAAQ,mBAChB2Z,EAAK3Z,EAAQ,QACblE,EAAOkE,EAAQ,kBACfkB,EAAQlB,EAAQ,WAChB2N,EAAK3N,EAAQ,KAEjBtF,GAAOD,QAAUwC,EAEjBA,EAAIK,UAAUkF,aAAetB,EAAM1B,OAEnC,IAAI67B,GAAgBr7B,EAAQ,YAC5B/C,GAAIK,UAAU2oB,WAAaoV,EAAc5U,IACzCxpB,EAAIK,UAAUgpB,WAAa+U,EAAcz9B,IACzCX,EAAIK,UAAUipB,cAAgB8U,EAAc3U,OAC5CzpB,EAAI4Q,gBAAkB7N,EAAQ,6BAE9B,IAAIwoB,GAAiB,yCACjBwQ,EAAoB,4CAKpBmC,GAAwB,mBAAoB,cAAe,iBAuY5DG,UAAU,EAAEC,UAAU,EAAEC,YAAY,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAEC,kBAAkB,EAAEC,uBAAuB,EAAE53B,iBAAiB,GAAG63B,6BAA6B,GAAGC,YAAY,GAAGC,mCAAmC,GAAGC,OAAO,GAAGruB,GAAK,GAAGiD,wBAAwB,aAAa,WAErQxV,KAAKX,EAAU,WAAa,MAAOI,WAI3D,SAASH,EAAQD,EAASM,GAE/B,YAGA,IAAIkhC,GAAclhC,EAAoB,GAClCmhC,EAAUnhC,EAAoB,GAC9BohC,EAAYphC,EAAoB,GAChCqhC,EAAcrhC,EAAoB,GAClCshC,EAAOthC,EAAoB,GAC3BuhC,EAAevhC,EAAoB,IACnCe,EAAOf,EAAoB,GAG3BoC,IAsBJA,GAAS0B,OAAS,SAAUpD,EAAWC,GACrC,IAAKD,EACH,KAAM,IAAIG,OAAM,iCAElBf,MAAKY,UAAYA,EACjBZ,KAAK0hC,OACL1hC,KAAK2hC,YAAc,GAAIP,GACvBphC,KAAK4hC,cAAYhyB,GACjB5P,KAAK6hC,gBACHC,UAEF9hC,KAAK0E,eAAiB,KACtB1E,KAAK+hC,cAEL/hC,KAAKswB,KAAO,KACZtwB,KAAKgiC,YAAc,KAEnBhiC,KAAKiiC,YAAYphC,GAEbb,KAAKa,QAAQqhC,SAAiC,SAAtBliC,KAAKa,QAAQ8B,OACvC3C,KAAKkiC,QAAU,GAAIb,GAAQrhC,OAG7BA,KAAKmiC,eACLniC,KAAKoiC,gBAMP9/B,EAASO,QAAU,WACb7C,KAAKqiC,OAASriC,KAAKY,WAAaZ,KAAKqiC,MAAMC,YAActiC,KAAKY,YAChEZ,KAAKY,UAAU2hC,YAAYviC,KAAKqiC,OAChCriC,KAAKqiC,MAAQ,MAEfriC,KAAKY,UAAY,KAEjBZ,KAAK0hC,IAAM,KAEX1hC,KAAK8D,QACL9D,KAAKswB,KAAO,KACZtwB,KAAKgiC,YAAc,KACnBhiC,KAAK4hC,UAAY,KACjB5hC,KAAK6hC,eAAiB,KACtB7hC,KAAK+hC,WAAa,KAClB/hC,KAAK0E,eAAiB,KACtB1E,KAAKwiC,mBAAqB,KAEtBxiC,KAAKkiC,UACPliC,KAAKkiC,QAAQr/B,UACb7C,KAAKkiC,QAAU,MAGbliC,KAAKyiC,YACPziC,KAAKyiC,UAAU5/B,UACf7C,KAAKyiC,UAAY,MAGfziC,KAAK0iC,eACP1iC,KAAK0iC,aAAa7/B,UAClB7C,KAAK0iC,aAAe,OASxBpgC,EAAS2/B,YAAc,SAAUphC,GAU/B,GATAb,KAAKa,SACHi4B,QAAQ,EACRoJ,SAAS,EACTv/B,KAAM,OACNY,SAAMqM,GACNtL,OAAQ,MAINzD,EACF,IAAK,GAAImE,KAAQnE,GACXA,EAAQqM,eAAelI,KACzBhF,KAAKa,QAAQmE,GAAQnE,EAAQmE,GAMnChF,MAAKqE,UAAUrE,KAAKa,QAAQyD,QAG5BtE,KAAKwiC,mBAAqBvhC,EAAK0hC,SAAS3iC,KAAK4E,SAASg+B,KAAK5iC,MAAOA,KAAK0C,oBASzEJ,EAASQ,IAAM,SAAUhC,EAAMyC,GAS7B,GAPIA,IAEFnC,QAAQC,KAAK,qEACbrB,KAAKa,QAAQ0C,KAAOA,GAIlBzC,YAAgBgG,eAAsB8I,KAAT9O,EAC/Bd,KAAK8D,YAEF,CACH9D,KAAK6iC,QAAQN,YAAYviC,KAAK8iC,MAG9B,IAAIC,IACFC,MAAOhjC,KAAKa,QAAQ0C,KACpBkG,MAAO3I,GAELwvB,EAAO,GAAIkR,GAAKxhC,KAAM+iC,EAC1B/iC,MAAKijC,SAAS3S,GAGdtwB,KAAK4E,UAIL5E,MAAKswB,KAAK4S,QADI,GAGdljC,KAAK6iC,QAAQM,YAAYnjC,KAAK8iC,OAI5B9iC,KAAKkiC,SACPliC,KAAKkiC,QAAQp+B,QAIX9D,KAAKyiC,WACPziC,KAAKyiC,UAAU3+B,SAQnBxB,EAASS,IAAM,WAEb,GAAI/C,KAAKgiC,YAAa,CACpB,GAAI1R,GAAOkR,EAAK4B,kBAAkBpjC,KAAKgiC,YACnC1R,IACFA,EAAK+S,OAIT,MAAIrjC,MAAKswB,KACAtwB,KAAKswB,KAAKgT,eAGjB,IAQJhhC,EAASa,QAAU,WACjB,MAAOC,MAAKC,UAAUrD,KAAK+C,QAO7BT,EAASU,QAAU,SAASC,GAC1BjD,KAAK8C,IAAI7B,EAAKiC,MAAMD,KAOtBX,EAASgB,QAAU,SAAUC,GAC3BvD,KAAKa,QAAQ0C,KAAOA,EAChBvD,KAAKswB,MACPtwB,KAAKswB,KAAKiT,YAAYvjC,KAAKa,QAAQ0C,OAQvCjB,EAASkB,QAAU,WACjB,MAAOxD,MAAKa,QAAQ0C,MAUtBjB,EAASkhC,MAAQ,WACf,GAAIpO,GAAQp1B,KAAK6iC,QAAQY,cAAc;0DACnCrO,GACFA,EAAMoO,QAECxjC,KAAKswB,KAAKoR,IAAIwB,OACrBljC,KAAKswB,KAAKoR,IAAIwB,OAAOM,QAEdxjC,KAAKswB,KAAKoR,IAAIgC,KACrB1jC,KAAKswB,KAAKoR,IAAIgC,KAAKF,SAInBpO,EAAQp1B,KAAKqiC,MAAMoB,cAAc,YAE/BrO,EAAMoO,SAQZlhC,EAASwB,MAAQ,WACX9D,KAAKswB,OACPtwB,KAAKswB,KAAKqT,WACV3jC,KAAK4jC,MAAMrB,YAAYviC,KAAKswB,KAAKuT,gBAC1B7jC,MAAKswB,OAShBhuB,EAAS2gC,SAAW,SAAU3S,GAC5BtwB,KAAK8D,QAEL9D,KAAKswB,KAAOA,EAGZtwB,KAAK4jC,MAAMT,YAAY7S,EAAKuT,WAe9BvhC,EAASw2B,OAAS,SAAUnH,GAC1B,GAAIjC,EAUJ,OATI1vB,MAAKswB,MACPtwB,KAAK6iC,QAAQN,YAAYviC,KAAK8iC,OAC9BpT,EAAU1vB,KAAKswB,KAAKwI,OAAOnH,GAC3B3xB,KAAK6iC,QAAQM,YAAYnjC,KAAK8iC,QAG9BpT,KAGKA,GAMTptB,EAASwhC,UAAY,WACf9jC,KAAKswB,OACPtwB,KAAK6iC,QAAQN,YAAYviC,KAAK8iC,OAC9B9iC,KAAKswB,KAAK4S,SACVljC,KAAK6iC,QAAQM,YAAYnjC,KAAK8iC,SAOlCxgC,EAASyhC,YAAc,WACjB/jC,KAAKswB,OACPtwB,KAAK6iC,QAAQN,YAAYviC,KAAK8iC,OAC9B9iC,KAAKswB,KAAKqT,WACV3jC,KAAK6iC,QAAQM,YAAYnjC,KAAK8iC,SAkBlCxgC,EAAS0hC,UAAY,SAAUC,EAAQlB,GAEjC/iC,KAAKkiC,SACPliC,KAAKkiC,QAAQtW,IAAIqY,EAAQlB,GAG3B/iC,KAAKkkC,aASP5hC,EAAS4hC,UAAY,WAKnB,GAHAlkC,KAAKwiC,qBAGDxiC,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOa,GACLjB,QAAQD,MAAM,+BAAgCkB,KASpDC,EAASsC,SAAW,WAEd5E,KAAK+hC,YACP/hC,KAAK+hC,WAAWjgC,QAAQ,SAAUwuB,GAChCA,EAAK6T,SAAS,OAIlB,IAAIzkC,GAAOM,KAAKswB,IAChB,IAAK5wB,EAAL,CAKA,GAAI0kC,GAAkB1kC,EAAKkF,WAGvBy/B,IACJ,IAAIrkC,KAAK0E,eAAgB,CACX1E,KAAK0E,eAAehF,EAAK4jC,cAGnCe,EAAerkC,KAAK0E,eAAewM,OAC9B+H,IAAI,SAAU9X,GACb,MAAOF,GAAKqjC,mBAAmBnjC,KAEhC8X,IAAI,SAAmB9X,GACtB,OACEmvB,KAAM5wB,EAAK6kC,SAASpjC,EAAM6+B,UAC1B7+B,MAAOA,KAGVqjC,OAAO,SAAkBC,GACxB,MAAqB,OAAdA,EAAMnU,QAMvBtwB,KAAK+hC,WAAaqC,EACbhrB,OAAOirB,GACPK,OAAO,SAAwB3rB,EAAK0rB,GAGnC,MAAOA,GAAMnU,KACRqU,cACA1rB,IAAI,SAAUyX,GACb,OACEJ,KAAMI,EACNkU,MAAOH,EAAMnU,KACbnvB,OACE0T,QAAyB,WAAhB6b,EAAOhY,KACV,8BACA,6BAIXU,OAAOL,GAAM0rB,SAGnBxrB,IAAI,SAAmBwrB,GAEtB,MADAA,GAAMnU,KAAK6T,SAASM,EAAMtjC,MAAOsjC,EAAMG,OAChCH,EAAMnU,SAOrBhuB,EAASuC,QAAU,WACb7E,KAAKswB,MACPtwB,KAAKswB,KAAKuU,WAAWC,SAAS,KASlCxiC,EAASyiC,gBAAkB,SAAUC,GACnC,GAAIC,GAAKjlC,KACL6iC,EAAU7iC,KAAK6iC,QACfqC,EAAMjkC,EAAKkkC,eAAetC,GAC1BuC,EAASvC,EAAQwC,aACjBC,EAASJ,EAAME,CAIdJ,GAASE,EAHD,IAGkBrC,EAAQ0C,UAAY,EACjDvlC,KAAKwlC,gBAAmBN,EAJb,GAI6BF,GAAU,EAE3CA,EAASM,EANL,IAOTF,EAASvC,EAAQ0C,UAAY1C,EAAQ4C,aACvCzlC,KAAKwlC,gBAAmBF,EARb,GAQgCN,GAAU,EAGrDhlC,KAAKwlC,mBAAiB51B,GAGpB5P,KAAKwlC,eACFxlC,KAAK0lC,kBACR1lC,KAAK0lC,gBAAkBC,YAAY,WAC7BV,EAAGO,eACL3C,EAAQ0C,WAAaN,EAAGO,eAGxBP,EAAGW,kBApBI,KA0Bb5lC,KAAK4lC,kBAOTtjC,EAASsjC,eAAiB,WACpB5lC,KAAK0lC,kBACPG,aAAa7lC,KAAK0lC,uBACX1lC,MAAK0lC,iBAEV1lC,KAAKwlC,sBACAxlC,MAAKwlC,gBAehBljC,EAASwjC,aAAe,SAAUlE,GAC3BA,IAID,aAAeA,IAAa5hC,KAAK6iC,UAEnC7iC,KAAK6iC,QAAQ0C,UAAY3D,EAAU2D,WAEjC3D,EAAUE,OAEZ9hC,KAAK+lC,OAAOnE,EAAUE,OAEpBF,EAAUoE,OACZ/kC,EAAKglC,mBAAmBrE,EAAUoE,OAEhCpE,EAAUF,KACZE,EAAUF,IAAI8B,UAalBlhC,EAAS4jC,aAAe,WACtB,GAAIF,GAAQ/kC,EAAKklC,oBAKjB,OAJIH,IAAsC,QAA7BA,EAAMplC,UAAUwlC,WAC3BJ,EAAQ,OAIRtE,IAAK1hC,KAAKgiC,YACVgE,MAAOA,EACPlE,MAAO9hC,KAAK6hC,eAAeC,MAAMjrB,MAAM,GACvC0uB,UAAWvlC,KAAK6iC,QAAU7iC,KAAK6iC,QAAQ0C,UAAY,IAavDjjC,EAAS+jC,SAAW,SAAUnB,EAAKt9B,GACjC,GAAIi7B,GAAU7iC,KAAK6iC,OACnB,IAAIA,EAAS,CACX,GAAIyD,GAAStmC,IAETsmC,GAAOC,iBACTV,aAAaS,EAAOC,sBACbD,GAAOC,gBAEZD,EAAOE,kBACTF,EAAOE,iBAAgB,SAChBF,GAAOE,gBAIhB,IAAIpB,GAASvC,EAAQwC,aACjBC,EAASzC,EAAQ4C,aAAeL,EAChCqB,EAAiBnP,KAAKoP,IAAIpP,KAAKqP,IAAIzB,EAAME,EAAS,EAAG,GAAIE,GAGzDsB,EAAU,WACZ,GAAIrB,GAAY1C,EAAQ0C,UACpBsB,EAAQJ,EAAiBlB,CACzBjO,MAAKwP,IAAID,GAAQ,GACnBhE,EAAQ0C,WAAasB,EAAO,EAC5BP,EAAOE,gBAAkB5+B,EACzB0+B,EAAOC,eAAiBv+B,WAAW4+B,EAAS,MAIxCh/B,GACFA,GAAS,GAEXi7B,EAAQ0C,UAAYkB,QACbH,GAAOC,qBACPD,GAAOE,iBAGlBI,SAGIh/B,IACFA,GAAS,IASftF,EAAS6/B,aAAe,WAQtB,QAAS4E,GAAQC,GAGXV,EAAOW,UACTX,EAAOW,SAASD,GAVpBhnC,KAAKqiC,MAAQ6E,SAASC,cAAc,OACpCnnC,KAAKqiC,MAAM+E,UAAY,8BAAgCpnC,KAAKa,QAAQ8B,KACpE3C,KAAKY,UAAUuiC,YAAYnjC,KAAKqiC,MAGhC,IAAIiE,GAAStmC,IAQbA,MAAKqiC,MAAMgF,QAAU,SAAUL,GAC7B,GAAIM,GAASN,EAAMM,MAEnBP,GAAQC,GAIe,UAAnBM,EAAOlB,UACTY,EAAMO,kBAGVvnC,KAAKqiC,MAAMmF,QAAUT,EACrB/mC,KAAKqiC,MAAMoF,SAAWV,EACtB/mC,KAAKqiC,MAAMqF,UAAYX,EACvB/mC,KAAKqiC,MAAMsF,QAAUZ,EACrB/mC,KAAKqiC,MAAMuF,MAAQb,EACnB/mC,KAAKqiC,MAAMwF,QAAUd,EACrB/mC,KAAKqiC,MAAMyF,YAAcf,EACzB/mC,KAAKqiC,MAAM0F,UAAYhB,EACvB/mC,KAAKqiC,MAAM2F,YAAcjB,EACzB/mC,KAAKqiC,MAAM4F,WAAalB,EAIxB9lC,EAAKinC,iBAAiBloC,KAAKqiC,MAAO,QAAS0E,GAAS,GACpD9lC,EAAKinC,iBAAiBloC,KAAKqiC,MAAO,OAAQ0E,GAAS,GACnD/mC,KAAKqiC,MAAM8F,UAAYpB,EACvB/mC,KAAKqiC,MAAM+F,WAAarB,EAGxB/mC,KAAK0jC,KAAOwD,SAASC,cAAc,OACnCnnC,KAAK0jC,KAAK0D,UAAY,kBACtBpnC,KAAKqiC,MAAMc,YAAYnjC,KAAK0jC,KAG5B,IAAII,GAAYoD,SAASC,cAAc,SACvCrD,GAAUprB,KAAO,SACjBorB,EAAUsD,UAAY,wBACtBtD,EAAUvX,MAAQ,oBAClBuX,EAAUuD,QAAU,WAClBf,EAAOxC,aAET9jC,KAAK0jC,KAAKP,YAAYW,EAGtB,IAAIC,GAAcmD,SAASC,cAAc,SAUzC,IATApD,EAAYrrB,KAAO,SACnBqrB,EAAYxX,MAAQ,sBACpBwX,EAAYqD,UAAY,0BACxBrD,EAAYsD,QAAU,WACpBf,EAAOvC,eAET/jC,KAAK0jC,KAAKP,YAAYY,GAGlB/jC,KAAKkiC,QAAS,CAEhB,GAAImG,GAAOnB,SAASC,cAAc,SAClCkB,GAAK3vB,KAAO,SACZ2vB,EAAKjB,UAAY,uCACjBiB,EAAK9b,MAAQ,4BACb8b,EAAKhB,QAAU,WACbf,EAAOgC,WAETtoC,KAAK0jC,KAAKP,YAAYkF,GACtBroC,KAAK0hC,IAAI2G,KAAOA,CAGhB,IAAIE,GAAOrB,SAASC,cAAc,SAClCoB,GAAK7vB,KAAO,SACZ6vB,EAAKnB,UAAY,kBACjBmB,EAAKhc,MAAQ,sBACbgc,EAAKlB,QAAU,WACbf,EAAOkC,WAETxoC,KAAK0jC,KAAKP,YAAYoF,GACtBvoC,KAAK0hC,IAAI6G,KAAOA,EAGhBvoC,KAAKkiC,QAAQ1gC,SAAW,WACtB6mC,EAAKI,UAAYnC,EAAOpE,QAAQwG,UAChCH,EAAKE,UAAYnC,EAAOpE,QAAQyG,WAElC3oC,KAAKkiC,QAAQ1gC,WAIf,GAAIxB,KAAKa,SAAWb,KAAKa,QAAQ2B,OAASxC,KAAKa,QAAQ2B,MAAMN,OAAQ,CACnE,GAAI+iC,GAAKjlC,IACTA,MAAK0iC,aAAe,GAAIjB,GAAazhC,KAAK0jC,KAAM1jC,KAAKa,QAAQ2B,MAAOxC,KAAKa,QAAQ8B,KAAM,SAAkBA,GACvGsiC,EAAGvC,aAAa7/B,UAGhBoiC,EAAGriC,QAAQD,GACXsiC,EAAGvC,aAAac,UAKhBxjC,KAAKa,QAAQi4B,SACf94B,KAAKyiC,UAAY,GAAInB,GAAUthC,KAAMA,KAAK0jC,QAQ9CphC,EAASgmC,QAAU,WACbtoC,KAAKkiC,UAEPliC,KAAKkiC,QAAQmG,OAGbroC,KAAKkkC,cAQT5hC,EAASkmC,QAAU,WACbxoC,KAAKkiC,UAEPliC,KAAKkiC,QAAQqG,OAGbvoC,KAAKkkC,cAST5hC,EAAS2kC,SAAW,SAAUD,GACV,WAAdA,EAAMtuB,MACR1Y,KAAK4oC,WAAW5B,GAGA,SAAdA,EAAMtuB,OACR1Y,KAAKgiC,YAAcgF,EAAMM,QAGT,aAAdN,EAAMtuB,MACR1Y,KAAK6oC,mBAAmB7B,GAER,aAAdA,EAAMtuB,MAAqC,WAAdsuB,EAAMtuB,MAAmC,SAAdsuB,EAAMtuB,MAChE1Y,KAAK8oC,oBAAoB9B,EAG3B,IAAI1W,GAAOkR,EAAK4B,kBAAkB4D,EAAMM,OAExC,IAAIhX,GAAQA,EAAKyY,SAAU,CACzB,GAAkB,SAAd/B,EAAMtuB,KAAiB,CACzB,GAAIsuB,EAAMM,QAAUhX,EAAKoR,IAAIgC,KAI3B,WAHA1jC,MAAKgpC,gBAAgBhC,EAAMM,OAOxBN,GAAMiC,UACTjpC,KAAKkpC,WAIS,aAAdlC,EAAMtuB,MAER8oB,EAAK2H,YAAYnpC,KAAK6hC,eAAeC,MAAOkF,OAI5B,aAAdA,EAAMtuB,OACR1Y,KAAKkpC,WAED5Y,GAAQ0W,EAAMM,QAAUhX,EAAKoR,IAAI0H,KAEnC5H,EAAK2H,YAAY7Y,EAAM0W,KAEf1W,GAAS0W,EAAMM,QAAUhX,EAAKoR,IAAIsB,OAASgE,EAAMM,QAAUhX,EAAKoR,IAAIj4B,OAASu9B,EAAMM,QAAUhX,EAAKoR,IAAIqE,SAE9G/lC,KAAKqpC,oBAAoBrC,GAK3B1W,IACFA,EAAKyW,QAAQC,IAIjB1kC,EAASumC,mBAAqB,SAAU7B,GACtChnC,KAAKspC,mBACHC,cAAevC,EAAMM,OACrBkC,aAAcxC,EAAMyC,MACpBC,aAAc1C,EAAM2C,MACpBC,aAAc,EACdX,UAAU,IAId3mC,EAASwmC,oBAAsB,SAAU9B,GAClChnC,KAAKspC,mBACRtpC,KAAK6oC,mBAAmB7B,EAG1B,IAAI6C,GAAQ7C,EAAMyC,MAAQzpC,KAAKspC,kBAAkBE,aAC7CM,EAAQ9C,EAAM2C,MAAQ3pC,KAAKspC,kBAAkBI,YASjD,OAPA1pC,MAAKspC,kBAAkBM,aAAetS,KAAKyS,KAAKF,EAAQA,EAAQC,EAAQA,GACxE9pC,KAAKspC,kBAAkBL,SACnBjpC,KAAKspC,kBAAkBL,UAAYjpC,KAAKspC,kBAAkBM,aAAe,GAE7E5C,EAAM4C,aAAe5pC,KAAKspC,kBAAkBM,aAC5C5C,EAAMiC,SAAWjpC,KAAKspC,kBAAkBL,SAEjCjC,EAAM4C,cAQftnC,EAAS+mC,oBAAsB,SAAUrC,GACvC,GAAI1W,GAAOkR,EAAK4B,kBAAkB4D,EAAMM,OAExC,IAA0B,SAAtBtnC,KAAKa,QAAQ8B,UAA+CiN,KAA5B5P,KAAKa,QAAQa,WAAjD,CAMA1B,KAAK6hC,gBACHmI,MAAO1Z,GAAQ,KACf2Z,IAAK,KACLnI,UAGF9hC,KAAK6oC,mBAAmB7B,EAExB,IAAIV,GAAStmC,IACRA,MAAKkqC,YACRlqC,KAAKkqC,UAAYjpC,EAAKinC,iBAAiBjR,OAAQ,YAAa,SAAU+P,GACpEV,EAAO6D,eAAenD,MAGrBhnC,KAAKoqC,UACRpqC,KAAKoqC,QAAUnpC,EAAKinC,iBAAiBjR,OAAQ,UAAW,SAAU+P,GAChEV,EAAO+D,kBAAkBrD,QAW/B1kC,EAAS6nC,eAAiB,SAAUnD,GAIlC,GAHAA,EAAMO,iBAENvnC,KAAK8oC,oBAAoB9B,GACpBA,EAAMiC,SAAX,CAIA,GAAI3Y,GAAOkR,EAAK4B,kBAAkB4D,EAAMM,OAEpChX,KAC+B,MAA7BtwB,KAAK6hC,eAAemI,QACtBhqC,KAAK6hC,eAAemI,MAAQ1Z,GAE9BtwB,KAAK6hC,eAAeoI,IAAM3Z,GAI5BtwB,KAAKkpC,UAGL,IAAIc,GAAQhqC,KAAK6hC,eAAemI,MAC5BC,EAAMjqC,KAAK6hC,eAAeoI,KAAOjqC,KAAK6hC,eAAemI,KACrDA,IAASC,IAEXjqC,KAAK6hC,eAAeC,MAAQ9hC,KAAKsqC,mBAAmBN,EAAOC,GAC3DjqC,KAAK+lC,OAAO/lC,KAAK6hC,eAAeC,UASpCx/B,EAAS+nC,kBAAoB,SAAUrD,GAEjChnC,KAAK6hC,eAAeC,MAAM,IAC5B9hC,KAAK6hC,eAAeC,MAAM,GAAGJ,IAAIgC,KAAKF,QAGxCxjC,KAAK6hC,eAAemI,MAAQ,KAC5BhqC,KAAK6hC,eAAeoI,IAAM,KAGtBjqC,KAAKkqC,YACPjpC,EAAKspC,oBAAoBtT,OAAQ,YAAaj3B,KAAKkqC,iBAC5ClqC,MAAKkqC,WAEVlqC,KAAKoqC,UACPnpC,EAAKspC,oBAAoBtT,OAAQ,UAAWj3B,KAAKoqC,eAC1CpqC,MAAKoqC,UAShB9nC,EAAS4mC,SAAW,SAAUsB,GAC5BxqC,KAAK6hC,eAAeC,MAAMhgC,QAAQ,SAAUwuB,GAC1CA,EAAKma,aAAY,KAEnBzqC,KAAK6hC,eAAeC,SAEhB0I,IACFxqC,KAAK6hC,eAAemI,MAAQ,KAC5BhqC,KAAK6hC,eAAeoI,IAAM,OAQ9B3nC,EAASyjC,OAAS,SAAUjE,GAC1B,IAAKt1B,MAAMvH,QAAQ68B,GACjB,MAAO9hC,MAAK+lC,QAAQjE,GAGtB,IAAIA,EAAO,CACT9hC,KAAKkpC,WAELlpC,KAAK6hC,eAAeC,MAAQA,EAAMjrB,MAAM,EAExC,IAAI6zB,GAAQ5I,EAAM,EAClBA,GAAMhgC,QAAQ,SAAUwuB,GACtBA,EAAKma,aAAY,EAAMna,IAASoa,OActCpoC,EAASgoC,mBAAqB,SAAUN,EAAOC,GAI7C,IAHA,GAAIU,GAAYX,EAAMY,cAClBC,EAAUZ,EAAIW,cACd7lC,EAAI,EACDA,EAAI4lC,EAAUzoC,QAAUyoC,EAAU5lC,KAAO8lC,EAAQ9lC,IACtDA,GAEF,IAAIrF,GAAOirC,EAAU5lC,EAAI,GACrB+lC,EAAaH,EAAU5lC,GACvBgmC,EAAWF,EAAQ9lC,EAgBvB,IAdK+lC,GAAeC,IACdrrC,EAAKgxB,QAEPoa,EAAaprC,EACbqrC,EAAWrrC,EACXA,EAAOA,EAAKgxB,SAIZoa,EAAaprC,EAAKsrC,OAAO,GACzBD,EAAWrrC,EAAKsrC,OAAOtrC,EAAKsrC,OAAO9oC,OAAS,KAI5CxC,GAAQorC,GAAcC,EAAU,CAClC,GAAIE,GAAavrC,EAAKsrC,OAAOhpC,QAAQ8oC,GACjCI,EAAWxrC,EAAKsrC,OAAOhpC,QAAQ+oC,GAC/BI,EAAa7T,KAAKoP,IAAIuE,EAAYC,GAClClY,EAAYsE,KAAKqP,IAAIsE,EAAYC,EAErC,OAAOxrC,GAAKsrC,OAAOn0B,MAAMs0B,EAAYnY,EAAY,GAGjD,UASJ1wB,EAASsmC,WAAa,SAAU5B,GAC9B,GAAIoE,GAASpE,EAAMqE,OAASrE,EAAMsE,QAC9BC,EAAUvE,EAAMuE,QAChBC,EAAWxE,EAAMwE,SACjBC,GAAU,CAEd,IAAc,GAAVL,EAAa,CACf,GAAInG,GAAKjlC,IACTgI,YAAW,WAET/G,EAAKyqC,sBAAsBzG,EAAGjD,cAC7B,GAGL,GAAIhiC,KAAKyiC,UACP,GAAI8I,GAAqB,IAAVH,EACbprC,KAAKyiC,UAAUf,IAAI5I,OAAO0K,QAC1BxjC,KAAKyiC,UAAUf,IAAI5I,OAAOiN,SAC1B0F,GAAU,MAEP,IAAc,KAAVL,GAAkBG,GAAqB,IAAVH,EAAe,CAE9CI,EAMHxrC,KAAKyiC,UAAUkJ,UAPL,GAGV3rC,KAAKyiC,UAAU9T,MAHL,GAUZ8c,GAAU,EAIVzrC,KAAKkiC,UACHqJ,IAAYC,GAAsB,IAAVJ,GAE1BprC,KAAKsoC,UACLmD,GAAU,GAEHF,GAAWC,GAAsB,IAAVJ,IAE9BprC,KAAKwoC,UACLiD,GAAU,IAIVA,IACFzE,EAAMO,iBACNP,EAAM4E,oBAQVtpC,EAAS8/B,aAAe,WACtB,GAAIyJ,GAAe3E,SAASC,cAAc,MAC1C0E,GAAazE,UAAY,mBACzBpnC,KAAK6rC,aAAeA,EAEpB7rC,KAAK6iC,QAAUqE,SAASC,cAAc,OACtCnnC,KAAK6iC,QAAQuE,UAAY,kBACzByE,EAAa1I,YAAYnjC,KAAK6iC,SAE9B7iC,KAAK8iC,MAAQoE,SAASC,cAAc,SACpCnnC,KAAK8iC,MAAMsE,UAAY,kBACvBpnC,KAAK6iC,QAAQM,YAAYnjC,KAAK8iC,MAI9B,IAAIgJ,EACJ9rC,MAAK+rC,gBAAkB7E,SAASC,cAAc,YACpB,SAAtBnnC,KAAKa,QAAQ8B,OACfmpC,EAAM5E,SAASC,cAAc,OAC7B2E,EAAIE,MAAQ,OACZhsC,KAAK+rC,gBAAgB5I,YAAY2I,IAEnCA,EAAM5E,SAASC,cAAc,OAC7B2E,EAAIE,MAAQ,OACZhsC,KAAK+rC,gBAAgB5I,YAAY2I,GACjCA,EAAM5E,SAASC,cAAc,OAC7BnnC,KAAK+rC,gBAAgB5I,YAAY2I,GACjC9rC,KAAK8iC,MAAMK,YAAYnjC,KAAK+rC,iBAE5B/rC,KAAK4jC,MAAQsD,SAASC,cAAc,SACpCnnC,KAAK8iC,MAAMK,YAAYnjC,KAAK4jC,OAE5B5jC,KAAKqiC,MAAMc,YAAY0I,IAUzBvpC,EAAS0mC,gBAAkB,SAAUiD,EAAQC,GAC3C,GAAIhiC,MACAo8B,EAAStmC,IAGbkK,GAAMgP,MACJyY,KAAM,YACNpF,MAAO,qCACP6a,UAAW,uBACX+E,MAAO,WACL3K,EAAK4K,YAAY9F,EAAOzE,eAAeC,UAK3C53B,EAAMgP,MACJyY,KAAM,SACNpF,MAAO,oCACP6a,UAAW,oBACX+E,MAAO,WACL3K,EAAK6K,SAAS/F,EAAOzE,eAAeC,UAI7B,GAAIP,GAAYr3B,GAAQoiC,MAAOJ,IACrCK,KAAKN,EAAQjsC,KAAK6iC,UAKzBhjC,EAAOD,UAEH+C,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,SAGNd,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,SAGNd,KAAM,OACNoB,MAAOzB,EACPmB,KAAM,UAOL,SAAS5D,EAAQD,GAEtB,YAOA,SAASwhC,KACPphC,KAAKwsC,QAAS,EAOhBpL,EAAY3+B,UAAUgqC,UAAY,SAAUnc,GACtCtwB,KAAKwsC,SAILxsC,KAAKswB,MAAQA,IAEXtwB,KAAKswB,MACPtwB,KAAKswB,KAAKoc,cAAa,GAIzB1sC,KAAKswB,KAAOA,EACZtwB,KAAKswB,KAAKoc,cAAa,IAIzB1sC,KAAK2sC,uBAOPvL,EAAY3+B,UAAUmqC,YAAc,WAClC,IAAI5sC,KAAKwsC,OAAT,CAIA,GAAIvH,GAAKjlC,IACLA,MAAKswB,OACPtwB,KAAK2sC,qBAKL3sC,KAAK6sC,iBAAmB7kC,WAAW,WACjCi9B,EAAG3U,KAAKoc,cAAa,GACrBzH,EAAG3U,SAAO1gB,GACVq1B,EAAG4H,qBAAmBj9B,IACrB,MAQPwxB,EAAY3+B,UAAUkqC,mBAAqB,WACrC3sC,KAAK6sC,mBACPhH,aAAa7lC,KAAK6sC,kBAClB7sC,KAAK6sC,qBAAmBj9B,KAQ5BwxB,EAAY3+B,UAAUqqC,KAAO,WAC3B9sC,KAAKwsC,QAAS,GAMhBpL,EAAY3+B,UAAUsqC,OAAS,WAC7B/sC,KAAKwsC,QAAS,GAGhB3sC,EAAOD,QAAUwhC,GAKZ,SAASvhC,EAAQD,EAASM,GAE/B,YASA,SAASmhC,GAASiF,GAChBtmC,KAAKsmC,OAASA,EACdtmC,KAAKkiC,WACLliC,KAAKmU,OAAS,EAEdnU,KAAK8D,QAGL9D,KAAKgtC,SACHC,WACE5E,KAAQ,SAAUtF,GAChBA,EAAOzS,KAAKiT,YAAYR,EAAOmK,WAEjC3E,KAAQ,SAAUxF,GAChBA,EAAOzS,KAAKiT,YAAYR,EAAOoK,YAGnCC,WACE/E,KAAQ,SAAUtF,GAChBA,EAAOzS,KAAK+c,YAAYtK,EAAOmK,WAEjC3E,KAAQ,SAAUxF,GAChBA,EAAOzS,KAAK+c,YAAYtK,EAAOoK,YAGnCG,YACEjF,KAAQ,SAAUtF,GAChBA,EAAOzS,KAAKgd,WAAWvK,EAAOwK,UAEhChF,KAAQ,SAAUxF,GAChBA,EAAOzS,KAAKgd,WAAWvK,EAAOyK,WAIlCC,aACEpF,KAAQ,SAAUtF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAO6R,YAAYjS,MAG9BiY,KAAQ,SAAUxF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAOyS,YAAY7S,OAIhCod,mBACErF,KAAQ,SAAUtF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAO6R,YAAYjS,MAG9BiY,KAAQ,SAAUxF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAOid,aAAard,EAAMyS,EAAO6K,gBAI9CC,kBACExF,KAAQ,SAAUtF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAO6R,YAAYjS,MAG9BiY,KAAQ,SAAUxF,GAChB,GAAI+K,GAAY/K,EAAO+K,SACvB/K,GAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAOqd,YAAYhL,EAAOzS,KAAMwd,GACvCA,EAAYxd,MAIlB0d,aACE3F,KAAQ,SAAUtF,GAChB,GAAIrS,GAASqS,EAAOrS,OAChBkd,EAAald,EAAOsa,OAAOjI,EAAO5uB,QAAUuc,EAAOud,MACvDlL,GAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7BI,EAAOid,aAAard,EAAMsd,MAG9BrF,KAAQ,SAAUxF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAO6R,YAAYjS,OAIhC4d,gBACE7F,KAAQ,SAAUtF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAO6R,YAAYjS,MAG9BiY,KAAQ,SAAUxF,GAChB,GAAI+K,GAAY/K,EAAO+K,SACvB/K,GAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOrS,OAAOqd,YAAYzd,EAAMwd,GAChCA,EAAYxd,MAIlB6d,WACE9F,KAAQ,SAAUtF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOqL,cAAc1d,OAAO2d,WAAW/d,EAAMyS,EAAOqL,kBAGxD7F,KAAQ,SAAUxF,GAChBA,EAAOjB,MAAMhgC,QAAQ,SAAUwuB,GAC7ByS,EAAOuL,cAAc5d,OAAO2d,WAAW/d,EAAMyS,EAAOuL,mBAK1Dvd,MACEsX,KAAQ,SAAUtF,GAChB,GAAIzS,GAAOyS,EAAOzS,IAClBA,GAAKie,aACLje,EAAKS,KAAOgS,EAAOyL,QACnBle,EAAK0a,OAASjI,EAAO0L,UACrBne,EAAKoe,cAEPnG,KAAQ,SAAUxF,GAChB,GAAIzS,GAAOyS,EAAOzS,IAClBA,GAAKie,aACLje,EAAKS,KAAOgS,EAAO4L,QACnBre,EAAK0a,OAASjI,EAAO6L,UACrBte,EAAKoe,gBArIFxuC,EAAoB,EAkJ/BmhC,GAAQ5+B,UAAUjB,SAAW,aAa7B6/B,EAAQ5+B,UAAUmpB,IAAM,SAAUqY,EAAQlB,GACxC/iC,KAAKmU,QACLnU,KAAKkiC,QAAQliC,KAAKmU,QAChB8vB,OAAUA,EACVlB,OAAUA,EACV8L,UAAa,GAAIliC,OAIf3M,KAAKmU,MAAQnU,KAAKkiC,QAAQhgC,OAAS,GACrClC,KAAKkiC,QAAQ1sB,OAAOxV,KAAKmU,MAAQ,EAAGnU,KAAKkiC,QAAQhgC,OAASlC,KAAKmU,MAAQ,GAIzEnU,KAAKwB,YAMP6/B,EAAQ5+B,UAAUqB,MAAQ,WACxB9D,KAAKkiC,WACLliC,KAAKmU,OAAS,EAGdnU,KAAKwB,YAOP6/B,EAAQ5+B,UAAUimC,QAAU,WAC1B,MAAQ1oC,MAAKmU,OAAS,GAOxBktB,EAAQ5+B,UAAUkmC,QAAU,WAC1B,MAAQ3oC,MAAKmU,MAAQnU,KAAKkiC,QAAQhgC,OAAS,GAM7Cm/B,EAAQ5+B,UAAU4lC,KAAO,WACvB,GAAIroC,KAAK0oC,UAAW,CAClB,GAAIjvB,GAAMzZ,KAAKkiC,QAAQliC,KAAKmU,MAC5B,IAAIsF,EAAK,CACP,GAAIwqB,GAASjkC,KAAKgtC,QAAQvzB,EAAIwqB,OAC1BA,IAAUA,EAAOoE,MACnBpE,EAAOoE,KAAK5uB,EAAIspB,QACZtpB,EAAIspB,OAAO+L,cACb9uC,KAAKsmC,OAAOR,aAAarsB,EAAIspB,OAAO+L,eAItC1tC,QAAQD,MAAM,GAAIJ,OAAM,mBAAqB0Y,EAAIwqB,OAAS,MAG9DjkC,KAAKmU,QAGLnU,KAAKwB,aAOT6/B,EAAQ5+B,UAAU8lC,KAAO,WACvB,GAAIvoC,KAAK2oC,UAAW,CAClB3oC,KAAKmU,OAEL,IAAIsF,GAAMzZ,KAAKkiC,QAAQliC,KAAKmU,MAC5B,IAAIsF,EAAK,CACP,GAAIwqB,GAASjkC,KAAKgtC,QAAQvzB,EAAIwqB,OAC1BA,IAAUA,EAAOsE,MACnBtE,EAAOsE,KAAK9uB,EAAIspB,QACZtpB,EAAIspB,OAAOgM,cACb/uC,KAAKsmC,OAAOR,aAAarsB,EAAIspB,OAAOgM,eAItC3tC,QAAQD,MAAM,GAAIJ,OAAM,mBAAqB0Y,EAAIwqB,OAAS,MAK9DjkC,KAAKwB,aAOT6/B,EAAQ5+B,UAAUI,QAAU,WAC1B7C,KAAKsmC,OAAS,KAEdtmC,KAAKkiC,WACLliC,KAAKmU,OAAS,GAGhBtU,EAAOD,QAAUyhC,GAKZ,SAASxhC,EAAQD,EAASM,GAE/B,YAEA,IAAI8uC,GAAW9uC,EAAoB,EAQnCN,GAAQsD,MAAQ,SAAe+rC,GAC7B,IACE,MAAO7rC,MAAKF,MAAM+rC,GAEpB,MAAO5sC,GAKL,KAHAzC,GAAQgF,SAASqqC,GAGX5sC,IAYVzC,EAAQsvC,SAAW,SAAUC,GAc3B,QAASC,KAAU,MAAOD,GAASnd,OAAOjtB,GAC1C,QAAS4pB,KAAU,MAAOwgB,GAASnd,OAAOjtB,EAAI,GAC9C,QAASsqC,KAAU,MAAOF,GAASnd,OAAOjtB,EAAI,GAd9C,GAAIuqC,MACAvqC,EAAI,EAKJ4I,EAAQwhC,EAASxhC,MAAM,uEA+F3B,KA9FIA,IACFwhC,EAAWxhC,EAAM,IA6Fb5I,EAAIoqC,EAASjtC,QAAQ,CACzB,GAAIzB,GAAI2uC,GAEE,OAAN3uC,GAAwB,MAAXkuB,IAxEnB,WAEE,IADA5pB,GAAK,EACEA,EAAIoqC,EAASjtC,SAAsB,MAAXktC,KAA6B,MAAXzgB,MAC/C5pB,GAEFA,IAAK,KAsEU,MAANtE,GAAwB,MAAXkuB,IAlExB,WAEE,IADA5pB,GAAK,EACEA,EAAIoqC,EAASjtC,QAAsB,OAAXktC,KAC7BrqC,OAkEa,MAANtE,GAAoB,MAANA,EA7DzB,SAAqBqyB,GACnBwc,EAAMp2B,KAAK,KACXnU,GAEA,KADA,GAAItE,GAAI2uC,IACDrqC,EAAIoqC,EAASjtC,QAAUzB,IAAMqyB,GACxB,MAANryB,GAAwB,OAAX4uC,KAEfC,EAAMp2B,KAAK,MAIH,OAANzY,IACFsE,IAIU,OAHVtE,EAAI2uC,MAIFE,EAAMp2B,KAAK,OAGfo2B,EAAMp2B,KAAKzY,GAEXsE,IACAtE,EAAI2uC,GAEF3uC,KAAMqyB,IACRwc,EAAMp2B,KAAK,KACXnU,MAmCYtE,GAEL,aAAaoO,KAAKpO,KAAmD,KAA5C,IAAK,KAAKuB,QAhG9C,WAGE,IAFA,GAAItB,GAAI4uC,EAAMptC,OAAS,EAEhBxB,GAAK,GAAG,CACb,GAAI6uC,GAAKD,EAAM5uC,EACf,IAAW,MAAP6uC,GAAqB,OAAPA,GAAsB,OAAPA,GAAsB,OAAPA,EAC9C,MAAOA,EAET7uC,KAGF,MAAO,OAqDT,WAME,IALA,GAAI8uC,IAAiB,OAAQ,OAAQ,SACjChmC,EAAM,GACN/I,EAAI2uC,IAEJK,EAAS,eACNA,EAAO5gC,KAAKpO,IACjB+I,GAAO/I,EACPsE,IACAtE,EAAI2uC,KAG8B,IAAhCI,EAAcxtC,QAAQwH,GACxB8lC,EAAMp2B,KAAK,IAAM1P,EAAM,KAGvB8lC,EAAMp2B,KAAK1P,OAqBX8lC,EAAMp2B,KAAKzY,GACXsE,KAIJ,MAAOuqC,GAAM3rB,KAAK,KASpB/jB,EAAQ8vC,mBAAqB,SAAU/d,GAIrC,MAAOA,GAAK5Z,QAAQ,mBAAoB,SAAStX,GAC/C,MAAO,OAAO,OAASA,EAAEoZ,WAAW,GAAG5M,SAAS,KAAK4J,OAAO,MAWhEjX,EAAQgF,SAAW,SAAkBqqC,OACX,KAAd,EACRD,EAAS9rC,MAAM+rC,GAGf7rC,KAAKF,MAAM+rC,IAUfrvC,EAAQ8D,OAAS,SAAgBmC,EAAGyG,GAClC,IAAK,GAAItH,KAAQsH,GACXA,EAAEY,eAAelI,KACnBa,EAAEb,GAAQsH,EAAEtH,GAGhB,OAAOa,IAQTjG,EAAQkE,MAAQ,SAAgB+B,GAC9B,IAAK,GAAIb,KAAQa,GACXA,EAAEqH,eAAelI,UACZa,GAAEb,EAGb,OAAOa,IAQTjG,EAAQ8Y,KAAO,SAAegC,GAC5B,MAAe,QAAXA,EACK,WAEM9K,KAAX8K,EACK,YAEJA,YAAkBi1B,SAA8B,gBAAXj1B,GACjC,SAEJA,YAAkBwU,SAA8B,gBAAXxU,GACjC,SAEJA,YAAkBk1B,UAA+B,iBAAXl1B,GAClC,UAEJA,YAAkB3N,SAA8B,gBAAX2N,GACjC,SAEL9a,EAAQqF,QAAQyV,GACX,QAGF,SAQT,IAAIm1B,GAAa,kBACjBjwC,GAAQkwC,MAAQ,SAAgBne,GAC9B,OAAuB,gBAARA,IAAoBA,YAAgBzC,UAC/C2gB,EAAWhhC,KAAK8iB,IAQtB/xB,EAAQqF,QAAU,SAAUwU,GAC1B,MAA+C,mBAAxC7X,OAAOa,UAAUwK,SAAS1M,KAAKkZ,IASxC7Z,EAAQmwC,gBAAkB,SAAyBC,GAEjD,MADWA,GAAKC,wBACJC,KAAOjZ,OAAOkZ,aAAejJ,SAASkJ,YAAc,GASlExwC,EAAQulC,eAAiB,SAAwB6K,GAE/C,MADWA,GAAKC,wBACJ/K,IAAMjO,OAAOoZ,aAAenJ,SAAS3B,WAAa,GAQhE3lC,EAAQ0wC,aAAe,SAAsBN,EAAM5I,GACjD,GAAImJ,GAAUP,EAAK5I,UAAU34B,MAAM,MACA,GAA/B8hC,EAAQvuC,QAAQolC,KAClBmJ,EAAQr3B,KAAKkuB,GACb4I,EAAK5I,UAAYmJ,EAAQ5sB,KAAK,OASlC/jB,EAAQ4wC,gBAAkB,SAAyBR,EAAM5I,GACvD,GAAImJ,GAAUP,EAAK5I,UAAU34B,MAAM,KAC/B0F,EAAQo8B,EAAQvuC,QAAQolC,IACd,GAAVjzB,IACFo8B,EAAQ/6B,OAAOrB,EAAO,GACtB67B,EAAK5I,UAAYmJ,EAAQ5sB,KAAK,OASlC/jB,EAAQ6wC,gBAAkB,SAAyBC,GAEjD,IAAK,GADD1F,GAAS0F,EAAWC,WACf5rC,EAAI,EAAG6rC,EAAO5F,EAAO9oC,OAAQ6C,EAAI6rC,EAAM7rC,IAAK,CACnD,GAAI6/B,GAAQoG,EAAOjmC,EAGf6/B,GAAMiM,OAERjM,EAAMkM,gBAAgB,QAIxB,IAAIC,GAAanM,EAAMmM,UACvB,IAAIA,EACF,IAAK,GAAIplB,GAAIolB,EAAW7uC,OAAS,EAAGypB,GAAK,EAAGA,IAAK,CAC/C,GAAIqlB,GAAYD,EAAWplB,IACC,IAAxBqlB,EAAUC,WACZrM,EAAMkM,gBAAgBE,EAAUztC,MAMtC3D,EAAQ6wC,gBAAgB7L,KAW5BhlC,EAAQsxC,wBAA0B,SAAiCC,GACjE,GAAInL,GAAOpE,CACRsF,UAASkK,cACVpL,EAAQkB,SAASkK,cACjBpL,EAAMqL,mBAAmBF,GACzBnL,EAAMrC,UAAS,GACf/B,EAAY3K,OAAOiP,eACnBtE,EAAU0P,kBACV1P,EAAU2P,SAASvL,KASvBpmC,EAAQ8rC,sBAAwB,SAA+ByF,GAC7D,GAAKA,GAA6D,OAAnCA,EAAuB/K,SAAtD,CAIA,GAAIoL,GAAKxL,CACL/O,QAAOiP,cAAgBgB,SAASkK,cAClCpL,EAAQkB,SAASkK,cACjBpL,EAAMqL,mBAAmBF,GACzBK,EAAMva,OAAOiP,eACbsL,EAAIF,kBACJE,EAAID,SAASvL,MASjBpmC,EAAQsmC,aAAe,WACrB,GAAIjP,OAAOiP,aAAc,CACvB,GAAIsL,GAAMva,OAAOiP,cACjB,IAAIsL,EAAIC,YAAcD,EAAIE,WACxB,MAAOF,GAAIC,WAAW,GAG1B,MAAO,OAQT7xC,EAAQkmC,aAAe,SAAsBE,GAC3C,GAAIA,GACE/O,OAAOiP,aAAc,CACvB,GAAIsL,GAAMva,OAAOiP,cACjBsL,GAAIF,kBACJE,EAAID,SAASvL,KAcnBpmC,EAAQumC,mBAAqB,WAC3B,GAAIH,GAAQpmC,EAAQsmC,cAEpB,OAAIF,IAAS,eAAiBA,IAAS,aAAeA,IAClDA,EAAM2L,gBAAmB3L,EAAM2L,gBAAkB3L,EAAM4L,cAEvDC,YAAa7L,EAAM6L,YACnBC,UAAW9L,EAAM8L,UACjBlxC,UAAWolC,EAAM2L,eAAerP,YAI7B,MAUT1iC,EAAQqmC,mBAAqB,SAA4BlD,GACvD,GAAImE,SAASkK,aAAena,OAAOiP,aAAc,CAE/C,GADgBjP,OAAOiP,eACT,CACZ,GAAIF,GAAQkB,SAASkK,aAEhBrO,GAAOniC,UAAUmxC,YACpBhP,EAAOniC,UAAUuiC,YAAY+D,SAAS8K,eAAe,KAKvDhM,EAAMiM,SAASlP,EAAOniC,UAAUmxC,WAAYhP,EAAO8O,aACnD7L,EAAMkM,OAAOnP,EAAOniC,UAAUmxC,WAAYhP,EAAO+O,WAEjDlyC,EAAQkmC,aAAaE,MAW3BpmC,EAAQuyC,aAAe,SAAsBC,EAASC,GAiBpD,OAhBuBziC,IAAVyiC,IAEXA,GACE1gB,KAAQ,GACR2gB,MAAS,WACP,GAAI3gB,GAAO3xB,KAAK2xB,IAEhB,OADA3xB,MAAK2xB,KAAO,GACLA,GAET7uB,IAAO,SAAU6uB,GACf3xB,KAAK2xB,KAAOA,KAMdygB,EAAQG,UACV,MAAOF,GAAOC,QAAUF,EAAQG,SAIlC,IAAIH,EAAQI,gBAAiB,CAI3B,IAAK,GAHD7B,GAAayB,EAAQzB,WACrB8B,EAAY,GAEP1tC,EAAI,EAAG6rC,EAAOD,EAAWzuC,OAAQ6C,EAAI6rC,EAAM7rC,IAAK,CACvD,GAAI6/B,GAAQ+L,EAAW5rC,EAEvB,IAAsB,OAAlB6/B,EAAMwB,UAAuC,KAAlBxB,EAAMwB,SAAiB,CACpD,GAAIsM,GAAY/B,EAAW5rC,EAAI,GAC3B4tC,EAAWD,EAAYA,EAAUtM,aAAWx2B,EAC5C+iC,IAAwB,OAAZA,GAAiC,KAAZA,GAA+B,MAAZA,IACtDF,GAAa,KACbJ,EAAOC,SAETG,GAAa7yC,EAAQuyC,aAAavN,EAAOyN,GACzCA,EAAOvvC,IAAI,UAEc,MAAlB8hC,EAAMwB,UACbqM,GAAaJ,EAAOC,QACpBD,EAAOvvC,IAAI,OAGX2vC,GAAa7yC,EAAQuyC,aAAavN,EAAOyN,GAI7C,MAAOI,GAGP,MAAwB,KAApBL,EAAQhM,WAA4D,GAAzCxmC,EAAQsB,6BAM9BmxC,EAAOC,QAKX,IAST1yC,EAAQsB,2BAA6B,WACnC,IAAmB,GAAf0xC,EAAkB,CACpB,GAAIC,IAAM,CACV,IAAyB,+BAArBC,UAAUC,QACd,CACE,GAAIC,GAAKF,UAAUG,SAEA,OADT,GAAIlmC,QAAO,8BACdyuB,KAAKwX,KACVH,EAAKK,WAAYnmC,OAAOomC,KAI5BP,EAAaC,EAGf,MAAOD,IAOThzC,EAAQwzC,UAAY,WAClB,OAAmD,GAA3CN,UAAUG,UAAUjxC,QAAQ,WAQtC,IAAI4wC,IAAc,CAWlBhzC,GAAQsoC,iBAAmB,SAA0BkK,EAASnO,EAAQoP,EAAUC,GAC9E,GAAIlB,EAAQlK,iBASV,WARmBt4B,KAAf0jC,IACFA,GAAa,GAEA,eAAXrP,GAA2BrkC,EAAQwzC,cACrCnP,EAAS,kBAGXmO,EAAQlK,iBAAiBjE,EAAQoP,EAAUC,GACpCD,CACF,IAAIjB,EAAQmB,YAAa,CAE9B,GAAIluC,GAAI,WACN,MAAOguC,GAAS9yC,KAAK6xC,EAASnb,OAAO+P,OAGvC,OADAoL,GAAQmB,YAAY,KAAOtP,EAAQ5+B,GAC5BA,IAWXzF,EAAQ2qC,oBAAsB,SAA6B6H,EAASnO,EAAQoP,EAAUC,GAChFlB,EAAQ7H,yBACS36B,KAAf0jC,IACFA,GAAa,GAEA,eAAXrP,GAA2BrkC,EAAQwzC,cACrCnP,EAAS,kBAGXmO,EAAQ7H,oBAAoBtG,EAAQoP,EAAUC,IACrClB,EAAQoB,aAEjBpB,EAAQoB,YAAY,KAAOvP,EAAQoP,IASvCzzC,EAAQ6zC,UAAY,QAASA,GAAUC,GACrC,GAAI1uC,GAAM2uC,CAEV,IAAwB,IAApBD,EAASxxC,OACX,QAIF,IAAIyL,GAAQ+lC,EAAS/lC,MAAM,WAC3B,IAAIA,EACF3I,EAAO2I,EAAM,GACbgmC,EAAYD,EAASzb,OAAOjzB,EAAK9C,OAAS,OAEvC,CAAA,GAAoB,MAAhBwxC,EAAS,GAqBhB,KAAM,IAAIE,aAAY,uBAnBtB,IAAI3J,GAAMyJ,EAAS1xC,QAAQ,IAC3B,KAAa,IAATioC,EACF,KAAM,IAAI2J,aAAY,+BAExB,IAAY,IAAR3J,EACF,KAAM,IAAI2J,aAAY,yBAGxB,IAAInqC,GAAQiqC,EAASG,UAAU,EAAG5J,EACjB,OAAbxgC,EAAM,KAGRA,EAAQ,IAAOA,EAAMoqC,UAAU,EAAGpqC,EAAMvH,OAAS,GAAK,KAGxD8C,EAAiB,MAAVyE,EAAgBA,EAAQrG,KAAKF,MAAMuG,GAC1CkqC,EAAYD,EAASzb,OAAOgS,EAAM,GAMpC,OAAQjlC,GAAMoU,OAAOq6B,EAAUE,KAQjC/zC,EAAQ0kC,mBAAqB,SAAUnjC,GACrC,GAAsB,SAAlBA,EAAM6T,SAAsBxI,MAAMvH,QAAQ9D,EAAMmD,QAAS,CAC3D,GAAIwvC,GAAQ3yC,EAAMmD,MAClB,IAAIwvC,EAAO,CAKT,GAJAA,EAAQA,EAAM76B,IAAI,SAAUxP,GAC1B,MAAOrG,MAAKC,UAAUoG,KAGpBqqC,EAAM5xC,OAAS,EAAG,CACpB,GAAI6xC,IAAQ,KAAOD,EAAM5xC,OAAS,GAAK,YACvC4xC,GAAQA,EAAMj9B,MAAM,EAAG,GACvBi9B,EAAM56B,KAAK66B,GAEb5yC,EAAM0T,QAAU,8BAAgCi/B,EAAMnwB,KAAK,OAQ/D,MAJsB,yBAAlBxiB,EAAM6T,UACR7T,EAAM0T,QAAU,wCAA0C1T,EAAM4hC,OAAOiR,oBAGlE7yC,GASTvB,EAAQq0C,WAAa,SAAUvjB,EAAQkU,EAAOsP,GAC5C,GAAIC,OAAqBvkC,KAAXskC,EAAuBA,EAAS,CAC9C,OAAOtP,GAAMsL,KAASiE,GAAWzjB,EAAOwf,MACjCtL,EAAMwP,MAASD,GAAWzjB,EAAO0jB,OACjCxP,EAAMM,IAASiP,GAAWzjB,EAAOwU,KACjCN,EAAMU,OAAS6O,GAAWzjB,EAAO4U,QAiB1C1lC,EAAQ+iC,SAAW,SAAkB0R,EAAMC,EAAMC,GAC/C,GAAIC,EACJ,OAAO,YACL,GAAIC,GAAUz0C,KAAMsuB,EAAOrsB,UACvByyC,EAAQ,WACVF,EAAU,KACLD,GAAWF,EAAKpjC,MAAMwjC,EAASnmB,IAElCqmB,EAAUJ,IAAcC,CAC5B3O,cAAa2O,GACbA,EAAUxsC,WAAW0sC,EAAOJ,GACxBK,GAASN,EAAKpjC,MAAMwjC,EAASnmB,KAYrC1uB,EAAQg1C,SAAW,SAAkBC,EAASC,GAM5C,IALA,GAAIn7B,GAAMm7B,EAAQ5yC,OACd8nC,EAAQ,EACR+K,EAASF,EAAQ3yC,OACjB8yC,EAASF,EAAQ5yC,OAEd4yC,EAAQ9iB,OAAOgY,KAAW6K,EAAQ7iB,OAAOgY,IAC7CA,EAAQrwB,GACTqwB,GAGF,MAAO8K,EAAQ9iB,OAAOgjB,EAAS,KAAOH,EAAQ7iB,OAAO+iB,EAAS,IAC3DC,EAAShL,GAAS+K,EAAS,GAC5BC,IACAD,GAGF,QAAQ/K,MAAOA,EAAOC,IAAK+K,KAMxB,SAASn1C,EAAQD,EAASM,GAG/B,GAAI8uC,GAAW,WACf,GAAIiG,IAAUC,MAAO,aACrBC,MACAC,UAAWj0C,MAAQ,EAAEk0C,WAAa,EAAEC,OAAS,EAAEC,WAAa,EAAEC,OAAS,EAAEC,gBAAkB,EAAEC,KAAO,EAAEC,mBAAqB,EAAEC,KAAO,GAAGC,MAAQ,GAAGC,SAAW,GAAGC,UAAY,GAAGC,IAAM,GAAGC,WAAa,GAAGC,UAAY,GAAGC,IAAI,GAAGC,IAAI,GAAGC,eAAiB,GAAGC,WAAa,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,IAAI,GAAGC,gBAAkB,GAAGC,QAAU,EAAEC,KAAO,GAC7UC,YAAa1tC,EAAE,QAAQgD,EAAE,SAASoE,EAAE,SAASgI,EAAE,OAAOkB,GAAG,OAAOI,GAAG,QAAQwG,GAAG,MAAMK,GAAG,IAAIC,GAAG,IAAIc,GAAG,IAAIsB,GAAG,IAAIgB,GAAG,IAAIE,GAAG,KAC1H6yB,cAAe,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAC5JC,cAAe,SAAmBC,EAAOC,EAAOC,EAAShC,EAAGiC,EAAQC,EAAGC,GAEvE,GAAIC,GAAKF,EAAGn1C,OAAS,CACrB,QAAQk1C,GACR,IAAK,GACKp3C,KAAKw3C,EAAIP,EAAOl/B,QAAQ,YAAa,MACzBA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,MACfA,QAAQ,OAAO,KAErC,MACA,KAAK,GAAE/X,KAAKw3C,EAAI7H,OAAOsH,EACvB,MACA,KAAK,GAAEj3C,KAAKw3C,EAAI,IAChB,MACA,KAAK,GAAEx3C,KAAKw3C,GAAI,CAChB,MACA,KAAK,GAAEx3C,KAAKw3C,GAAI,CAChB,MACA,KAAK,GAAE,MAAOx3C,MAAKw3C,EAAIH,EAAGE,EAAG,EAE7B,KAAK,IAAGv3C,KAAKw3C,IACb,MACA,KAAK,IAAGx3C,KAAKw3C,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGv3C,KAAKw3C,GAAKH,EAAGE,EAAG,GAAIF,EAAGE,GAC/B,MACA,KAAK,IAAGv3C,KAAKw3C,KAAQx3C,KAAKw3C,EAAEH,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EAChD,MACA,KAAK,IAAGv3C,KAAKw3C,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGF,EAAGE,GAAI,IAAMF,EAAGE,GAAI,EACxD,MACA,KAAK,IAAGv3C,KAAKw3C,IACb,MACA,KAAK,IAAGx3C,KAAKw3C,EAAIH,EAAGE,EAAG,EACvB,MACA,KAAK,IAAGv3C,KAAKw3C,GAAKH,EAAGE,GACrB,MACA,KAAK,IAAGv3C,KAAKw3C,EAAIH,EAAGE,EAAG,GAAIF,EAAGE,EAAG,GAAGr+B,KAAKm+B,EAAGE,MAI5CzU,QAASn5B,EAAE,EAAEyC,GAAG,EAAE,IAAIe,EAAE,EAAEqD,GAAG,EAAE,IAAIwF,EAAE,EAAEwC,GAAG,EAAE,GAAGgB,EAAE,EAAEE,IAAI,EAAE,IAAII,IAAI,EAAE,IAAI+D,GAAG,EAAEG,GAAG,EAAEwC,GAAG,EAAEC,GAAG,EAAEE,IAAI,EAAE,IAAIqD,IAAI,EAAE,MAAMhe,GAAG,KAAKsa,IAAI,EAAE,MAAMA,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAM5D,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAM5D,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAM5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGc,IAAI,EAAE,GAAGsB,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAK5D,IAAI,EAAE,GAAGM,IAAI,EAAE,GAAGoC,IAAI,EAAE,GAAGkB,IAAI,EAAE,KAAKva,EAAE,GAAGyC,GAAG,EAAE,IAAIwU,IAAI,EAAE,IAAIS,GAAG,GAAGI,GAAG,KAAK9X,EAAE,EAAEyC,GAAG,EAAE,IAAIe,EAAE,EAAEqD,GAAG,EAAE,IAAIwF,EAAE,EAAEwC,GAAG,EAAE,GAAGgB,EAAE,EAAEE,IAAI,EAAE,IAAII,IAAI,EAAE,IAAIkE,GAAG,GAAGwC,GAAG,EAAEC,GAAG,EAAEE,IAAI,EAAE,IAAIqD,IAAI,EAAE,IAAIE,IAAI,EAAE,IAAIM,GAAG,KAAKxe,GAAG,EAAE,KAAKsa,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAMtD,IAAI,EAAE,IAAIoC,IAAI,EAAE,MAAMpC,IAAI,EAAE,IAAIoC,IAAI,EAAE,MAAMtB,IAAI,EAAE,MAAMpB,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAMlB,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAMlB,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAM5D,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAMva,EAAE,GAAGyC,GAAG,EAAE,IAAIqV,GAAG,KAAK9X,EAAE,EAAEyC,GAAG,EAAE,IAAIe,EAAE,EAAEqD,GAAG,EAAE,IAAIwF,EAAE,EAAEwC,GAAG,EAAE,GAAGgB,EAAE,EAAEE,IAAI,EAAE,IAAII,IAAI,EAAE,IAAIkE,GAAG,GAAGwC,GAAG,EAAEC,GAAG,EAAEE,IAAI,EAAE,IAAIqD,IAAI,EAAE,MAAM1D,IAAI,EAAE,IAAIM,IAAI,EAAE,IAAIoC,IAAI,EAAE,IAAIkB,IAAI,EAAE,MAAMva,EAAE,EAAEyC,GAAG,EAAE,IAAIe,EAAE,EAAEqD,GAAG,EAAE,IAAIwF,EAAE,EAAEwC,GAAG,EAAE,GAAGgB,EAAE,EAAEE,IAAI,EAAE,IAAII,IAAI,EAAE,IAAIkE,GAAG,GAAGwC,GAAG,EAAEC,GAAG,EAAEE,IAAI,EAAE,IAAIqD,IAAI,EAAE,MAAMpD,IAAI,EAAE,IAAIoC,IAAI,EAAE,MAAMpC,IAAI,EAAE,IAAIoC,IAAI,EAAE,MAAMA,IAAI,EAAE,IAAIkB,IAAI,EAAE,MACtwCuzB,gBAAiBh3B,IAAI,EAAE,IACvBi3B,WAAY,SAAoBjqC,EAAKmJ,GACjC,KAAM,IAAI7V,OAAM0M,IAEpBvK,MAAO,SAAekyB,GAgClB,QAASuiB,KACL,GAAIC,EAMJ,OALAA,GAAQ3vC,EAAK4vC,MAAMF,OAAS,EAEP,gBAAVC,KACPA,EAAQ3vC,EAAKmtC,SAASwC,IAAUA,GAE7BA,EAtCX,GAAI3vC,GAAOjI,KACP83C,GAAS,GACTC,GAAU,MACVC,KACAlV,EAAQ9iC,KAAK8iC,MACbmU,EAAS,GACTE,EAAW,EACXD,EAAS,EACTe,EAAa,EACbC,EAAS,CAKbl4C,MAAK63C,MAAMM,SAAS/iB,GACpBp1B,KAAK63C,MAAM1C,GAAKn1C,KAAKm1C,GACrBn1C,KAAKm1C,GAAG0C,MAAQ73C,KAAK63C,UACW,KAArB73C,KAAK63C,MAAMO,SAClBp4C,KAAK63C,MAAMO,UACf,IAAIC,GAAQr4C,KAAK63C,MAAMO,MACvBJ,GAAO9+B,KAAKm/B,GAEsB,kBAAvBr4C,MAAKm1C,GAAGuC,aACf13C,KAAK03C,WAAa13C,KAAKm1C,GAAGuC,WAmB9B,KADA,GAAIY,GAAQC,EAAgBC,EAAOvU,EAAWx+B,EAAY/E,EAAEiZ,EAAI8+B,EAAUC,EAAzBC,OACpC,CAgBT,GAdAH,EAAQV,EAAMA,EAAM51C,OAAO,GAGvBlC,KAAKy3C,eAAee,GACpBvU,EAASjkC,KAAKy3C,eAAee,IAEf,MAAVF,IACAA,EAASX,KAEb1T,EAASnB,EAAM0V,IAAU1V,EAAM0V,GAAOF,QAKpB,KAAXrU,IAA2BA,EAAO/hC,SAAW+hC,EAAO,GAAI,CAE/D,IAAKgU,EAAY,CAEbS,IACA,KAAKh4C,IAAKoiC,GAAM0V,GAAYx4C,KAAK82C,WAAWp2C,IAAMA,EAAI,GAClDg4C,EAASx/B,KAAK,IAAIlZ,KAAK82C,WAAWp2C,GAAG,IAEzC,IAAIk4C,GAAS,EAETA,GADA54C,KAAK63C,MAAMgB,aACF,wBAAwB1B,EAAS,GAAG,MAAMn3C,KAAK63C,MAAMgB,eAAe,eAAeH,EAAS/0B,KAAK,MAAQ,UAAY3jB,KAAK82C,WAAWwB,GAAS,IAE9I,wBAAwBnB,EAAS,GAAG,iBACpB,GAAVmB,EAAsB,eACV,KAAKt4C,KAAK82C,WAAWwB,IAAWA,GAAQ,KAEvEt4C,KAAK03C,WAAWkB,GACXjnB,KAAM3xB,KAAK63C,MAAMlqC,MAAOiqC,MAAO53C,KAAK82C,WAAWwB,IAAWA,EAAQQ,KAAM94C,KAAK63C,MAAMV,SAAU4B,IAAKV,EAAOK,SAAUA,IAI5H,GAAkB,GAAdT,EAAiB,CACjB,GAtEF,GAsEMK,EACA,KAAM,IAAIv3C,OAAM63C,GAAU,kBAI9B1B,GAASl3C,KAAK63C,MAAMX,OACpBD,EAASj3C,KAAK63C,MAAMZ,OACpBE,EAAWn3C,KAAK63C,MAAMV,SACtBkB,EAAQr4C,KAAK63C,MAAMO,OACnBE,EAASX,IAIb,OAAU,CAEN,GAAKO,EAAOjrC,YAAe61B,GAAM0V,GAC7B,KAEJ,IAAa,GAATA,EACA,KAAM,IAAIz3C,OAAM63C,GAAU,oBA1E1C,SAAmBpzC,GACfsyC,EAAM51C,OAAS41C,EAAM51C,OAAS,EAAEsD,EAChCuyC,EAAO71C,OAAS61C,EAAO71C,OAASsD,EAChCwyC,EAAO91C,OAAS81C,EAAO91C,OAASsD,GAyEf,GACTgzC,EAAQV,EAAMA,EAAM51C,OAAO,GAG/Bq2C,EAAiBD,EACjBA,EAASJ,EACTM,EAAQV,EAAMA,EAAM51C,OAAO,GAC3B+hC,EAASnB,EAAM0V,IAAU1V,EAAM0V,GAAON,GACtCD,EAAa,EAIjB,GAAIhU,EAAO,YAAcz3B,QAASy3B,EAAO/hC,OAAS,EAC9C,KAAM,IAAInB,OAAM,oDAAoDy3C,EAAM,YAAYF,EAG1F,QAAQrU,EAAO,IAEX,IAAK,GAGD6T,EAAM5+B,KAAKo/B,GACXP,EAAO7+B,KAAKlZ,KAAK63C,MAAMZ,QACvBe,EAAO9+B,KAAKlZ,KAAK63C,MAAMO,QACvBN,EAAM5+B,KAAK+qB,EAAO,IAClBqU,EAAS,KACJC,GAQDD,EAASC,EACTA,EAAiB,OARjBrB,EAASl3C,KAAK63C,MAAMX,OACpBD,EAASj3C,KAAK63C,MAAMZ,OACpBE,EAAWn3C,KAAK63C,MAAMV,SACtBkB,EAAQr4C,KAAK63C,MAAMO,OACfH,EAAa,GACbA,IAKR,MAEJ,KAAK,GAgBD,GAbAt+B,EAAM3Z,KAAK+2C,aAAa9S,EAAO,IAAI,GAGnC0U,EAAMnB,EAAIO,EAAOA,EAAO71C,OAAOyX,GAE/Bg/B,EAAMrB,IACF0B,WAAYhB,EAAOA,EAAO91C,QAAQyX,GAAK,IAAIq/B,WAC3CC,UAAWjB,EAAOA,EAAO91C,OAAO,GAAG+2C,UACnCC,aAAclB,EAAOA,EAAO91C,QAAQyX,GAAK,IAAIu/B,aAC7CC,YAAanB,EAAOA,EAAO91C,OAAO,GAAGi3C,iBAIxB,MAFjB1zC,EAAIzF,KAAKg3C,cAAcz2C,KAAKo4C,EAAO1B,EAAQC,EAAQC,EAAUn3C,KAAKm1C,GAAIlR,EAAO,GAAI8T,EAAQC,IAGrF,MAAOvyC,EAIPkU,KACAm+B,EAAQA,EAAMjhC,MAAM,GAAG,EAAE8C,EAAI,GAC7Bo+B,EAASA,EAAOlhC,MAAM,GAAI,EAAE8C,GAC5Bq+B,EAASA,EAAOnhC,MAAM,GAAI,EAAE8C,IAGhCm+B,EAAM5+B,KAAKlZ,KAAK+2C,aAAa9S,EAAO,IAAI,IACxC8T,EAAO7+B,KAAKy/B,EAAMnB,GAClBQ,EAAO9+B,KAAKy/B,EAAMrB,IAElBmB,EAAW3V,EAAMgV,EAAMA,EAAM51C,OAAO,IAAI41C,EAAMA,EAAM51C,OAAO,IAC3D41C,EAAM5+B,KAAKu/B,EACX,MAEJ,KAAK,GACD,OAAO,GAKnB,OAAO,IAGPZ,EAAQ,WACZ,GAAIA,IAAU7B,IAAI,EAClB0B,WAAW,SAAoBjqC,EAAKmJ,GAC5B,IAAI5W,KAAKm1C,GAAGuC,WAGR,KAAM,IAAI32C,OAAM0M,EAFhBzN,MAAKm1C,GAAGuC,WAAWjqC,EAAKmJ,IAKpCuhC,SAAS,SAAU/iB,GAOX,MANAp1B,MAAKo5C,OAAShkB,EACdp1B,KAAKq5C,MAAQr5C,KAAKs5C,MAAQt5C,KAAK8uB,MAAO,EACtC9uB,KAAKm3C,SAAWn3C,KAAKk3C,OAAS,EAC9Bl3C,KAAKi3C,OAASj3C,KAAKu5C,QAAUv5C,KAAK2N,MAAQ,GAC1C3N,KAAKw5C,gBAAkB,WACvBx5C,KAAKo4C,QAAUY,WAAW,EAAEE,aAAa,EAAED,UAAU,EAAEE,YAAY,GAC5Dn5C,MAEfo1B,MAAM,WACE,GAAI1D,GAAK1xB,KAAKo5C,OAAO,EAQrB,OAPAp5C,MAAKi3C,QAAQvlB,EACb1xB,KAAKk3C,SACLl3C,KAAK2N,OAAO+jB,EACZ1xB,KAAKu5C,SAAS7nB,EACFA,EAAG/jB,MAAM,OACV3N,KAAKm3C,WAChBn3C,KAAKo5C,OAASp5C,KAAKo5C,OAAOviC,MAAM,GACzB6a,GAEf+nB,MAAM,SAAU/nB,GAER,MADA1xB,MAAKo5C,OAAS1nB,EAAK1xB,KAAKo5C,OACjBp5C,MAEf+zC,KAAK,WAEG,MADA/zC,MAAKq5C,OAAQ,EACNr5C,MAEf05C,KAAK,SAAUl0C,GACPxF,KAAKo5C,OAASp5C,KAAK2N,MAAMkJ,MAAMrR,GAAKxF,KAAKo5C,QAEjDO,UAAU,WACF,GAAIC,GAAO55C,KAAKu5C,QAAQthB,OAAO,EAAGj4B,KAAKu5C,QAAQr3C,OAASlC,KAAK2N,MAAMzL,OACnE,QAAQ03C,EAAK13C,OAAS,GAAK,MAAM,IAAM03C,EAAK3hB,QAAQ,IAAIlgB,QAAQ,MAAO,KAE/E8hC,cAAc,WACN,GAAIlrB,GAAO3uB,KAAK2N,KAIhB,OAHIghB,GAAKzsB,OAAS,KACdysB,GAAQ3uB,KAAKo5C,OAAOnhB,OAAO,EAAG,GAAGtJ,EAAKzsB,UAElCysB,EAAKsJ,OAAO,EAAE,KAAKtJ,EAAKzsB,OAAS,GAAK,MAAM,KAAK6V,QAAQ,MAAO,KAEhF8gC,aAAa,WACL,GAAIiB,GAAM95C,KAAK25C,YACXl5C,EAAI,GAAI+L,OAAMstC,EAAI53C,OAAS,GAAGyhB,KAAK,IACvC,OAAOm2B,GAAM95C,KAAK65C,gBAAkB,KAAOp5C,EAAE,KAErDkuB,KAAK,WACG,GAAI3uB,KAAK8uB,KACL,MAAO9uB,MAAKg2C,GAEXh2C,MAAKo5C,SAAQp5C,KAAK8uB,MAAO,EAE9B,IAAI8oB,GACAjqC,EACAosC,EACA5lC,EAEA6lC,CACCh6C,MAAKq5C,QACNr5C,KAAKi3C,OAAS,GACdj3C,KAAK2N,MAAQ,GAGjB,KAAK,GADDgL,GAAQ3Y,KAAKi6C,gBACRl1C,EAAE,EAAEA,EAAI4T,EAAMzW,WACnB63C,EAAY/5C,KAAKo5C,OAAOzrC,MAAM3N,KAAK2Y,MAAMA,EAAM5T,OAC5B4I,KAASosC,EAAU,GAAG73C,OAASyL,EAAM,GAAGzL,UACvDyL,EAAQosC,EACR5lC,EAAQpP,EACH/E,KAAKa,QAAQq5C,OALKn1C,KAQ/B,MAAI4I,IACAqsC,EAAQrsC,EAAM,GAAGA,MAAM,SACnBqsC,IAAOh6C,KAAKm3C,UAAY6C,EAAM93C,QAClClC,KAAKo4C,QAAUY,WAAYh5C,KAAKo4C,OAAOa,UACxBA,UAAWj5C,KAAKm3C,SAAS,EACzB+B,aAAcl5C,KAAKo4C,OAAOe,YAC1BA,YAAaa,EAAQA,EAAMA,EAAM93C,OAAO,GAAGA,OAAO,EAAIlC,KAAKo4C,OAAOe,YAAcxrC,EAAM,GAAGzL,QACxGlC,KAAKi3C,QAAUtpC,EAAM,GACrB3N,KAAK2N,OAASA,EAAM,GACpB3N,KAAKk3C,OAASl3C,KAAKi3C,OAAO/0C,OAC1BlC,KAAKq5C,OAAQ,EACbr5C,KAAKo5C,OAASp5C,KAAKo5C,OAAOviC,MAAMlJ,EAAM,GAAGzL,QACzClC,KAAKu5C,SAAW5rC,EAAM,GACtBiqC,EAAQ53C,KAAKg3C,cAAcz2C,KAAKP,KAAMA,KAAKm1C,GAAIn1C,KAAM2Y,EAAMxE,GAAOnU,KAAKw5C,eAAex5C,KAAKw5C,eAAet3C,OAAO,IAC7GlC,KAAK8uB,MAAQ9uB,KAAKo5C,SAAQp5C,KAAK8uB,MAAO,GACtC8oB,OACC,IAEW,KAAhB53C,KAAKo5C,OACEp5C,KAAKg2C,QAEZh2C,MAAK03C,WAAW,0BAA0B13C,KAAKm3C,SAAS,GAAG,yBAAyBn3C,KAAK64C,gBAChFlnB,KAAM,GAAIimB,MAAO,KAAMkB,KAAM94C,KAAKm3C,YAGvDQ,IAAI,WACI,GAAIlyC,GAAIzF,KAAK2uB,MACb,YAAiB,KAANlpB,EACAA,EAEAzF,KAAK23C,OAGxBwC,MAAM,SAAeC,GACbp6C,KAAKw5C,eAAetgC,KAAKkhC,IAEjCC,SAAS,WACD,MAAOr6C,MAAKw5C,eAAep5B,OAEnC65B,cAAc,WACN,MAAOj6C,MAAKs6C,WAAWt6C,KAAKw5C,eAAex5C,KAAKw5C,eAAet3C,OAAO,IAAIyW,OAElF4hC,SAAS,WACD,MAAOv6C,MAAKw5C,eAAex5C,KAAKw5C,eAAet3C,OAAO,IAE9Ds4C,UAAU,SAAeJ,GACjBp6C,KAAKm6C,MAAMC,IA0CnB,OAxCAvC,GAAMh3C,WACNg3C,EAAMb,cAAgB,SAAmB7B,EAAGsF,EAAIC,EAA0BC,GAG1E,OAAOD,GACP,IAAK,GACL,KACA,KAAK,GAAE,MAAO,EAEd,KAAK,GAAkD,MAAhDD,GAAIxD,OAASwD,EAAIxD,OAAOhf,OAAO,EAAEwiB,EAAIvD,OAAO,GAAW,CAE9D,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,GAAE,MAAO,GAEd,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,EAEf,KAAK,IAAG,MAAO,GAEf,KAAK,IAAG,MAAO,YAIfW,EAAMl/B,OAAS,WAAW,8DAA8D,sEAAqE,UAAU,UAAU,UAAU,UAAU,SAAS,SAAS,cAAc,eAAe,cAAc,SAAS,UAC3Qk/B,EAAMyC,YAAcM,SAAWjiC,OAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAIkiC,WAAY,IAI9EhD,IAEP,OADA5C,GAAO4C,MAAQA,EACR5C,IAGLr1C,GAAQq1C,OAASjG,EACjBpvC,EAAQsD,MAAQ8rC,EAAS9rC,MAAM0/B,KAAKoM,IAKjC,SAASnvC,EAAQD,GAEtB,YASA,SAAS0hC,GAAWgF,EAAQ1lC,GAC1B,GAAI6hC,GAAYziC,IAEhBA,MAAKsmC,OAASA,EACdtmC,KAAKw0C,YAAU5kC,GACf5P,KAAK86C,MAAQ,IACb96C,KAAK+6C,aAAWnrC,GAEhB5P,KAAK0hC,OACL1hC,KAAK0hC,IAAI9gC,UAAYA,CAErB,IAAIkiC,GAAQoE,SAASC,cAAc,QACnCnnC,MAAK0hC,IAAIoB,MAAQA,EACjBA,EAAMsE,UAAY,oBAClBxmC,EAAUuiC,YAAYL,EACtB,IAAIc,GAAQsD,SAASC,cAAc,QACnCnnC,MAAK0hC,IAAIkC,MAAQA,EACjBd,EAAMK,YAAYS,EAClB,IAAIoX,GAAK9T,SAASC,cAAc,KAChCvD,GAAMT,YAAY6X,EAElB,IAAIC,GAAK/T,SAASC,cAAc,KAChC6T,GAAG7X,YAAY8X,EACf,IAAIvrB,GAAUwX,SAASC,cAAc,MACrCnnC,MAAK0hC,IAAIhS,QAAUA,EACnBA,EAAQ0X,UAAY,qBACpB6T,EAAG9X,YAAYzT,GAEfurB,EAAK/T,SAASC,cAAc,MAC5B6T,EAAG7X,YAAY8X,EACf,IAAIC,GAAWhU,SAASC,cAAc,MACtCnnC,MAAK0hC,IAAItM,MAAQ8lB,EACjBA,EAAS9T,UAAY,mBACrB8T,EAAS3uB,MAAQ,2BACjB0uB,EAAG9X,YAAY+X,EAGf,IAAIC,GAAajU,SAASC,cAAc,QACxC+T,GAAS/X,YAAYgY,EACrB,IAAIC,GAAclU,SAASC,cAAc,QACzCgU,GAAWhY,YAAYiY,GACvBJ,EAAK9T,SAASC,cAAc,MAC5BiU,EAAYjY,YAAY6X,EAExB,IAAIK,GAAgBnU,SAASC,cAAc,SAC3CkU,GAAc3iC,KAAO,SACrB2iC,EAAcjU,UAAY,qBAC1B6T,EAAK/T,SAASC,cAAc,MAC5B8T,EAAG9X,YAAYkY,GACfL,EAAG7X,YAAY8X,EAEf,IAAIniB,GAASoO,SAASC,cAAc,QAEpCnnC,MAAK0hC,IAAI5I,OAASA,EAClBA,EAAO0O,QAAU,SAAUR,GACzBvE,EAAU6Y,iBAAiBtU,IAE7BlO,EAAO2O,SAAW,SAAUT,GAC1BvE,EAAU8Y,aAEZziB,EAAO4O,UAAY,SAAUV,GAC3BvE,EAAUmG,WAAW5B,IAEvBlO,EAAO6O,QAAU,SAAUX,GACzBvE,EAAU+Y,SAASxU,IAErBqU,EAAchU,QAAU,SAAUL,GAChClO,EAAOiN,UAITkV,EAAK/T,SAASC,cAAc,MAC5B8T,EAAG9X,YAAYrK,GACfkiB,EAAG7X,YAAY8X,EAEf,IAAIQ,GAAavU,SAASC,cAAc,SACxCsU,GAAW/iC,KAAO,SAClB+iC,EAAWlvB,MAAQ,sBACnBkvB,EAAWrU,UAAY,kBACvBqU,EAAWpU,QAAU,WACnB5E,EAAU9T,QAEZssB,EAAK/T,SAASC,cAAc,MAC5B8T,EAAG9X,YAAYsY,GACfT,EAAG7X,YAAY8X,EAEf,IAAIS,GAAiBxU,SAASC,cAAc,SAC5CuU,GAAehjC,KAAO,SACtBgjC,EAAenvB,MAAQ,gCACvBmvB,EAAetU,UAAY,sBAC3BsU,EAAerU,QAAU,WACvB5E,EAAUkJ,YAEZsP,EAAK/T,SAASC,cAAc,MAC5B8T,EAAG9X,YAAYuY,GACfV,EAAG7X,YAAY8X,GAQjB3Z,EAAU7+B,UAAUksB,KAAO,SAAS6U,GAClC,OAAoB5zB,IAAhB5P,KAAK0vB,QAAsB,CAC7B,GAAIvb,OAA6BvE,IAApB5P,KAAK27C,YAA4B37C,KAAK27C,YAAc,EAAI,CACjExnC,GAAQnU,KAAK0vB,QAAQxtB,OAAS,IAChCiS,EAAQ,GAEVnU,KAAK47C,iBAAiBznC,EAAOqvB,KASjClC,EAAU7+B,UAAUkpC,SAAW,SAASnI,GACtC,OAAoB5zB,IAAhB5P,KAAK0vB,QAAsB,CAC7B,GAAIiX,GAAM3mC,KAAK0vB,QAAQxtB,OAAS,EAC5BiS,MAA6BvE,IAApB5P,KAAK27C,YAA4B37C,KAAK27C,YAAc,EAAIhV,CACjExyB,GAAQ,IACVA,EAAQwyB,GAEV3mC,KAAK47C,iBAAiBznC,EAAOqvB,KAWjClC,EAAU7+B,UAAUm5C,iBAAmB,SAASznC,EAAOqvB,GAErD,GAAIxjC,KAAK67C,aAAc,CACrB,GAAIC,GAAW97C,KAAK67C,aAAavrB,IAEjB,UADDtwB,KAAK67C,aAAa7L,WAExB8L,GAASC,wBAGTD,GAASE,kBAElBF,EAASjX,YAGX,IAAK7kC,KAAK0vB,UAAY1vB,KAAK0vB,QAAQvb,GAIjC,MAFAnU,MAAK27C,gBAAc/rC,QACnB5P,KAAK67C,iBAAejsC,GAItB5P,MAAK27C,YAAcxnC,CAGnB,IAAImc,GAAOtwB,KAAK0vB,QAAQ1vB,KAAK27C,aAAarrB,KACtC0f,EAAOhwC,KAAK0vB,QAAQ1vB,KAAK27C,aAAa3L,IAC9B,UAARA,EACF1f,EAAKyrB,mBAAoB,EAGzBzrB,EAAK0rB,mBAAoB,EAE3Bh8C,KAAK67C,aAAe77C,KAAK0vB,QAAQ1vB,KAAK27C,aACtCrrB,EAAKuU,YAGLvU,EAAK+V,SAAS,WACR7C,GACFlT,EAAKkT,MAAMwM,MASjB1O,EAAU7+B,UAAUw5C,YAAc,eACZrsC,IAAhB5P,KAAKw0C,UACP3O,aAAa7lC,KAAKw0C,eACXx0C,MAAKw0C,UAUhBlT,EAAU7+B,UAAU64C,iBAAmB,SAAUtU,GAG/ChnC,KAAKi8C,aACL,IAAIxZ,GAAYziC,IAChBA,MAAKw0C,QAAUxsC,WAAW,SAAUg/B,GAClCvE,EAAU8Y,aAEZv7C,KAAK86C,QAUPxZ,EAAU7+B,UAAU84C,UAAY,SAAUW,GACxCl8C,KAAKi8C,aAEL,IAAIxyC,GAAQzJ,KAAK0hC,IAAI5I,OAAOrvB,MACxBkoB,EAAQloB,EAAMvH,OAAS,EAAKuH,MAAQmG,EACxC,IAAI+hB,GAAQ3xB,KAAK+6C,UAAYmB,EAO3B,GALAl8C,KAAK+6C,SAAWppB,EAChB3xB,KAAK0vB,QAAU1vB,KAAKsmC,OAAOxN,OAAOnH,GAClC3xB,KAAK47C,qBAAiBhsC,QAGVA,IAAR+hB,EAAmB,CACrB,GAAIwqB,GAAcn8C,KAAK0vB,QAAQxtB,MAC/B,QAAQi6C,GACN,IAAK,GAAGn8C,KAAK0hC,IAAIhS,QAAQ0sB,UAAY,iBAAmB,MACxD,KAAK,GAAGp8C,KAAK0hC,IAAIhS,QAAQ0sB,UAAY,eAAiB,MACtD,SAASp8C,KAAK0hC,IAAIhS,QAAQ0sB,UAAYD,EAAc,qBAItDn8C,MAAK0hC,IAAIhS,QAAQ0sB,UAAY,IAUnC9a,EAAU7+B,UAAUmmC,WAAa,SAAU5B,GACzC,GAAIoE,GAASpE,EAAMqE,KACL,KAAVD,GACFprC,KAAK0hC,IAAI5I,OAAOrvB,MAAQ,GACxBzJ,KAAKu7C,YACLvU,EAAMO,iBACNP,EAAM4E,mBAEW,IAAVR,IACHpE,EAAMuE,QAERvrC,KAAKu7C,WAAU,GAERvU,EAAMwE,SAEbxrC,KAAK2rC,WAIL3rC,KAAK2uB,OAEPqY,EAAMO,iBACNP,EAAM4E,oBASVtK,EAAU7+B,UAAU+4C,SAAW,SAAUxU,GACvC,GAAIoE,GAASpE,EAAMsE,OACL,KAAVF,GAA0B,IAAVA,GAClBprC,KAAKs7C,iBAAiBtU,IAO1B1F,EAAU7+B,UAAUqB,MAAQ,WAC1B9D,KAAK0hC,IAAI5I,OAAOrvB,MAAQ,GACxBzJ,KAAKu7C,aAMPja,EAAU7+B,UAAUI,QAAU,WAC5B7C,KAAKsmC,OAAS,KACdtmC,KAAK0hC,IAAI9gC,UAAU2hC,YAAYviC,KAAK0hC,IAAIoB,OACxC9iC,KAAK0hC,IAAM,KAEX1hC,KAAK0vB,QAAU,KACf1vB,KAAK67C,aAAe,KAEpB77C,KAAKi8C,eAIPp8C,EAAOD,QAAU0hC,GAKZ,SAASzhC,EAAQD,EAASM,GAE/B,YAaA,SAASqhC,GAAar3B,EAAOrJ,GAuC3B,QAASw7C,GAAiBC,EAAMC,EAAUryC,GACxCA,EAAMpI,QAAQ,SAAUuV,GACtB,GAAiB,aAAbA,EAAKqB,KAAqB,CAE5B,GAAIqnB,GAAYmH,SAASC,cAAc,MACvCpH,GAAUqH,UAAY,uBACtBoV,EAAKtV,SAASC,cAAc,MAC5BqV,EAAGrZ,YAAYpD,GACfuc,EAAKnZ,YAAYqZ,OAEd,CACH,GAAIC,MAGAD,EAAKtV,SAASC,cAAc,KAChCmV,GAAKnZ,YAAYqZ,EAGjB,IAAIE,GAASxV,SAASC,cAAc,SAiBpC,IAhBAuV,EAAOhkC,KAAO,SACdgkC,EAAOtV,UAAY/vB,EAAK+vB,UACxBqV,EAAQC,OAASA,EACbrlC,EAAKkV,QACPmwB,EAAOnwB,MAAQlV,EAAKkV,OAElBlV,EAAK80B,QACPuQ,EAAOrV,QAAU,SAAUL,GACzBA,EAAMO,iBACNtC,EAAG0X,OACHtlC,EAAK80B,UAGTqQ,EAAGrZ,YAAYuZ,GAGXrlC,EAAKulC,QAAS,CAEhB,GAAIC,GAAU3V,SAASC,cAAc,MACrC0V,GAAQzV,UAAY,kBACpBsV,EAAOvZ,YAAY0Z,GACnBH,EAAOvZ,YAAY+D,SAAS8K,eAAe36B,EAAKsa,MAEhD,IAAImrB,EACJ,IAAIzlC,EAAK80B,MAAO,CAEduQ,EAAOtV,WAAa,qBAEpB,IAAI2V,GAAe7V,SAASC,cAAc,SAC1C4V,GAAarkC,KAAO,SACpB+jC,EAAQM,aAAeA,EACvBA,EAAa3V,UAAY,oBACzB2V,EAAaX,UAAY,wCACzBI,EAAGrZ,YAAY4Z,GACX1lC,EAAK2lC,eACPD,EAAaxwB,MAAQlV,EAAK2lC,cAG5BF,EAAgBC,MAEb,CAEH,GAAIE,GAAY/V,SAASC,cAAc,MACvC8V,GAAU7V,UAAY,oBACtBsV,EAAOvZ,YAAY8Z,GAEnBH,EAAgBJ,EAIlBI,EAAczV,QAAU,SAAUL,GAChCA,EAAMO,iBACNtC,EAAGiY,cAAcT,GACjBK,EAActZ,QAIhB,IAAI2Z,KACJV,GAAQW,SAAWD,CACnB,IAAIE,GAAKnW,SAASC,cAAc,KAChCsV,GAAQY,GAAKA,EACbA,EAAGjW,UAAY,kBACfiW,EAAGxM,MAAMzL,OAAS,IAClBoX,EAAGrZ,YAAYka,GACfhB,EAAgBgB,EAAIF,EAAa9lC,EAAKulC,aAItCF,GAAON,UAAY,sCAAwC/kC,EAAKsa,IAGlE4qB,GAASrjC,KAAKujC,MAhIpBz8C,KAAK0hC,MAEL,IAAIuD,GAAKjlC,KACL0hC,EAAM1hC,KAAK0hC,GACf1hC,MAAKisC,WAASr8B,GACd5P,KAAKkK,MAAQA,EACblK,KAAKs9C,kBACLt9C,KAAK4hC,cAAYhyB,GACjB5P,KAAKksC,QAAUrrC,EAAUA,EAAQyrC,UAAQ18B,EAGzC,IAAIlQ,GAAOwnC,SAASC,cAAc,MAClCznC,GAAK0nC,UAAY,8BACjB1F,EAAIhiC,KAAOA,CAGX,IAAIgkC,GAAOwD,SAASC,cAAc,MAClCzD,GAAK0D,UAAY,yBACjB1F,EAAIgC,KAAOA,EACXhkC,EAAKyjC,YAAYO,EAGjB,IAAI4Y,GAAOpV,SAASC,cAAc,KAClCmV,GAAKlV,UAAY,kBACjB1D,EAAKP,YAAYmZ,GACjB5a,EAAI4a,KAAOA,EACX5a,EAAIx3B,QAGJ,IAAIqzC,GAAcrW,SAASC,cAAc,SACzCoW,GAAY7kC,KAAO,SACnBgpB,EAAI6b,YAAcA,CAClB,IAAIf,GAAKtV,SAASC,cAAc,KAChCqV,GAAG3L,MAAM1Z,SAAW,SACpBqlB,EAAG3L,MAAMzL,OAAS,IAClBoX,EAAGrZ,YAAYoa,GACfjB,EAAKnZ,YAAYqZ,GAgGjBH,EAAgBC,EAAMt8C,KAAK0hC,IAAIx3B,MAAOA,GAKtClK,KAAKw9C,UAAY,EACjBtzC,EAAMpI,QAAQ,SAAUuV,GACtB,GAAI+tB,GAAqE,IAA3Dl7B,EAAMhI,QAAUmV,EAAKulC,QAAUvlC,EAAKulC,QAAQ16C,OAAS,GACnE+iC,GAAGuY,UAAYlmB,KAAKqP,IAAI1B,EAAGuY,UAAWpY,KAxJ1C,GAAInkC,GAAOf,EAAoB,EAiK/BqhC,GAAY9+B,UAAUg7C,mBAAqB,WACzC,GAAIC,MACAzY,EAAKjlC,IAiBT,OAhBAA,MAAK0hC,IAAIx3B,MAAMpI,QAAQ,SAAUuV,GAC/BqmC,EAAQxkC,KAAK7B,EAAKqlC,QACdrlC,EAAK0lC,cACPW,EAAQxkC,KAAK7B,EAAK0lC,cAEhB1lC,EAAK+lC,UAAY/lC,GAAQ4tB,EAAG0Y,cAC9BtmC,EAAK+lC,SAASt7C,QAAQ,SAAU87C,GAC9BF,EAAQxkC,KAAK0kC,EAAQlB,QACjBkB,EAAQb,cACVW,EAAQxkC,KAAK0kC,EAAQb,kBAOtBW,GAITnc,EAAYsc,gBAAcjuC,GAQ1B2xB,EAAY9+B,UAAU8pC,KAAO,SAAUN,EAAQ6R,GAC7C99C,KAAK28C,MAGL,IAAIoB,IAAY,CAChB,IAAID,EAAe,CACjB,GAAIE,GAAa/R,EAAOgE,wBACpBgO,EAAcH,EAAc7N,uBAE5B+N,GAAW1Y,OAAStlC,KAAKw9C,UAAYS,EAAY3Y,QAG5C0Y,EAAW9Y,IAAMllC,KAAKw9C,UAAYS,EAAY/Y,MAErD6Y,GAAY,GAQhB,GAAIA,EAAW,CAEb,GAAIG,GAAejS,EAAOkS,YAC1Bn+C,MAAK0hC,IAAIgC,KAAKmN,MAAMX,KAAO,MAC3BlwC,KAAK0hC,IAAIgC,KAAKmN,MAAM3L,IAAMgZ,EAAe,KACzCl+C,KAAK0hC,IAAIgC,KAAKmN,MAAMvL,OAAS,OAI7BtlC,MAAK0hC,IAAIgC,KAAKmN,MAAMX,KAAO,MAC3BlwC,KAAK0hC,IAAIgC,KAAKmN,MAAM3L,IAAM,GAC1BllC,KAAK0hC,IAAIgC,KAAKmN,MAAMvL,OAAS,KAI/B,IAAI5U,GAASub,EAAO3J,UACpB5R,GAAOid,aAAa3tC,KAAK0hC,IAAIhiC,KAAMgxB,EAAOqhB,WAG1C,IAAI9M,GAAKjlC,KACLs8C,EAAOt8C,KAAK0hC,IAAI4a,IACpBt8C,MAAKs9C,eAAec,UAAYn9C,EAAKinC,iBAAiBjR,OAAQ,YAAa,SAAU+P,GAEnF,GAAIM,GAASN,EAAMM,MACdA,IAAUgV,GAAUrX,EAAGoZ,WAAW/W,EAAQgV,KAC7CrX,EAAG0X,OACH3V,EAAM4E,kBACN5E,EAAMO,oBAGVvnC,KAAKs9C,eAAegB,QAAUr9C,EAAKinC,iBAAiBjR,OAAQ,UAAW,SAAU+P,GAC/E/B,EAAG2D,WAAW5B,KAIhBhnC,KAAK4hC,UAAY3gC,EAAKilC,eACtBlmC,KAAKisC,OAASA,EACdjkC,WAAW,WACTi9B,EAAGvD,IAAI6b,YAAY/Z,SAClB,GAECjC,EAAYsc,aACdtc,EAAYsc,YAAYlB,OAE1Bpb,EAAYsc,YAAc79C,MAM5BuhC,EAAY9+B,UAAUk6C,KAAO,WAEvB38C,KAAK0hC,IAAIhiC,KAAK4iC,aAChBtiC,KAAK0hC,IAAIhiC,KAAK4iC,WAAWC,YAAYviC,KAAK0hC,IAAIhiC,MAC1CM,KAAKksC,SACPlsC,KAAKksC,UAMT,KAAK,GAAI3oC,KAAQvD,MAAKs9C,eACpB,GAAIt9C,KAAKs9C,eAAepwC,eAAe3J,GAAO,CAC5C,GAAIksB,GAAKzvB,KAAKs9C,eAAe/5C,EACzBksB,IACFxuB,EAAKspC,oBAAoBtT,OAAQ1zB,EAAMksB,SAElCzvB,MAAKs9C,eAAe/5C,GAI3Bg+B,EAAYsc,aAAe79C,OAC7BuhC,EAAYsc,gBAAcjuC,KAU9B2xB,EAAY9+B,UAAUy6C,cAAgB,SAAUT,GAC9C,GAAIxX,GAAKjlC,KACLu+C,EAAkB9B,GAAWz8C,KAAK29C,aAGlCA,EAAe39C,KAAK29C,YAcxB,IAbIA,IAEFA,EAAaN,GAAGxM,MAAMzL,OAAS,IAC/BuY,EAAaN,GAAGxM,MAAM2N,QAAU,GAChCx2C,WAAW,WACLi9B,EAAG0Y,cAAgBA,IACrBA,EAAaN,GAAGxM,MAAM4N,QAAU,GAChCx9C,EAAKuvC,gBAAgBmN,EAAaN,GAAG/a,WAAY,yBAElD,KACHtiC,KAAK29C,iBAAe/tC,KAGjB2uC,EAAgB,CACnB,GAAIlB,GAAKZ,EAAQY,EACjBA,GAAGxM,MAAM4N,QAAU,OACNpB,GAAGhY,YAChBr9B,YAAW,WACLi9B,EAAG0Y,cAAgBlB,IACrBY,EAAGxM,MAAMzL,OAAiC,GAAvBiY,EAAG1M,WAAWzuC,OAAe,KAChDm7C,EAAGxM,MAAM2N,QAAU,aAEpB,GACHv9C,EAAKqvC,aAAa+M,EAAG/a,WAAY,uBACjCtiC,KAAK29C,aAAelB,IASxBlb,EAAY9+B,UAAUmmC,WAAa,SAAU5B,GAC3C,GAGI0W,GAASgB,EAAaC,EAAYC,EAHlCtX,EAASN,EAAMM,OACf8D,EAASpE,EAAMqE,MACfI,GAAU,CAGA,KAAVL,GAIEprC,KAAK4hC,WACP3gC,EAAK6kC,aAAa9lC,KAAK4hC,WAErB5hC,KAAKisC,QACPjsC,KAAKisC,OAAOzI,QAGdxjC,KAAK28C,OAELlR,GAAU,GAEO,GAAVL,EACFpE,EAAMwE,UAUTkS,EAAU19C,KAAKy9C,qBAEI,IADnBiB,EAAchB,EAAQ17C,QAAQslC,MAG5BoW,EAAQA,EAAQx7C,OAAS,GAAGshC,QAC5BiI,GAAU,KAdZiS,EAAU19C,KAAKy9C,sBACfiB,EAAchB,EAAQ17C,QAAQslC,KACXoW,EAAQx7C,OAAS,IAElCw7C,EAAQ,GAAGla,QACXiI,GAAU,IAaG,IAAVL,GACiB,qBAApB9D,EAAOF,YACTsW,EAAU19C,KAAKy9C,qBACfiB,EAAchB,EAAQ17C,QAAQslC,IAC9BqX,EAAajB,EAAQgB,EAAc,KAEjCC,EAAWnb,SAGfiI,GAAU,GAEO,IAAVL,GACPsS,EAAU19C,KAAKy9C,qBACfiB,EAAchB,EAAQ17C,QAAQslC,GAC9BqX,EAAajB,EAAQgB,EAAc,GAC/BC,GAAsC,qBAAxBA,EAAWvX,YAE3BuX,EAAajB,EAAQgB,EAAc,IAEhCC,IAEHA,EAAajB,EAAQA,EAAQx7C,OAAS,IAEpCy8C,GACFA,EAAWnb,QAEbiI,GAAU,GAEO,IAAVL,GACPsS,EAAU19C,KAAKy9C,qBACfiB,EAAchB,EAAQ17C,QAAQslC,GAC9BsX,EAAalB,EAAQgB,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWxX,WAC3BwX,EAAWpb,QAEbiI,GAAU,GAEO,IAAVL,IACPsS,EAAU19C,KAAKy9C,qBACfiB,EAAchB,EAAQ17C,QAAQslC,GAC9BsX,EAAalB,EAAQgB,EAAc,GAC/BE,GAAsC,qBAAxBA,EAAWxX,YAE3BwX,EAAalB,EAAQgB,EAAc,IAEhCE,IAEHA,EAAalB,EAAQ,IAEnBkB,IACFA,EAAWpb,QACXiI,GAAU,GAEZA,GAAU,GAIRA,IACFzE,EAAM4E,kBACN5E,EAAMO,mBAUVhG,EAAY9+B,UAAU47C,WAAa,SAAUzZ,EAAOlU,GAElD,IADA,GAAIprB,GAAIs/B,EAAMtC,WACPh9B,GAAG,CACR,GAAIA,GAAKorB,EACP,OAAO,CAETprB,GAAIA,EAAEg9B,WAGR,OAAO,GAGTziC,EAAOD,QAAU2hC,GAKZ,SAAS1hC,EAAQD,EAASM,GAE/B,YAkBA,SAASshC,GAAM8E,EAAQvD,GAErB/iC,KAAKsmC,OAASA,EACdtmC,KAAK0hC,OACL1hC,KAAK6+C,UAAW,EAEb9b,GAAWA,YAAkBnhC,SAC9B5B,KAAK8+C,SAAS/b,EAAOC,MAAOD,EAAOgc,eACnC/+C,KAAKg/C,SAASjc,EAAOt5B,MAAOs5B,EAAOrqB,QAGnC1Y,KAAK8+C,SAAS,IACd9+C,KAAKg/C,SAAS,OAGhBh/C,KAAKi/C,wBAA0Bh+C,EAAK0hC,SAAS3iC,KAAKk/C,eAAetc,KAAK5iC,MAAOwhC,EAAK/+B,UAAUC,mBAC5F1C,KAAKm/C,wBAA0Bl+C,EAAK0hC,SAAS3iC,KAAKo/C,eAAexc,KAAK5iC,MAAOwhC,EAAK/+B,UAAUC,mBAhC9F,GAAI28C,GAAcn/C,EAAoB,IAClCqhC,EAAcrhC,EAAoB,GAClCo/C,EAAoBp/C,EAAoB,IACxCe,EAAOf,EAAoB,EAiC/BshC,GAAK/+B,UAAUC,kBAAoB,IAMnC8+B,EAAK/+B,UAAU88C,mBAAqB,WAMlC,GALAv/C,KAAKyB,UACHuhC,OAAO,EACPv5B,OAAO,GAGLzJ,KAAKsmC,SACPtmC,KAAKyB,SAASuhC,MAAqC,SAA7BhjC,KAAKsmC,OAAOzlC,QAAQ8B,KAC1C3C,KAAKyB,SAASgI,MAAqC,SAA7BzJ,KAAKsmC,OAAOzlC,QAAQ8B,MAER,SAA7B3C,KAAKsmC,OAAOzlC,QAAQ8B,MAAgD,SAA7B3C,KAAKsmC,OAAOzlC,QAAQ8B,OACjB,kBAAnC3C,MAAKsmC,OAAOzlC,QAAQa,YAA4B,CAC1D,GAAID,GAAWzB,KAAKsmC,OAAOzlC,QAAQa,YACjCshC,MAAOhjC,KAAKgjC,MACZv5B,MAAOzJ,KAAKyJ,MACZqO,KAAM9X,KAAK8c,WAGW,kBAAbrb,IACTzB,KAAKyB,SAASuhC,MAAQvhC,EACtBzB,KAAKyB,SAASgI,MAAQhI,IAGQ,iBAAnBA,GAASuhC,QAAqBhjC,KAAKyB,SAASuhC,MAAQvhC,EAASuhC,OAC1C,iBAAnBvhC,GAASgI,QAAqBzJ,KAAKyB,SAASgI,MAAQhI,EAASgI,UAUhF+3B,EAAK/+B,UAAUqa,QAAU,WAGvB,IAFA,GAAIwT,GAAOtwB,KACP8X,KACGwY,GAAM,CACX,GAAI0S,GAAS1S,EAAKI,OAEU,SAApBJ,EAAKI,OAAOhY,KACV4X,EAAK0S,MACL1S,EAAKnc,UAHTvE,OAKQA,KAAVozB,GACFlrB,EAAKukB,QAAQ2G,GAEf1S,EAAOA,EAAKI,OAEd,MAAO5Y,IAQT0pB,EAAK/+B,UAAU8hC,SAAW,SAAUmP,GAGlC,IAFA,GAAI57B,GAAO7W,EAAKwyC,UAAUC,GACtBpjB,EAAOtwB,KACJswB,GAAQxY,EAAK5V,OAAS,GAAG,CAC9B,GAAI8C,GAAO8S,EAAKqlB,OAChB,IAAoB,gBAATn4B,GAAmB,CAC5B,GAAkB,UAAdsrB,EAAK5X,KACP,KAAM,IAAI3X,OAAM,kCAAoCiE,EAAO,qBAE7DsrB,GAAOA,EAAK0a,OAAOhmC,OAEhB,CACH,GAAkB,WAAdsrB,EAAK5X,KACP,KAAM,IAAI3X,OAAM,yBAA2BiE,EAAO,sBAEpDsrB,GAAOA,EAAK0a,OAAOxG,OAAO,SAAUI,GAClC,MAAOA,GAAM5B,QAAUh+B,IACtB,IAIP,MAAOsrB,IAQTkR,EAAK/+B,UAAUkiC,YAAc,WAG3B,IAFA,GAAI6a,MACA9uB,EAAS1wB,KAAK0wB,OACXA,GACL8uB,EAAQnjB,QAAQ3L,GAChBA,EAASA,EAAOA,MAElB,OAAO8uB,IAWThe,EAAK/+B,UAAU0hC,SAAW,SAAUhjC,EAAOyjC,GAEzC5kC,KAAK6jC,SAEL7jC,KAAKmB,MAAQA,CACb,IAAIs+C,GAAUz/C,KAAK0hC,IAAI+d,OACvB,IAAIt+C,EAAO,CACJs+C,IACHA,EAAUvY,SAASC,cAAc,MACjCnnC,KAAK0hC,IAAI+d,QAAUA,EACnBz/C,KAAK0hC,IAAIge,QAAQpd,WAAWa,YAAYsc,GAG1C,IAAIE,GAAUzY,SAASC,cAAc,MACrCwY,GAAQvY,UAAY,sCACpBuY,EAAQxc,YAAY+D,SAAS8K,eAAe7wC,EAAM0T,SAElD,IAAI6nC,GAASxV,SAASC,cAAc,SAsCpC,KArCAuV,EAAOhkC,KAAO,SACdgkC,EAAOtV,UAAY,0BACnBsV,EAAOvZ,YAAYwc,GAGnBjD,EAAO1U,YAAc0U,EAAOkD,QAAU,WAEpC,IAAK,GADDC,IAAc,QAAS,QAAS,QAAS,QACpC96C,EAAI,EAAGA,EAAI86C,EAAW39C,OAAQ6C,IAAK,CAC1C,GAAI+6C,GAAYD,EAAW96C,EAC3B46C,GAAQvY,UAAY,iCAAmC0Y,CAEvD,IAAI7B,GAAcj+C,KAAKsmC,OAAOzD,QAAQoN,wBAClC8P,EAAcJ,EAAQ1P,uBAI1B,IAFUhvC,EAAKgzC,WAAWgK,EAAa8B,EAD1B,IAIX,QAGJnd,KAAK5iC,MAIH4kC,IACF8X,EAAOrV,QAAU,WACfzC,EAAMD,cAAc7iC,QAAQ,SAAU4uB,GACpCA,EAAOwS,QAAO,KAGhB0B,EAAMyB,SAAS,WACbzB,EAAMpB,YAMLic,EAAQ1N,YACb0N,EAAQld,YAAYkd,EAAQ1N,WAE9B0N,GAAQtc,YAAYuZ,OAGhB+C,KACFz/C,KAAK0hC,IAAI+d,QAAQnd,WAAWC,YAAYviC,KAAK0hC,IAAI+d,eAC1Cz/C,MAAK0hC,IAAI+d,UAUtBje,EAAK/+B,UAAUu9C,SAAW,WACxB,MAAOhgD,MAAK0wB,OAAS1wB,KAAK0wB,OAAOsa,OAAOhpC,QAAQhC,OAAS,GAO3DwhC,EAAK/+B,UAAUw9C,UAAY,SAASvvB,GAClC1wB,KAAK0wB,OAASA,GAQhB8Q,EAAK/+B,UAAUq8C,SAAW,SAAS9b,EAAO+b,GACxC/+C,KAAKgjC,MAAQA,EACbhjC,KAAKkgD,cAAgBld,EACrBhjC,KAAK++C,eAAmC,IAAlBA,GAOxBvd,EAAK/+B,UAAU09C,SAAW,WAKxB,WAJmBvwC,KAAf5P,KAAKgjC,OACPhjC,KAAKogD,eAGApgD,KAAKgjC,OASdxB,EAAK/+B,UAAUu8C,SAAW,SAASv1C,EAAOiP,GACxC,GAAI2nC,GAAYzb,EAGZoG,EAAShrC,KAAKgrC,MAClB,IAAIA,EACF,KAAOA,EAAO9oC,QACZlC,KAAKuiC,YAAYyI,EAAO,GAS5B,IAHAhrC,KAAK0Y,KAAO1Y,KAAKsgD,SAAS72C,GAGtBiP,GAAQA,GAAQ1Y,KAAK0Y,KAAM,CAC7B,GAAY,UAARA,GAAiC,QAAb1Y,KAAK0Y,KAI3B,KAAM,IAAI3X,OAAM,6CACoBf,KAAK0Y,KACrC,2BAA6BA,EAAO,IALxC1Y,MAAK0Y,KAAOA,EAShB,GAAiB,SAAb1Y,KAAK0Y,KAAiB,CAExB1Y,KAAKgrC,SACL,KAAK,GAAIjmC,GAAI,EAAG6rC,EAAOnnC,EAAMvH,OAAQ6C,EAAI6rC,EAAM7rC,QAE1B6K,MADnBywC,EAAa52C,EAAM1E,KACes7C,YAAsBv5C,YAEtD89B,EAAQ,GAAIpD,GAAKxhC,KAAKsmC,QACpB78B,MAAO42C,IAETrgD,KAAKmjC,YAAYyB,GAGrB5kC,MAAKyJ,MAAQ,OAEV,IAAiB,UAAbzJ,KAAK0Y,KAAkB,CAE9B1Y,KAAKgrC,SACL,KAAK,GAAIuV,KAAc92C,GACjBA,EAAMyD,eAAeqzC,SAEJ3wC,MADnBywC,EAAa52C,EAAM82C,KACeF,YAAsBv5C,YAEtD89B,EAAQ,GAAIpD,GAAKxhC,KAAKsmC,QACpBtD,MAAOud,EACP92C,MAAO42C,IAETrgD,KAAKmjC,YAAYyB,IAIvB5kC,MAAKyJ,MAAQ,IAG8B,IAAvCzJ,KAAKsmC,OAAOzlC,QAAQ2/C,gBACtBxgD,KAAK+wB,KAAK,WAKZ/wB,MAAKgrC,WAASp7B,GACd5P,KAAKyJ,MAAQA,CAGfzJ,MAAKygD,cAAgBzgD,KAAKyJ,OAO5B+3B,EAAK/+B,UAAU6gC,SAAW,WAGxB,GAAiB,SAAbtjC,KAAK0Y,KAAiB,CACxB,GAAIjD,KAIJ,OAHAzV,MAAKgrC,OAAOlpC,QAAS,SAAU8iC,GAC7BnvB,EAAIyD,KAAK0rB,EAAMtB,cAEV7tB,EAEJ,GAAiB,UAAbzV,KAAK0Y,KAAkB,CAC9B,GAAIe,KAIJ,OAHAzZ,MAAKgrC,OAAOlpC,QAAS,SAAU8iC,GAC7BnrB,EAAImrB,EAAMub,YAAcvb,EAAMtB,aAEzB7pB,EAOP,WAJmB7J,KAAf5P,KAAKyJ,OACPzJ,KAAK0gD,eAGA1gD,KAAKyJ,OAQhB+3B,EAAK/+B,UAAUk+C,SAAW,WACxB,MAAQ3gD,MAAK0wB,OAAS1wB,KAAK0wB,OAAOiwB,WAAa,EAAI,GAOrDnf,EAAK/+B,UAAUmoC,YAAc,WAC3B,GAAI9yB,GAAO9X,KAAK0wB,OAAS1wB,KAAK0wB,OAAOka,gBAErC,OADA9yB,GAAKoB,KAAKlZ,MACH8X,GAST0pB,EAAK/+B,UAAUm+C,MAAQ,WACrB,GAAIA,GAAQ,GAAIpf,GAAKxhC,KAAKsmC,OAS1B,IARAsa,EAAMloC,KAAO1Y,KAAK0Y,KAClBkoC,EAAM5d,MAAQhjC,KAAKgjC,MACnB4d,EAAMC,eAAiB7gD,KAAK6gD,eAC5BD,EAAM7B,cAAgB/+C,KAAK++C,cAC3B6B,EAAMn3C,MAAQzJ,KAAKyJ,MACnBm3C,EAAME,eAAiB9gD,KAAK8gD,eAC5BF,EAAM/B,SAAW7+C,KAAK6+C,SAElB7+C,KAAKgrC,OAAQ,CAEf,GAAI+V,KACJ/gD,MAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5B,GAAIoc,GAAapc,EAAMgc,OACvBI,GAAWf,UAAUW,GACrBG,EAAY7nC,KAAK8nC,KAEnBJ,EAAM5V,OAAS+V,MAIfH,GAAM5V,WAASp7B,EAGjB,OAAOgxC,IAQTpf,EAAK/+B,UAAUygC,OAAS,SAAS4B,GAC1B9kC,KAAKgrC,SAKVhrC,KAAK6+C,UAAW,EACZ7+C,KAAK0hC,IAAIwB,SACXljC,KAAK0hC,IAAIwB,OAAOkE,UAAY,uBAG9BpnC,KAAK0uC,cAEW,IAAZ5J,GACF9kC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5BA,EAAM1B,OAAO4B,OAUnBtD,EAAK/+B,UAAUkhC,SAAW,SAASmB,GAC5B9kC,KAAKgrC,SAIVhrC,KAAKuuC,cAGW,IAAZzJ,GACF9kC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5BA,EAAMjB,SAASmB,KAMf9kC,KAAK0hC,IAAIwB,SACXljC,KAAK0hC,IAAIwB,OAAOkE,UAAY,wBAE9BpnC,KAAK6+C,UAAW,IAMlBrd,EAAK/+B,UAAUisC,WAAa,WAE1B,GADa1uC,KAAKgrC,QAIbhrC,KAAK6+C,SAAV,CAIA,GAAI7D,GAAKh7C,KAAK0hC,IAAIsZ,GACdlY,EAAQkY,EAAKA,EAAG1Y,eAAa1yB,EACjC,IAAIkzB,EAAO,CAET,GAAImL,GAASjuC,KAAKihD,YACdC,EAASlG,EAAGmG,WACZD,GACFpe,EAAM6K,aAAaM,EAAQiT,GAG3Bpe,EAAMK,YAAY8K,GAIpBjuC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5B9B,EAAM6K,aAAa/I,EAAMf,SAAUoK,GACnCrJ,EAAM8J,kBAQZlN,EAAK/+B,UAAUk6C,KAAO,WACpB,GAAI3B,GAAKh7C,KAAK0hC,IAAIsZ,GACdlY,EAAQkY,EAAKA,EAAG1Y,eAAa1yB,EAC7BkzB,IACFA,EAAMP,YAAYyY,GAEpBh7C,KAAKuuC,cAOP/M,EAAK/+B,UAAU8rC,WAAa,WAE1B,GADavuC,KAAKgrC,QAIbhrC,KAAK6+C,SAAV,CAKA,GAAI5Q,GAASjuC,KAAKihD,WACdhT,GAAO3L,YACT2L,EAAO3L,WAAWC,YAAY0L,GAIhCjuC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5BA,EAAM+X,WAUVnb,EAAK/+B,UAAU0gC,YAAc,SAAS7S,GACpC,GAAItwB,KAAKohD,aAAc,CASrB,GAPA9wB,EAAK2vB,UAAUjgD,MACfswB,EAAKyuB,cAA8B,UAAb/+C,KAAK0Y,KACV,SAAb1Y,KAAK0Y,OACP4X,EAAKnc,MAAQnU,KAAKgrC,OAAO9oC,QAE3BlC,KAAKgrC,OAAO9xB,KAAKoX,GAEbtwB,KAAK6+C,SAAU,CAEjB,GAAIwC,GAAQ/wB,EAAKuT,SACbyd,EAAWthD,KAAKihD,YAChBne,EAAQwe,EAAWA,EAAShf,eAAa1yB,EACzC0xC,IAAYxe,GACdA,EAAM6K,aAAa0T,EAAOC,GAG5BhxB,EAAKoe,aAGP1uC,KAAK6kC,WAAW0c,eAAiB,IACjCjxB,EAAKuU,WAAWC,SAAW,MAW/BtD,EAAK/+B,UAAU4rC,WAAa,SAAS/d,EAAMsd,GACzC,GAAI5tC,KAAKohD,aAAc,CAGrB,GAAIxd,GAAS5jC,KAAK0hC,IAAM,GAAI1hC,KAAK0hC,IAAIsZ,GAAG1Y,eAAa1yB,EACrD,IAAIg0B,EAAO,CACT,GAAI4d,GAASta,SAASC,cAAc,KACpCqa,GAAO3Q,MAAMzL,OAASxB,EAAMyB,aAAe,KAC3CzB,EAAMT,YAAYqe,GAGhBlxB,EAAKI,QACPJ,EAAKI,OAAO6R,YAAYjS,GAGtBsd,YAAsB6T,GACxBzhD,KAAKmjC,YAAY7S,GAGjBtwB,KAAK2tC,aAAard,EAAMsd,GAGtBhK,GACFA,EAAMrB,YAAYif,KAYxBhgB,EAAK/+B,UAAUi/C,OAAS,SAAUpxB,EAAMnc,GACtC,GAAImc,EAAKI,QAAU1wB,KAAM,CAEJA,KAAKgrC,OAAOhpC,QAAQsuB,GACpBnc,GAEjBA,IAIJ,GAAIy5B,GAAa5tC,KAAKgrC,OAAO72B,IAAUnU,KAAKiuC,MAC5CjuC,MAAKquC,WAAW/d,EAAMsd,IASxBpM,EAAK/+B,UAAUkrC,aAAe,SAASrd,EAAMsd,GAC3C,GAAI5tC,KAAKohD,aAAc,CACrB,GAAIxT,GAAc5tC,KAAKiuC,OAIrB3d,EAAK2vB,UAAUjgD,MACfswB,EAAKyuB,cAA8B,UAAb/+C,KAAK0Y,KAC3B1Y,KAAKgrC,OAAO9xB,KAAKoX,OAEd,CAEH,GAAInc,GAAQnU,KAAKgrC,OAAOhpC,QAAQ4rC,EAChC,KAAc,GAAVz5B,EACF,KAAM,IAAIpT,OAAM,iBAIlBuvB,GAAK2vB,UAAUjgD,MACfswB,EAAKyuB,cAA8B,UAAb/+C,KAAK0Y,KAC3B1Y,KAAKgrC,OAAOx1B,OAAOrB,EAAO,EAAGmc,GAG/B,GAAItwB,KAAK6+C,SAAU,CAEjB,GAAIwC,GAAQ/wB,EAAKuT,SACbqd,EAAStT,EAAW/J,SACpBf,EAAQoe,EAASA,EAAO5e,eAAa1yB,EACrCsxC,IAAUpe,GACZA,EAAM6K,aAAa0T,EAAOH,GAG5B5wB,EAAKoe,aAGP1uC,KAAK6kC,WAAW0c,eAAiB,IACjCjxB,EAAKuU,WAAWC,SAAW,MAU/BtD,EAAK/+B,UAAUsrC,YAAc,SAASzd,EAAMwd,GAC1C,GAAI9tC,KAAKohD,aAAc,CACrB,GAAIjtC,GAAQnU,KAAKgrC,OAAOhpC,QAAQ8rC,GAC5BF,EAAa5tC,KAAKgrC,OAAO72B,EAAQ,EACjCy5B,GACF5tC,KAAK2tC,aAAard,EAAMsd,GAGxB5tC,KAAKmjC,YAAY7S,KAYvBkR,EAAK/+B,UAAUq2B,OAAS,SAASnH,GAC/B,GACIxd,GADAub,KAEAoJ,EAASnH,EAAOA,EAAK+E,kBAAgB9mB,EAOzC,UAJO5P,MAAK2hD,kBACL3hD,MAAK4hD,gBAGMhyC,IAAd5P,KAAKgjC,MAAoB,CAE3B7uB,EADY+a,OAAOlvB,KAAKgjC,OAAOtM,cACjB10B,QAAQ82B,IACR,GAAV3kB,IACFnU,KAAK2hD,aAAc,EACnBjyB,EAAQxW,MACNoX,KAAQtwB,KACRgwC,KAAQ,WAKZhwC,KAAK6hD,kBAIP,GAAI7hD,KAAKohD,aAAc,CAIrB,GAAIphD,KAAKgrC,OAAQ,CACf,GAAI8W,KACJ9hD,MAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5Bkd,EAAeA,EAAa1oC,OAAOwrB,EAAM9L,OAAOnH,MAElDjC,EAAUA,EAAQtW,OAAO0oC,GAI3B,OAAclyC,IAAVkpB,EAAqB,CAEI,GAAvBgpB,EAAa5/C,OACflC,KAAK2jC,UAFO,GAKZ3jC,KAAKkjC,QALO,QASb,CAEH,OAAkBtzB,IAAd5P,KAAKyJ,MAAqB,CAE5B0K,EADY+a,OAAOlvB,KAAKyJ,OAAOitB,cACjB10B,QAAQ82B,IACR,GAAV3kB,IACFnU,KAAK4hD,aAAc,EACnBlyB,EAAQxW,MACNoX,KAAQtwB,KACRgwC,KAAQ,WAMdhwC,KAAK+hD,kBAGP,MAAOryB,IAQT8R,EAAK/+B,UAAU4jC,SAAW,SAASz+B,GACjC,IAAK5H,KAAK0hC,IAAIsZ,KAAOh7C,KAAK0hC,IAAIsZ,GAAG1Y,WAI/B,IAFA,GAAI5R,GAAS1wB,KAAK0wB,OAEXA,GACLA,EAAOwS,QAFK,GAGZxS,EAASA,EAAOA,MAIhB1wB,MAAK0hC,IAAIsZ,IAAMh7C,KAAK0hC,IAAIsZ,GAAG1Y,YAC7BtiC,KAAKsmC,OAAOD,SAASrmC,KAAK0hC,IAAIsZ,GAAGgH,UAAWp6C,IAMhD45B,EAAKygB,iBAAeryC,GAQpB4xB,EAAK/+B,UAAU+gC,MAAQ,SAAS0e,GAG9B,GAFA1gB,EAAKygB,aAAeC,EAEhBliD,KAAK0hC,IAAIsZ,IAAMh7C,KAAK0hC,IAAIsZ,GAAG1Y,WAAY,CACzC,GAAIZ,GAAM1hC,KAAK0hC,GAEf,QAAQwgB,GACN,IAAK,OACCxgB,EAAI0H,KACN1H,EAAI0H,KAAK5F,QAGT9B,EAAIgC,KAAKF,OAEX,MAEF,KAAK,OACH9B,EAAIgC,KAAKF,OACT,MAEF,KAAK,SACCxjC,KAAKohD,aACP1f,EAAIwB,OAAOM,QAEJ9B,EAAIsB,OAAShjC,KAAK++C,eACzBrd,EAAIsB,MAAMQ,QACVviC,EAAKyqC,sBAAsBhK,EAAIsB,QAExBtB,EAAIj4B,QAAUzJ,KAAKohD,cAC1B1f,EAAIj4B,MAAM+5B,QACVviC,EAAKyqC,sBAAsBhK,EAAIj4B,QAG/Bi4B,EAAIgC,KAAKF,OAEX,MAEF,KAAK,QACC9B,EAAIsB,OAAShjC,KAAK++C,eACpBrd,EAAIsB,MAAMQ,QACVviC,EAAKyqC,sBAAsBhK,EAAIsB,QAExBtB,EAAIj4B,QAAUzJ,KAAKohD,cAC1B1f,EAAIj4B,MAAM+5B,QACVviC,EAAKyqC,sBAAsBhK,EAAIj4B,QAExBzJ,KAAKohD,aACZ1f,EAAIwB,OAAOM,QAGX9B,EAAIgC,KAAKF,OAEX,MAEF,KAAK,QACL,QACM9B,EAAIqE,OAENrE,EAAIqE,OAAOvC,QAEJ9B,EAAIj4B,QAAUzJ,KAAKohD,cAC1B1f,EAAIj4B,MAAM+5B,QACVviC,EAAKyqC,sBAAsBhK,EAAIj4B,QAExBi4B,EAAIsB,OAAShjC,KAAK++C,eACzBrd,EAAIsB,MAAMQ,QACVviC,EAAKyqC,sBAAsBhK,EAAIsB,QAExBhjC,KAAKohD,aACZ1f,EAAIwB,OAAOM,QAGX9B,EAAIgC,KAAKF,WAWnBhC,EAAKuE,OAAS,SAASoc,GACrBn6C,WAAW,WACT/G,EAAKyqC,sBAAsByW,IAC1B,IAML3gB,EAAK/+B,UAAU4gC,KAAO,WAEpBrjC,KAAK0gD,cAAa,GAClB1gD,KAAKogD,cAAa,IASpB5e,EAAK/+B,UAAU2/C,aAAe,SAAS9xB,GACrC,GAAItwB,MAAQswB,EACV,OAAO,CAGT,IAAI0a,GAAShrC,KAAKgrC,MAClB,IAAIA,EAEF,IAAK,GAAIjmC,GAAI,EAAG6rC,EAAO5F,EAAO9oC,OAAQ6C,EAAI6rC,EAAM7rC,IAC9C,GAAIimC,EAAOjmC,GAAGq9C,aAAa9xB,GACzB,OAAO,CAKb,QAAO,GAWTkR,EAAK/+B,UAAU4/C,MAAQ,SAAS/xB,EAAMsd,GACpC,GAAItd,GAAQsd,EAAZ,CAMA,GAAItd,EAAK8xB,aAAapiD,MACpB,KAAM,IAAIe,OAAM,6CAIduvB,GAAKI,QACPJ,EAAKI,OAAO6R,YAAYjS,EAI1B,IAAIswB,GAAQtwB,EAAKswB,OACjBtwB,GAAKgyB,WAGD1U,EACF5tC,KAAK2tC,aAAaiT,EAAOhT,GAGzB5tC,KAAKmjC,YAAYyd,KAgBrBpf,EAAK/+B,UAAU8/B,YAAc,SAASjS,GACpC,GAAItwB,KAAKgrC,OAAQ,CACf,GAAI72B,GAAQnU,KAAKgrC,OAAOhpC,QAAQsuB,EAEhC,KAAc,GAAVnc,EAAa,CACfmc,EAAKqsB,aAGErsB,GAAKqxB,kBACLrxB,GAAKsxB,WAEZ,IAAIW,GAAcviD,KAAKgrC,OAAOx1B,OAAOrB,EAAO,GAAG,EAK/C,OAJAouC,GAAY7xB,OAAS,KAErB1wB,KAAK6kC,WAAW0c,eAAiB,IAE1BgB,KAcb/gB,EAAK/+B,UAAU+/C,QAAU,SAAUlyB,GACjCtwB,KAAKuiC,YAAYjS,IAOnBkR,EAAK/+B,UAAU6qC,WAAa,SAAUE,GACpC,GAAID,GAAUvtC,KAAK0Y,IAEnB,IAAI60B,GAAWC,EAAf,CAKA,GAAgB,UAAXA,GAAkC,QAAXA,GACZ,UAAXD,GAAkC,QAAXA,EAIvB,CAEH,GACIkV,GADA3f,EAAQ9iC,KAAK0hC,IAAIsZ,GAAKh7C,KAAK0hC,IAAIsZ,GAAG1Y,eAAa1yB,EAGjD6yC,GADEziD,KAAK6+C,SACE7+C,KAAKihD,YAGLjhD,KAAK6jC,QAEhB,IAAIqd,GAAUuB,GAAUA,EAAOngB,WAAcmgB,EAAOtB,gBAAcvxC,EAGlE5P,MAAK28C,OACL38C,KAAKsiD,WAGLtiD,KAAK0Y,KAAO80B,EAGG,UAAXA,GACGxtC,KAAKgrC,SACRhrC,KAAKgrC,WAGPhrC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,EAAOzwB,GACnCywB,EAAM0d,iBACC1d,GAAMzwB,MACbywB,EAAMma,eAAgB,MACHnvC,IAAfg1B,EAAM5B,QACR4B,EAAM5B,MAAQ,MAIH,UAAXuK,GAAkC,QAAXA,IACzBvtC,KAAK6+C,UAAW,IAGA,SAAXrR,GACFxtC,KAAKgrC,SACRhrC,KAAKgrC,WAGPhrC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,EAAOzwB,GACnCywB,EAAM0d,WACN1d,EAAMma,eAAgB,EACtBna,EAAMzwB,MAAQA,IAGD,UAAXo5B,GAAkC,QAAXA,IACzBvtC,KAAK6+C,UAAW,IAIlB7+C,KAAK6+C,UAAW,EAId/b,IACEoe,EACFpe,EAAM6K,aAAa3tC,KAAK6jC,SAAUqd,GAGlCpe,EAAMK,YAAYnjC,KAAK6jC,WAG3B7jC,KAAK0uC,iBApEL1uC,MAAK0Y,KAAO80B,CAuEC,SAAXA,GAAgC,UAAXA,IAGrBxtC,KAAKyJ,MADQ,UAAX+jC,EACWte,OAAOlvB,KAAKyJ,OAGZzJ,KAAK0iD,YAAYxzB,OAAOlvB,KAAKyJ,QAG5CzJ,KAAKwjC,SAGPxjC,KAAK6kC,WAAW0c,eAAiB,MASnC/f,EAAK/+B,UAAUi+C,aAAe,SAASiC,GAKrC,GAJI3iD,KAAK0hC,IAAIj4B,OAAsB,SAAbzJ,KAAK0Y,MAAgC,UAAb1Y,KAAK0Y,OACjD1Y,KAAK8gD,eAAiB7/C,EAAKkxC,aAAanyC,KAAK0hC,IAAIj4B,YAGxBmG,IAAvB5P,KAAK8gD,eACP,IAEE,GAAIr3C,EACJ,IAAiB,UAAbzJ,KAAK0Y,KACPjP,EAAQzJ,KAAK4iD,cAAc5iD,KAAK8gD,oBAE7B,CACH,GAAIrzC,GAAMzN,KAAK4iD,cAAc5iD,KAAK8gD,eAClCr3C,GAAQzJ,KAAK0iD,YAAYj1C,GAEvBhE,IAAUzJ,KAAKyJ,QACjBzJ,KAAKyJ,MAAQA,EACbzJ,KAAKi/C,2BAGT,MAAO58C,GAGL,GAFArC,KAAKyJ,UAAQmG,IAEE,IAAX+yC,EACF,KAAMtgD,KAUdm/B,EAAK/+B,UAAUy8C,eAAiB,WAG9B,GAAIpQ,GAAe9uC,KAAKsmC,OAAOJ,cAC/B,IAAI4I,EAAa9I,MAAO,CACtB,GAAI6c,GAAW5hD,EAAK2zC,SAAS1lB,OAAOlvB,KAAKyJ,OAAQylB,OAAOlvB,KAAKygD,eAC7D3R,GAAa9I,MAAM6L,YAAcgR,EAAS7Y,MAC1C8E,EAAa9I,MAAM8L,UAAY+Q,EAAS5Y,IAE1C,GAAI8E,GAAe/uC,KAAKsmC,OAAOJ,cAC/B,IAAI6I,EAAa/I,MAAO,CACtB,GAAI8c,GAAW7hD,EAAK2zC,SAAS1lB,OAAOlvB,KAAKygD,eAAgBvxB,OAAOlvB,KAAKyJ,OACrEslC,GAAa/I,MAAM6L,YAAciR,EAAS9Y,MAC1C+E,EAAa/I,MAAM8L,UAAYgR,EAAS7Y,IAG1CjqC,KAAKsmC,OAAOtC,UAAU,aACpB1T,KAAMtwB,KACNktC,SAAUltC,KAAKygD,cACftT,SAAUntC,KAAKyJ,MACfqlC,aAAcA,EACdC,aAAcA,IAGhB/uC,KAAKygD,cAAgBzgD,KAAKyJ,OAO5B+3B,EAAK/+B,UAAU28C,eAAiB,WAG9B,GAAItQ,GAAe9uC,KAAKsmC,OAAOJ,cAC/B,IAAI4I,EAAa9I,MAAO,CACtB,GAAI6c,GAAW5hD,EAAK2zC,SAAS50C,KAAKgjC,MAAOhjC,KAAKkgD,cAC9CpR,GAAa9I,MAAM6L,YAAcgR,EAAS7Y,MAC1C8E,EAAa9I,MAAM8L,UAAY+Q,EAAS5Y,IAE1C,GAAI8E,GAAe/uC,KAAKsmC,OAAOJ,cAC/B,IAAI6I,EAAa/I,MAAO,CACtB,GAAI8c,GAAW7hD,EAAK2zC,SAAS50C,KAAKkgD,cAAelgD,KAAKgjC,MACtD+L,GAAa/I,MAAM6L,YAAciR,EAAS9Y,MAC1C+E,EAAa/I,MAAM8L,UAAYgR,EAAS7Y,IAG1CjqC,KAAKsmC,OAAOtC,UAAU,aACpB1T,KAAMtwB,KACNktC,SAAUltC,KAAKkgD,cACf/S,SAAUntC,KAAKgjC,MACf8L,aAAcA,EACdC,aAAcA,IAGhB/uC,KAAKkgD,cAAgBlgD,KAAKgjC,OAU5BxB,EAAK/+B,UAAUs/C,gBAAkB,WAC/B,GAAIgB,GAAW/iD,KAAK0hC,IAAIj4B,KACxB,IAAIs5C,EAAU,CACZ,GAAIC,IAAc,oBAIdv5C,EAAQzJ,KAAKyJ,MACbiP,EAAqB,QAAb1Y,KAAK0Y,KAAkBzX,EAAKyX,KAAKjP,GAASzJ,KAAK0Y,KACvDo3B,EAAgB,UAARp3B,GAAoBzX,EAAK6uC,MAAMrmC,EAC3Cu5C,GAAW9pC,KAAK,cAAgBR,GAC5Bo3B,GACFkT,EAAW9pC,KAAK,iBAoBlB,IAhBqC,IAAtBgW,OAAOlvB,KAAKyJ,QAA6B,SAAbzJ,KAAK0Y,MAAgC,UAAb1Y,KAAK0Y,MAEtEsqC,EAAW9pC,KAAK,oBAIdlZ,KAAKg8C,mBACPgH,EAAW9pC,KAAK,+BAEdlZ,KAAK4hD,aACPoB,EAAW9pC,KAAK,wBAGlB6pC,EAAS3b,UAAY4b,EAAWr/B,KAAK,KAGzB,SAARjL,GAA2B,UAARA,EAAkB,CACvC,GAAIpB,GAAQtX,KAAKgrC,OAAShrC,KAAKgrC,OAAO9oC,OAAS,CAC/C6gD,GAASx2B,MAAQvsB,KAAK0Y,KAAO,eAAiBpB,EAAQ,aAE/Cw4B,IAAS9vC,KAAKyB,SAASgI,MAC9Bs5C,EAASx2B,MAAQ,qDAGjBw2B,EAASx2B,MAAQ,EA0BnB,IAtBa,YAAT7T,GAAsB1Y,KAAKyB,SAASgI,OACjCzJ,KAAK0hC,IAAIuhB,WACZjjD,KAAK0hC,IAAIuhB,SAAW/b,SAASC,cAAc,SAC3CnnC,KAAK0hC,IAAIuhB,SAASvqC,KAAO,WACzB1Y,KAAK0hC,IAAIwhB,WAAahc,SAASC,cAAc,MAC7CnnC,KAAK0hC,IAAIwhB,WAAW9b,UAAY,kBAChCpnC,KAAK0hC,IAAIwhB,WAAW/f,YAAYnjC,KAAK0hC,IAAIuhB,UAEzCjjD,KAAK0hC,IAAIge,QAAQpd,WAAWqL,aAAa3tC,KAAK0hC,IAAIwhB,WAAYljD,KAAK0hC,IAAIge,UAGzE1/C,KAAK0hC,IAAIuhB,SAASE,QAAUnjD,KAAKyJ,OAI7BzJ,KAAK0hC,IAAIwhB,aACXljD,KAAK0hC,IAAIwhB,WAAW5gB,WAAWC,YAAYviC,KAAK0hC,IAAIwhB,kBAC7CljD,MAAK0hC,IAAIwhB,iBACTljD,MAAK0hC,IAAIuhB,UAIhBjjD,KAAKgK,MAAQhK,KAAKyB,SAASgI,MAAO,CAEpC,IAAKzJ,KAAK0hC,IAAIqE,OAAQ,CACpB/lC,KAAK0hC,IAAIqE,OAASmB,SAASC,cAAc,UACzCnnC,KAAKK,GAAKL,KAAKgjC,MAAQ,KAAM,GAAIr2B,OAAOy2C,qBACxCpjD,KAAK0hC,IAAIqE,OAAO1lC,GAAKL,KAAKK,GAC1BL,KAAK0hC,IAAIqE,OAAOxiC,KAAOvD,KAAK0hC,IAAIqE,OAAO1lC,GAGvCL,KAAK0hC,IAAIqE,OAAOhkC,OAASmlC,SAASC,cAAc,UAChDnnC,KAAK0hC,IAAIqE,OAAOhkC,OAAO0H,MAAQ,GAC/BzJ,KAAK0hC,IAAIqE,OAAOhkC,OAAOq6C,UAAY,KACnCp8C,KAAK0hC,IAAIqE,OAAO5C,YAAYnjC,KAAK0hC,IAAIqE,OAAOhkC,OAG5C,KAAI,GAAIgD,GAAI,EAAGA,EAAI/E,KAAKgK,KAAK9H,OAAQ6C,IACnC/E,KAAK0hC,IAAIqE,OAAOhkC,OAASmlC,SAASC,cAAc,UAChDnnC,KAAK0hC,IAAIqE,OAAOhkC,OAAO0H,MAAQzJ,KAAKgK,KAAKjF,GACzC/E,KAAK0hC,IAAIqE,OAAOhkC,OAAOq6C,UAAYp8C,KAAKgK,KAAKjF,GAC1C/E,KAAK0hC,IAAIqE,OAAOhkC,OAAO0H,OAASzJ,KAAKyJ,QACtCzJ,KAAK0hC,IAAIqE,OAAOhkC,OAAOgnC,UAAW,GAEpC/oC,KAAK0hC,IAAIqE,OAAO5C,YAAYnjC,KAAK0hC,IAAIqE,OAAOhkC,OAG9C/B,MAAK0hC,IAAI2hB,SAAWnc,SAASC,cAAc,MAC3CnnC,KAAK0hC,IAAI2hB,SAASjc,UAAY,kBAC9BpnC,KAAK0hC,IAAI2hB,SAASlgB,YAAYnjC,KAAK0hC,IAAIqE,QACvC/lC,KAAK0hC,IAAIge,QAAQpd,WAAWqL,aAAa3tC,KAAK0hC,IAAI2hB,SAAUrjD,KAAK0hC,IAAIge,UAKpE1/C,KAAKsE,QACHtE,KAAKsE,OAAO4I,eAAe,UAC3BlN,KAAKsE,OAAO4I,eAAe,UAC3BlN,KAAKsE,OAAO4I,eAAe,eAMvBlN,MAAKsjD,gBAJZtjD,KAAKsjD,eAAiBtjD,KAAK0hC,IAAIge,QAAQtD,UACvCp8C,KAAK0hC,IAAIge,QAAQ7O,MAAM0S,WAAa,SACpCvjD,KAAK0hC,IAAIge,QAAQtD,UAAY,QAO3Bp8C,MAAK0hC,IAAI2hB,WACXrjD,KAAK0hC,IAAI2hB,SAAS/gB,WAAWC,YAAYviC,KAAK0hC,IAAI2hB,gBAC3CrjD,MAAK0hC,IAAI2hB,eACTrjD,MAAK0hC,IAAIqE,OAChB/lC,KAAK0hC,IAAIge,QAAQtD,UAAYp8C,KAAKsjD,eAClCtjD,KAAK0hC,IAAIge,QAAQ7O,MAAM0S,WAAa,SAC7BvjD,MAAKsjD,eAKhBriD,GAAKwvC,gBAAgBsS,KAWzBvhB,EAAK/+B,UAAUo/C,gBAAkB,WAC/B,GAAI2B,GAAWxjD,KAAK0hC,IAAIsB,KACxB,IAAIwgB,EAAU,CAEyB,IAAtBt0B,OAAOlvB,KAAKgjC,QAAoC,SAApBhjC,KAAK0wB,OAAOhY,KAErDzX,EAAKqvC,aAAakT,EAAU,oBAG5BviD,EAAKuvC,gBAAgBgT,EAAU,oBAI7BxjD,KAAK+7C,kBACP96C,EAAKqvC,aAAakT,EAAU,+BAG5BviD,EAAKuvC,gBAAgBgT,EAAU,+BAE7BxjD,KAAK2hD,YACP1gD,EAAKqvC,aAAakT,EAAU,wBAG5BviD,EAAKuvC,gBAAgBgT,EAAU,wBAIjCviD,EAAKwvC,gBAAgB+S,KAUzBhiB,EAAK/+B,UAAU29C,aAAe,SAASuC,GAKrC,GAJI3iD,KAAK0hC,IAAIsB,OAAShjC,KAAK++C,gBACzB/+C,KAAK6gD,eAAiB5/C,EAAKkxC,aAAanyC,KAAK0hC,IAAIsB,YAGxBpzB,IAAvB5P,KAAK6gD,eACP,IACE,GAAI7d,GAAQhjC,KAAK4iD,cAAc5iD,KAAK6gD,eAEhC7d,KAAUhjC,KAAKgjC,QACjBhjC,KAAKgjC,MAAQA,EACbhjC,KAAKm/C,2BAGT,MAAO98C,GAGL,GAFArC,KAAKgjC,UAAQpzB,IAEE,IAAX+yC,EACF,KAAMtgD,KAUdm/B,EAAK/+B,UAAUmC,SAAW,WACxB,GAAIsM,KAGJ,IAAkB,WAAdlR,KAAK0Y,KAAmB,CAG1B,IAAK,GAFD7W,MACA4hD,KACK1+C,EAAI,EAAGA,EAAI/E,KAAKgrC,OAAO9oC,OAAQ6C,IAAK,CAC3C,GAAI6/B,GAAQ5kC,KAAKgrC,OAAOjmC,EACpBlD,GAAKqL,eAAe03B,EAAM5B,QAC5BygB,EAAcvqC,KAAK0rB,EAAM5B,OAE3BnhC,EAAK+iC,EAAM5B,QAAS,EAGlBygB,EAAcvhD,OAAS,IACzBgP,EAASlR,KAAKgrC,OACTxG,OAAO,SAAUlU,GAChB,OAA8C,IAAvCmzB,EAAczhD,QAAQsuB,EAAK0S,SAEnC/pB,IAAI,SAAUqX,GACb,OACEA,KAAMA,EACNnvB,OACE0T,QAAS,kBAAoByb,EAAK0S,MAAQ,SAQxD,GAAIhjC,KAAKgrC,OACP,IAAK,GAAIjmC,GAAI,EAAGA,EAAI/E,KAAKgrC,OAAO9oC,OAAQ6C,IAAK,CAC3C,GAAIO,GAAItF,KAAKgrC,OAAOjmC,GAAGH,UACnBU,GAAEpD,OAAS,IACbgP,EAASA,EAAOkI,OAAO9T,IAK7B,MAAO4L,IAMTswB,EAAK/+B,UAAU6/C,SAAW,WAKxBtiD,KAAK0hC,QAQPF,EAAK/+B,UAAUohC,OAAS,WACtB,GAAInC,GAAM1hC,KAAK0hC,GACf,IAAIA,EAAIsZ,GACN,MAAOtZ,GAAIsZ,EASb,IANAh7C,KAAKu/C,qBAGL7d,EAAIsZ,GAAK9T,SAASC,cAAc,MAChCzF,EAAIsZ,GAAG1qB,KAAOtwB,KAEmB,SAA7BA,KAAKsmC,OAAOzlC,QAAQ8B,KAAiB,CACvC,GAAI+gD,GAASxc,SAASC,cAAc,KACpC,IAAInnC,KAAKyB,SAASuhC,OAEZhjC,KAAK0wB,OAAQ,CACf,GAAIizB,GAAUzc,SAASC,cAAc,SACrCwc,GAAQjrC,KAAO,SACfgpB,EAAI0H,KAAOua,EACXA,EAAQvc,UAAY,sBACpBuc,EAAQp3B,MAAQ,6CAChBm3B,EAAOvgB,YAAYwgB,GAGvBjiB,EAAIsZ,GAAG7X,YAAYugB,EAGnB,IAAIE,GAAS1c,SAASC,cAAc,MAChCzD,EAAOwD,SAASC,cAAc,SAClCzD,GAAKhrB,KAAO,SACZgpB,EAAIgC,KAAOA,EACXA,EAAK0D,UAAY,yBACjB1D,EAAKnX,MAAQ,0CACbq3B,EAAOzgB,YAAYzB,EAAIgC,MACvBhC,EAAIsZ,GAAG7X,YAAYygB,GAIrB,GAAIC,GAAU3c,SAASC,cAAc,KAOrC,OANAzF,GAAIsZ,GAAG7X,YAAY0gB,GACnBniB,EAAIoiB,KAAO9jD,KAAK+jD,iBAChBF,EAAQ1gB,YAAYzB,EAAIoiB,MAExB9jD,KAAK6kC,WAAW0c,eAAiB,IAE1B7f,EAAIsZ,IAQbxZ,EAAK2H,YAAc,SAAUrH,EAAOkF,GAClC,IAAKx6B,MAAMvH,QAAQ68B,GACjB,MAAON,GAAK2H,aAAarH,GAAQkF,EAEnC,IAAqB,IAAjBlF,EAAM5/B,OAAV,CAIA,GAAI8hD,GAAYliB,EAAM,GAClBmiB,EAAWniB,EAAMA,EAAM5/B,OAAS,GAChCgiD,EAAc1iB,EAAK4B,kBAAkB4D,EAAMM,QAC3CsG,EAAaqW,EAASE,eACtB7d,EAAS0d,EAAU1d,OAInB8d,EAAUnjD,EAAKkkC,eAAe+e,EAAYxiB,IAAIsZ,IAAM/5C,EAAKkkC,eAAe6e,EAAUtiB,IAAIsZ,GAErF1U,GAAO4D,YACV5D,EAAO4D,UAAYjpC,EAAKinC,iBAAiBjR,OAAQ,YAAa,SAAU+P,GACtExF,EAAK6iB,OAAOviB,EAAOkF,MAIlBV,EAAO8D,UACV9D,EAAO8D,QAAUnpC,EAAKinC,iBAAiBjR,OAAQ,UAAU,SAAU+P,GACjExF,EAAK8iB,UAAUxiB,EAAOkF,MAI1BV,EAAO3E,YAAYmL,OACnBxG,EAAO8C,MACLmb,UAAWrd,SAASsd,KAAK3T,MAAM4T,OAC/B3V,aAAcxI,EAAOJ,eACrBkI,cAAeR,EACf8W,OAAQ1d,EAAMyC,MACd2a,QAASA,EACThmC,MAAO4lC,EAAUrD,YAEnBzZ,SAASsd,KAAK3T,MAAM4T,OAAS,OAE7Bzd,EAAMO,mBAQR/F,EAAK6iB,OAAS,SAAUviB,EAAOkF,GAC7B,IAAKx6B,MAAMvH,QAAQ68B,GACjB,MAAON,GAAK6iB,QAAQviB,GAAQkF,EAE9B,IAAqB,IAAjBlF,EAAM5/B,OAAV,CAKA,GAGIyiD,GAAQC,EAAQC,EAAQC,EAASC,EAAQC,EACzCC,EAAUC,EACVC,EAASC,EAASC,EAAUC,EAAYC,EAAYC,EALpDlf,EAASxE,EAAM,GAAGwE,OAClBtB,EAASgC,EAAM2C,MAAQrD,EAAO8C,KAAKgb,QACnCM,EAAS1d,EAAMyC,MAIfgc,GAAQ,EAKRzB,EAAYliB,EAAM,EAItB,IAHA6iB,EAASX,EAAUtiB,IAAIsZ,GACvBmK,EAAUlkD,EAAKkkC,eAAewf,GAC9BW,EAAaX,EAAOxG,aAChBnZ,EAASmgB,EAAS,CAEpBP,EAASD,CACT,IACEC,EAASA,EAAOc,gBAChBT,EAAWzjB,EAAK4B,kBAAkBwhB,GAClCQ,EAAUR,EAAS3jD,EAAKkkC,eAAeyf,GAAU,QAE5CA,GAAU5f,EAASogB,EAEtBH,KAAaA,EAASv0B,SACxBu0B,MAAWr1C,IAGRq1C,IAEHD,EAASL,EAAOriB,WAAWyP,WAC3B6S,EAASI,EAASA,EAAO7D,gBAAcvxC,IACvCq1C,EAAWzjB,EAAK4B,kBAAkBwhB,KAClBZ,IACdiB,MAAWr1C,KAIXq1C,IAEFL,EAASK,EAASvjB,IAAIsZ,GACtBoK,EAAUR,EAAS3jD,EAAKkkC,eAAeyf,GAAU,EAC7C5f,EAASogB,EAAUE,IACrBL,MAAWr1C,KAIXq1C,IACFnjB,EAAMhgC,QAAQ,SAAUwuB,GACtB20B,EAASv0B,OAAO2d,WAAW/d,EAAM20B,KAEnCQ,GAAQ,OAGP,CAEH,GAAIxB,GAAWniB,EAAMA,EAAM5/B,OAAS,EAGpC,IAFA6iD,EAAUd,EAASpF,UAAYoF,EAAShW,OAAUgW,EAAShW,OAAOpK,SAAWogB,EAASviB,IAAIsZ,GAC1F8J,EAAUC,EAASA,EAAO5D,gBAAcvxC,GAC3B,CACXy1C,EAAWpkD,EAAKkkC,eAAe2f,GAC/BD,EAASC,CACT,IACEI,EAAW1jB,EAAK4B,kBAAkByhB,GAC9BA,IACFU,EAAaV,EAAO1D,YAChBlgD,EAAKkkC,eAAe0f,EAAO1D,aAAe,EAC9CqE,EAAaX,EAAUU,EAAaF,EAAY,EAE5CH,EAASx0B,OAAOsa,OAAO9oC,QAAU4/B,EAAM5/B,QACvCgjD,EAASx0B,OAAOsa,OAAOlJ,EAAM5/B,OAAS,IAAM+hD,IAG9CkB,GAAW,KAKfN,EAASA,EAAO1D,kBAEX0D,GAAU7f,EAASmgB,EAAUK,EAEpC,IAAIN,GAAYA,EAASx0B,OAAQ,CAE/B,GAAImZ,GAAS6a,EAASpe,EAAO8C,KAAKsb,OAC9BiB,EAAYruB,KAAKsuB,MAAM/b,EAAQ,GAAK,GACpCzrB,EAAQkoB,EAAO8C,KAAKhrB,MAAQunC,EAC5BE,EAAYX,EAASvE,UAIzB,KADAiE,EAASM,EAASxjB,IAAIsZ,GAAG0K,gBAClBG,EAAYznC,GAASwmC,GAAQ,CAClCK,EAAWzjB,EAAK4B,kBAAkBwhB,EAMlC,IAJoB9iB,EAAMgkB,KAAK,SAAUx1B,GACvC,MAAOA,KAAS20B,GAAYA,EAAS5G,WAAW/tB,UAM7C,CAAA,KAAI20B,YAAoBxD,IAe3B,KAdA,IAAIzW,GAASia,EAASv0B,OAAOsa,MAC7B,IAAIA,EAAO9oC,QAAU4/B,EAAM5/B,QAAU8oC,EAAOlJ,EAAM5/B,OAAS,IAAM+hD,EAS/D,KAJAiB,GAAW1jB,EAAK4B,kBAAkBwhB,GAClCiB,EAAYX,EAASvE,WAUzBiE,EAASA,EAAOc,gBAIdX,EAAO5D,aAAe+D,EAASxjB,IAAIsZ,KACrClZ,EAAMhgC,QAAQ,SAAUwuB,GACtB40B,EAASx0B,OAAO2d,WAAW/d,EAAM40B,KAEnCO,GAAQ,KAMZA,IAEFnf,EAAO8C,KAAKsb,OAASA,EACrBpe,EAAO8C,KAAKhrB,MAAQ4lC,EAAUrD,YAIhCra,EAAOvB,gBAAgBC,GAEvBgC,EAAMO,mBAQR/F,EAAK8iB,UAAY,SAAUxiB,EAAOkF,GAChC,IAAKx6B,MAAMvH,QAAQ68B,GACjB,MAAON,GAAK6iB,QAAQviB,GAAQkF,EAE9B,IAAqB,IAAjBlF,EAAM5/B,OAAV,CAIA,GAAI8hD,GAAYliB,EAAM,GAClBwE,EAAS0d,EAAU1d,OACnB5V,EAASszB,EAAUtzB,OACnBya,EAAaza,EAAOsa,OAAOhpC,QAAQgiD,GACnCpW,EAAald,EAAOsa,OAAOG,EAAarJ,EAAM5/B,SAAWwuB,EAAOud,MAGhEnM,GAAM,IACRA,EAAM,GAAGJ,IAAIgC,KAAKF,OAGpB,IAAIT,IACFjB,MAAOA,EACPgN,aAAcxI,EAAO8C,KAAK0F,aAC1BC,aAAczI,EAAOJ,eACrBkI,cAAe9H,EAAO8C,KAAKgF,cAC3BE,cAAeV,EAGb7K,GAAOqL,eAAiBrL,EAAOuL,eAEjChI,EAAOtC,UAAU,YAAajB,GAGhCmE,SAASsd,KAAK3T,MAAM4T,OAASne,EAAO8C,KAAKmb,UACzCje,EAAO3E,YAAYoL,SACnBjL,EAAMhgC,QAAQ,SAAUwuB,GAClB0W,EAAMM,SAAWhX,EAAKoR,IAAI0H,MAAQpC,EAAMM,SAAWhX,EAAKoR,IAAIgC,MAC9D4C,EAAO3E,YAAYiL,sBAGhBtG,GAAO8C,KAEV9C,EAAO4D,YACTjpC,EAAKspC,oBAAoBtT,OAAQ,YAAaqP,EAAO4D,iBAC9C5D,GAAO4D,WAEZ5D,EAAO8D,UACTnpC,EAAKspC,oBAAoBtT,OAAQ,UAAWqP,EAAO8D,eAC5C9D,GAAO8D,SAIhB9D,EAAOV,iBAEPoB,EAAMO,mBASR/F,EAAK/+B,UAAU47C,WAAa,SAAU/tB,GAEpC,IADA,GAAI9qB,GAAIxF,KAAK0wB,OACNlrB,GAAG,CACR,GAAIA,GAAK8qB,EACP,OAAO,CAET9qB,GAAIA,EAAEkrB,OAGR,OAAO,GAQT8Q,EAAK/+B,UAAUsjD,gBAAkB,WAC/B,MAAO7e,UAASC,cAAc,QAQhC3F,EAAK/+B,UAAUiqC,aAAe,SAAUD,GAClCzsC,KAAK0hC,IAAIsZ,KACPvO,EACFxrC,EAAKqvC,aAAatwC,KAAK0hC,IAAIsZ,GAAI,wBAG/B/5C,EAAKuvC,gBAAgBxwC,KAAK0hC,IAAIsZ,GAAI,wBAGhCh7C,KAAKiuC,QACPjuC,KAAKiuC,OAAOvB,aAAaD,GAGvBzsC,KAAKgrC,QACPhrC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5BA,EAAM8H,aAAaD,OAW3BjL,EAAK/+B,UAAUgoC,YAAc,SAAU1B,EAAUid,GAC/ChmD,KAAK+oC,SAAWA,EAEZ/oC,KAAK0hC,IAAIsZ,KACPjS,EACF9nC,EAAKqvC,aAAatwC,KAAK0hC,IAAIsZ,GAAI,uBAG/B/5C,EAAKuvC,gBAAgBxwC,KAAK0hC,IAAIsZ,GAAI,uBAGhCgL,EACF/kD,EAAKqvC,aAAatwC,KAAK0hC,IAAIsZ,GAAI,oBAG/B/5C,EAAKuvC,gBAAgBxwC,KAAK0hC,IAAIsZ,GAAI,oBAGhCh7C,KAAKiuC,QACPjuC,KAAKiuC,OAAOxD,YAAY1B,GAGtB/oC,KAAKgrC,QACPhrC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5BA,EAAM6F,YAAY1B,OAW1BvH,EAAK/+B,UAAU4qC,YAAc,SAAU5jC,GACrCzJ,KAAKyJ,MAAQA,EACbzJ,KAAK6kC,aAOPrD,EAAK/+B,UAAU8gC,YAAc,SAAUP,GACrChjC,KAAKgjC,MAAQA,EACbhjC,KAAK6kC,aAaPrD,EAAK/+B,UAAUoiC,UAAY,SAAUhkC,GAEnC,GAAIolD,GAAUjmD,KAAK0hC,IAAIoiB,IACnBmC,KACFA,EAAQpV,MAAMqV,WAA+B,GAAlBlmD,KAAK2gD,WAAkB,KAIpD,IAAI6C,GAAWxjD,KAAK0hC,IAAIsB,KACxB,IAAIwgB,EAAU,CACRxjD,KAAK++C,eAEPyE,EAAS2C,gBAAkBnmD,KAAKyB,SAASuhC,MACzCwgB,EAAS4C,YAAa,EACtB5C,EAASpc,UAAY,oBAIrBoc,EAASpc,UAAY,qBAGvB,IAAIif,EAEFA,OADgBz2C,IAAd5P,KAAKmU,MACKnU,KAAKmU,UAEIvE,IAAd5P,KAAKgjC,MACAhjC,KAAKgjC,MAEVhjC,KAAKohD,aACAphD,KAAK0Y,KAGL,GAEd8qC,EAASpH,UAAYp8C,KAAKsmD,YAAYD,GAEtCrmD,KAAKumD,gBAIP,GAAIxD,GAAW/iD,KAAK0hC,IAAIj4B,KACxB,IAAIs5C,EAAU,CACZ,GAAIzrC,GAAQtX,KAAKgrC,OAAShrC,KAAKgrC,OAAO9oC,OAAS,CAC9B,UAAblC,KAAK0Y,MACPqqC,EAAS3G,UAAY,IAAM9kC,EAAQ,IACnCrW,EAAKqvC,aAAatwC,KAAK0hC,IAAIsZ,GAAI,0BAEX,UAAbh7C,KAAK0Y,MACZqqC,EAAS3G,UAAY,IAAM9kC,EAAQ,IACnCrW,EAAKqvC,aAAatwC,KAAK0hC,IAAIsZ,GAAI,2BAG/B+H,EAAS3G,UAAYp8C,KAAKsmD,YAAYtmD,KAAKyJ,OAC3CxI,EAAKuvC,gBAAgBxwC,KAAK0hC,IAAIsZ,GAAI,0BAKtCh7C,KAAK6hD,kBACL7hD,KAAK+hD,kBAGDlhD,IAAqC,IAA1BA,EAAQ0gD,eAErBvhD,KAAKwmD,oBAGH3lD,IAA+B,IAApBA,EAAQikC,SAEjB9kC,KAAKgrC,QACPhrC,KAAKgrC,OAAOlpC,QAAQ,SAAU8iC,GAC5BA,EAAMC,UAAUhkC,KAMlBb,KAAKiuC,QACPjuC,KAAKiuC,OAAOpJ,aAQhBrD,EAAK/+B,UAAU8jD,cAAgB,WAE1BvmD,KAAKsmC,QAAUtmC,KAAKsmC,OAAOzlC,UAE5Bb,KAAKsE,OAASk9B,EAAKilB,YAAYzmD,KAAKsmC,OAAOzlC,QAAQyD,OAAQtE,KAAK8c,WAC5D9c,KAAKsE,OACPtE,KAAKgK,KAAOw3B,EAAKklB,UAAU1mD,KAAKsE,cAGzBtE,MAAKgK,OAYlBw3B,EAAKklB,UAAY,SAAUpiD,GACzB,GAAIA,EAAO0F,KACT,MAAO1F,GAAO0F,IAGhB,IAAI28C,GAAYriD,EAAOuG,OAASvG,EAAOwF,OAASxF,EAAOuF,KACvD,IAAI88C,EAAW,CACb,GAAIh5C,GAAQg5C,EAAUniB,OAAO,SAAUC,GAAQ,MAAOA,GAAMz6B,MAC5D,IAAI2D,EAAMzL,OAAS,EACjB,MAAOyL,GAAM,GAAG3D,KAIpB,MAAO,OAUTw3B,EAAKilB,YAAc,SAAUniD,EAAQwT,GAGnC,IAAK,GAFD8uC,GAActiD,EAETS,EAAI,EAAGA,EAAI+S,EAAK5V,QAAU0kD,EAAa7hD,IAAK,CACnD,GAAIyE,GAAMsO,EAAK/S,EACI,iBAARyE,IAAoBo9C,EAAY77C,WACzC67C,EAAcA,EAAY77C,WAAWvB,IAAQ,KAEvB,gBAARA,IAAoBo9C,EAAY18C,QAC9C08C,EAAcA,EAAY18C,OAI9B,MAAO08C,IASTplB,EAAK/+B,UAAU+jD,kBAAoB,WACjC,GAAIzD,GAAW/iD,KAAK0hC,IAAIj4B,MACpBuhC,EAAShrC,KAAKgrC,MACd+X,IAAY/X,IACG,SAAbhrC,KAAK0Y,KACPsyB,EAAOlpC,QAAQ,SAAU8iC,EAAOzwB,GAC9BywB,EAAMzwB,MAAQA,CACd,IAAIosC,GAAa3b,EAAMlD,IAAIsB,KACvBud,KACFA,EAAWnE,UAAYjoC,KAIP,UAAbnU,KAAK0Y,MACZsyB,EAAOlpC,QAAQ,SAAU8iC,OACJh1B,IAAfg1B,EAAMzwB,cACDywB,GAAMzwB,UAEMvE,IAAfg1B,EAAM5B,QACR4B,EAAM5B,MAAQ,SAY1BxB,EAAK/+B,UAAUokD,gBAAkB,WAC/B,GAAI9D,EA2BJ,OAzBiB,SAAb/iD,KAAK0Y,MACPqqC,EAAW7b,SAASC,cAAc,OAClC4b,EAAS3G,UAAY,SAED,UAAbp8C,KAAK0Y,MACZqqC,EAAW7b,SAASC,cAAc,OAClC4b,EAAS3G,UAAY,UAGhBp8C,KAAKyB,SAASgI,OAASxI,EAAK6uC,MAAM9vC,KAAKyJ,QAE1Cs5C,EAAW7b,SAASC,cAAc,KAClC4b,EAASnrC,KAAO5X,KAAKyJ,MACrBs5C,EAASzb,OAAS,SAClByb,EAAS3G,UAAYp8C,KAAKsmD,YAAYtmD,KAAKyJ,SAI3Cs5C,EAAW7b,SAASC,cAAc,OAClC4b,EAASoD,gBAAkBnmD,KAAKyB,SAASgI,MACzCs5C,EAASqD,YAAa,EACtBrD,EAAS3G,UAAYp8C,KAAKsmD,YAAYtmD,KAAKyJ,QAIxCs5C,GAQTvhB,EAAK/+B,UAAUqkD,uBAAyB,WAEtC,GAAI5jB,GAASgE,SAASC,cAAc,SAapC,OAZAjE,GAAOxqB,KAAO,SACV1Y,KAAKohD,cACPle,EAAOkE,UAAYpnC,KAAK6+C,SAAW,sBAAwB,uBAC3D3b,EAAO3W,MACH,wGAIJ2W,EAAOkE,UAAY,uBACnBlE,EAAO3W,MAAQ,IAGV2W,GAST1B,EAAK/+B,UAAUshD,eAAiB,WAC9B,GAAIriB,GAAM1hC,KAAK0hC,IACXukB,EAAU/e,SAASC,cAAc,SACjCvD,EAAQsD,SAASC,cAAc,QACnC8e,GAAQpV,MAAMkW,eAAiB,WAC/Bd,EAAQ7e,UAAY,oBACpB6e,EAAQ9iB,YAAYS,EACpB,IAAIoX,GAAK9T,SAASC,cAAc,KAChCvD,GAAMT,YAAY6X,EAGlB,IAAIgM,GAAW9f,SAASC,cAAc,KACtC6f,GAAS5f,UAAY,kBACrB4T,EAAG7X,YAAY6jB,GACftlB,EAAIwB,OAASljC,KAAK8mD,yBAClBE,EAAS7jB,YAAYzB,EAAIwB,QACzBxB,EAAIslB,SAAWA,CAGf,IAAInD,GAAU3c,SAASC,cAAc,KACrC0c,GAAQzc,UAAY,kBACpB4T,EAAG7X,YAAY0gB,GACfniB,EAAIsB,MAAQhjC,KAAK+lD,kBACjBlC,EAAQ1gB,YAAYzB,EAAIsB,OACxBtB,EAAImiB,QAAUA,CAGd,IAAIoD,GAAc/f,SAASC,cAAc,KACzC8f,GAAY7f,UAAY,kBACxB4T,EAAG7X,YAAY8jB,GACE,UAAbjnD,KAAK0Y,MAAiC,SAAb1Y,KAAK0Y,OAChCuuC,EAAY9jB,YAAY+D,SAAS8K,eAAe,MAChDiV,EAAY7f,UAAY,wBAE1B1F,EAAIulB,YAAcA,CAGlB,IAAIvH,GAAUxY,SAASC,cAAc,KAOrC,OANAuY,GAAQtY,UAAY,kBACpB4T,EAAG7X,YAAYuc,GACfhe,EAAIj4B,MAAQzJ,KAAK6mD,kBACjBnH,EAAQvc,YAAYzB,EAAIj4B,OACxBi4B,EAAIge,QAAUA,EAEPuG,GAOTzkB,EAAK/+B,UAAUskC,QAAU,SAAUC,GACjC,GAAItuB,GAAOsuB,EAAMtuB,KACb4uB,EAASN,EAAMM,QAAUN,EAAMkgB,WAC/BxlB,EAAM1hC,KAAK0hC,IACXpR,EAAOtwB,KACPmnD,EAAannD,KAAKohD,YActB,IAVI9Z,GAAU5F,EAAI0H,MAAQ9B,GAAU5F,EAAIgC,OAC1B,aAARhrB,EACF1Y,KAAKsmC,OAAO3E,YAAY8K,UAAUzsC,MAEnB,YAAR0Y,GACP1Y,KAAKsmC,OAAO3E,YAAYiL,eAKhB,SAARl0B,GAAmB4uB,GAAU5F,EAAIgC,KAAM,CACzC,GAAI/B,GAAcrR,EAAKgW,OAAO3E,WAC9BA,GAAY8K,UAAUnc,GACtBqR,EAAYmL,OACZ7rC,EAAKqvC,aAAa5O,EAAIgC,KAAM,uBAC5B1jC,KAAKgpC,gBAAgBtH,EAAIgC,KAAM,WAC7BziC,EAAKuvC,gBAAgB9O,EAAIgC,KAAM,uBAC/B/B,EAAYoL,SACZpL,EAAYiL,gBAKhB,GAAY,SAARl0B,IACE4uB,GAAU5F,EAAIwB,SACiB,SAA7B5S,EAAKgW,OAAOzlC,QAAQ8B,MAAgD,SAA7B2tB,EAAKgW,OAAOzlC,QAAQ8B,OAAwC,QAApB2kC,EAAOlB,WACtF+gB,EAAY;uHACd,GAAIriB,GAAUkC,EAAMuE,OACpBvrC,MAAKonD,UAAUtiB,GAMT,UAARpsB,GAAoB4uB,GAAU5F,EAAIuhB,WACpCjjD,KAAK0hC,IAAIj4B,MAAM2yC,WAAap8C,KAAKyJ,MACjCzJ,KAAK0gD,gBAIK,UAARhoC,GAAoB4uB,GAAU5F,EAAIqE,SACpC/lC,KAAK0hC,IAAIj4B,MAAM2yC,UAAY1a,EAAIqE,OAAOt8B,MACtCzJ,KAAK0gD,eACL1gD,KAAK+hD,kBAIP,IAAIgB,GAAWrhB,EAAIj4B,KACnB,IAAI69B,GAAUyb,EAEZ,OAAQrqC,GACN,IAAK,OACL,IAAK,SACH1Y,KAAK0gD,cAAa,GAClB1gD,KAAK+hD,kBACD/hD,KAAKyJ,QACPs5C,EAAS3G,UAAYp8C,KAAKsmD,YAAYtmD,KAAKyJ,OAE7C,MAEF,KAAK,QAEHzJ,KAAK0gD,cAAa,GAClB1gD,KAAK+hD,iBACL,MAEF,KAAK,UACL,IAAK,YAEH/hD,KAAKsmC,OAAO1E,UAAY5hC,KAAKsmC,OAAOJ,cACpC,MAEF,KAAK,SACCc,EAAMuE,SAAYvrC,KAAKyB,SAASgI,OAC9BxI,EAAK6uC,MAAM9vC,KAAKyJ,QAClBwtB,OAAOowB,KAAKrnD,KAAKyJ,MAAO,SAG5B,MAEF,KAAK,QAEHzJ,KAAK0gD,cAAa,GAClB1gD,KAAK+hD,iBACL,MAEF,KAAK,MACL,IAAK,QACH/5C,WAAW,WACTsoB,EAAKowB,cAAa,GAClBpwB,EAAKyxB,mBACJ,GAMT,GAAIyB,GAAW9hB,EAAIsB,KACnB,IAAIsE,GAAUkc,EACZ,OAAQ9qC,GACN,IAAK,OACL,IAAK,SACH1Y,KAAKogD,cAAa,GAClBpgD,KAAK6hD,kBACD7hD,KAAKgjC,QACPwgB,EAASpH,UAAYp8C,KAAKsmD,YAAYtmD,KAAKgjC,OAE7C,MAEF,KAAK,QACHhjC,KAAKogD,cAAa,GAClBpgD,KAAKumD,gBACLvmD,KAAK6hD,kBACL7hD,KAAK+hD,iBACL,MAEF,KAAK,UACL,IAAK,YACH/hD,KAAKsmC,OAAO1E,UAAY5hC,KAAKsmC,OAAOJ,cACpC,MAEF,KAAK,QACHlmC,KAAKogD,cAAa,GAClBpgD,KAAK6hD,iBACL,MAEF,KAAK,MACL,IAAK,QACH75C,WAAW,WACTsoB,EAAK8vB,cAAa,GAClB9vB,EAAKuxB,mBACJ,GAQLva,GADU5F,EAAIoiB,KACIxhB,YAAsB,SAAR5pB,GAAoBsuB,EAAMiC,gBAC/Br5B,IAAjBo3B,EAAMsgB,QACbtgB,EAAMsgB,QAAkC,IAAvBtnD,KAAK2gD,WAAa,GACnC3Z,EAAMyC,MAAQxoC,EAAK8uC,gBAAgBrO,EAAIulB,eAChCE,EAEN3D,IACFviD,EAAKiwC,wBAAwBsS,GAC7BA,EAAShgB,SAIPuf,IAAa/iD,KAAKgK,OACpB/I,EAAKiwC,wBAAwB6R,GAC7BA,EAASvf,WAIT8D,GAAU5F,EAAIslB,UAAaG,IAAe7f,GAAU5F,EAAImiB,SAAWvc,GAAU5F,EAAIulB,aAC1E,SAARvuC,GAAoBsuB,EAAMiC,UACzBua,IACFviD,EAAKiwC,wBAAwBsS,GAC7BA,EAAShgB,SAID,WAAR9qB,GACF1Y,KAAKunD,UAAUvgB,IAQnBxF,EAAK/+B,UAAU8kD,UAAY,SAAUvgB,GACnC,GAMI8U,GAAU0L,EAAUC,EAASC,EAE7B5Y,EACAV,EACAtM,EACAD,EAXAuJ,EAASpE,EAAMqE,OAASrE,EAAMsE,QAC9BhE,EAASN,EAAMM,QAAUN,EAAMkgB,WAC/B3b,EAAUvE,EAAMuE,QAChBC,EAAWxE,EAAMwE,SACjBmc,EAAS3gB,EAAM2gB,OACflc,GAAU,EAEVhqC,EAAwC,SAA7BzB,KAAKsmC,OAAOzlC,QAAQ8B,KAK/BilD,EAAgB5nD,KAAKsmC,OAAOzE,eAAeC,MAAM5/B,OAAS,EACxDlC,KAAKsmC,OAAOzE,eAAeC,OAC1B9hC,MACHgkD,EAAY4D,EAAc,GAC1B3D,EAAW2D,EAAcA,EAAc1lD,OAAS,EAGpD,IAAc,IAAVkpC,GACF,GAAI9D,GAAUtnC,KAAK0hC,IAAIj4B,MAChBzJ,KAAKyB,SAASgI,QAASu9B,EAAMuE,SAC5BtqC,EAAK6uC,MAAM9vC,KAAKyJ,SAClBwtB,OAAOowB,KAAKrnD,KAAKyJ,MAAO,UACxBgiC,GAAU,OAIX,IAAInE,GAAUtnC,KAAK0hC,IAAIwB,OAAQ,CAClC,GAAIikB,GAAannD,KAAKohD,YACtB,IAAI+F,EAAY,CACd,GAAIriB,GAAUkC,EAAMuE,OACpBvrC,MAAKonD,UAAUtiB,GACfwC,EAAO9D,QACPiI,GAAU,QAIX,IAAc,IAAVL,EACHG,GAAW9pC,IACb+/B,EAAK4K,YAAYwb,GACjBnc,GAAU,OAGT,IAAc,IAAVL,EACHG,IACFvrC,KAAKonD,UAAU5b,GACflE,EAAO9D,QACPiI,GAAU,OAGT,IAAc,IAAVL,GAAgB3pC,EACnB8pC,IACFvrC,KAAKgpC,gBAAgB1B,GACrBmE,GAAU,OAGT,IAAc,IAAVL,GAAgB3pC,EACnB8pC,IACF/J,EAAK6K,SAASub,GACdnc,GAAU,OAGT,IAAc,IAAVL,GAAgB3pC,EACnB8pC,IAAYC,GACdxrC,KAAK6nD,kBACLpc,GAAU,GAEHF,GAAWC,IAClBxrC,KAAK8nD,iBACLrc,GAAU,OAGT,IAAc,IAAVL,GACP,GAAIuc,EAAQ,CAEV,GAAII,GAAU/nD,KAAKgoD,WACfD,IACFA,EAAQvkB,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,IAE1DmE,GAAU,OAGT,IAAc,IAAVL,GACP,GAAIuc,EAAQ,CAEV,GAAIO,GAAWloD,KAAKmoD,YAChBD,IACFA,EAAS1kB,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,IAE3DmE,GAAU,OAGT,IAAc,IAAVL,GACP,GAAIuc,IAAWnc,EAAU,CAEvB,GAAI4c,GAAcpoD,KAAKqoD,iBAAiB/gB,EACpC8gB,IACFpoD,KAAKwjC,MAAMxjC,KAAKioD,gBAAgBG,IAElC3c,GAAU,MAEP,IAAIkc,GAAUnc,GAAY/pC,EAAU,CACvC,GAAIwiD,EAASpF,SAAU,CACrB,GAAIyJ,GAAYrE,EAAShD,WACzBwG,GAAUa,EAAYA,EAAUnH,gBAAcvxC,OAE3C,CACH,GAAI8xB,GAAMuiB,EAASpgB,QACnB4jB,GAAU/lB,EAAIyf,YAEZsG,IACFD,EAAWhmB,EAAK4B,kBAAkBqkB,GAClCC,EAAWD,EAAQtG,YACnBoH,EAAY/mB,EAAK4B,kBAAkBskB,GAC/BF,GAAYA,YAAoB/F,IACG,GAAjCwC,EAASvzB,OAAOsa,OAAO9oC,QACzBqmD,GAAaA,EAAU73B,SACzBoe,EAAe9uC,KAAKsmC,OAAOJ,eAC3BkI,EAAgB6V,EAASE,eAEzByD,EAAc9lD,QAAQ,SAAUwuB,GAC9Bi4B,EAAU73B,OAAO2d,WAAW/d,EAAMi4B,KAEpCvoD,KAAKwjC,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,IAErDtnC,KAAKsmC,OAAOtC,UAAU,aACpBlC,MAAO8lB,EACPxZ,cAAeA,EACfE,cAAeia,EACfzZ,aAAcA,EACdC,aAAc/uC,KAAKsmC,OAAOJ,wBAM/B,IAAc,IAAVkF,EACHuc,IAAWnc,GAEbsQ,EAAW97C,KAAKwoD,gBACZ1M,IACF97C,KAAKsmC,OAAO4C,UAAS,GACrB4S,EAAStY,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,KAE3DmE,GAAU,IAEFkc,GAAUpc,GAAWC,GAAY/pC,GAEzCq6C,EAAW97C,KAAKwoD,gBACZ1M,IACFja,EAAiB7hC,KAAKsmC,OAAOzE,eAC7BA,EAAemI,MAAQnI,EAAemI,OAAShqC,KAC/C6hC,EAAeoI,IAAM6R,EACrBha,EAAQ9hC,KAAKsmC,OAAOgE,mBAAmBzI,EAAemI,MAAOnI,EAAeoI,KAE5EjqC,KAAKsmC,OAAOP,OAAOjE,GACnBga,EAAStY,MAAM,UAEjBiI,GAAU,GAEHkc,GAAUnc,GAAY/pC,IAE7Bq6C,EAAWkI,EAAUwE,gBACjB1M,GAAYA,EAASprB,SACvBoe,EAAe9uC,KAAKsmC,OAAOJ,eAC3BkI,EAAgB6V,EAASE,eAEzByD,EAAc9lD,QAAQ,SAAUwuB,GAC9BwrB,EAASprB,OAAO2d,WAAW/d,EAAMwrB,KAEnC97C,KAAKwjC,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,IAErDtnC,KAAKsmC,OAAOtC,UAAU,aACpBlC,MAAO8lB,EACPxZ,cAAeA,EACfE,cAAewN,EACfhN,aAAcA,EACdC,aAAc/uC,KAAKsmC,OAAOJ,kBAG9BuF,GAAU,OAGT,IAAc,IAAVL,GACP,GAAIuc,IAAWnc,EAAU,CAEvB,GAAIid,GAAczoD,KAAK0oD,aAAaphB,EAChCmhB,IACFzoD,KAAKwjC,MAAMxjC,KAAKioD,gBAAgBQ,IAElChd,GAAU,MAEP,IAAIkc,GAAUnc,GAAY/pC,EAAU,CACvCigC,EAAMsiB,EAAUngB,QAChB,IAAI8kB,GAAUjnB,EAAIgkB,eACdiD,KACF7M,EAAWta,EAAK4B,kBAAkBulB,KAClB7M,EAASprB,QACpBorB,YAAoB2F,KACjB3F,EAAS8M,cACf9Z,EAAe9uC,KAAKsmC,OAAOJ,eAC3BkI,EAAgB6V,EAASE,eAEzByD,EAAc9lD,QAAQ,SAAUwuB,GAC9BwrB,EAASprB,OAAO2d,WAAW/d,EAAMwrB,KAEnC97C,KAAKwjC,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,IAErDtnC,KAAKsmC,OAAOtC,UAAU,aACpBlC,MAAO8lB,EACPxZ,cAAeA,EACfE,cAAewN,EACfhN,aAAcA,EACdC,aAAc/uC,KAAKsmC,OAAOJ,uBAM/B,IAAc,IAAVkF,EACP,GAAIuc,IAAWnc,EAEbgc,EAAWxnD,KAAK6oD,YACZrB,IACFxnD,KAAKsmC,OAAO4C,UAAS,GACrBse,EAAShkB,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,KAE3DmE,GAAU,MAEP,KAAKkc,GAAUpc,GAAWC,GAAY/pC,EAEzC+lD,EAAWxnD,KAAK6oD,YACZrB,IACF3lB,EAAiB7hC,KAAKsmC,OAAOzE,eAC7BA,EAAemI,MAAQnI,EAAemI,OAAShqC,KAC/C6hC,EAAeoI,IAAMud,EACrB1lB,EAAQ9hC,KAAKsmC,OAAOgE,mBAAmBzI,EAAemI,MAAOnI,EAAeoI,KAE5EjqC,KAAKsmC,OAAOP,OAAOjE,GACnB0lB,EAAShkB,MAAM,UAEjBiI,GAAU,MAEP,IAAIkc,GAAUnc,GAAY/pC,EAAU,CAGrC+lD,EADEvD,EAASpF,SACAoF,EAAShW,OAASgW,EAAShW,OAAO4a,gBAAcj5C,GAGhDq0C,EAAS4E,WAEtB,IAAIN,GAAYf,IAAaA,EAASqB,aAAerB,EAAS92B,OAAOud,OACjEsa,IAAaA,EAAU73B,SACzBoe,EAAe9uC,KAAKsmC,OAAOJ,eAC3BkI,EAAgB6V,EAASE,eAEzByD,EAAc9lD,QAAQ,SAAUwuB,GAC9Bi4B,EAAU73B,OAAO2d,WAAW/d,EAAMi4B,KAEpCvoD,KAAKwjC,MAAMhC,EAAKygB,cAAgBjiD,KAAKioD,gBAAgB3gB,IAErDtnC,KAAKsmC,OAAOtC,UAAU,aACpBlC,MAAO8lB,EACPxZ,cAAeA,EACfE,cAAeia,EACfzZ,aAAcA,EACdC,aAAc/uC,KAAKsmC,OAAOJ,kBAG9BuF,GAAU,EAIVA,IACFzE,EAAMO,iBACNP,EAAM4E,oBASVpK,EAAK/+B,UAAU2kD,UAAY,SAAUtiB,GACnC,GAAIA,EAAS,CAEX,GAAIhC,GAAQ9iC,KAAK0hC,IAAIsZ,GAAG1Y,WACpBD,EAAQS,EAAMR,WACdiD,EAAYlD,EAAMkD,SACtBlD,GAAME,YAAYO,GAGhB9iC,KAAK6+C,SACP7+C,KAAK2jC,SAASmB,GAGd9kC,KAAKkjC,OAAO4B,GAGVA,IAEFzC,EAAMc,YAAYL,GAClBT,EAAMkD,UAAYA,IAQtB/D,EAAK6K,SAAW,SAASvK,GACvB,IAAKt1B,MAAMvH,QAAQ68B,GACjB,MAAON,GAAK6K,UAAUvK,GAGxB,IAAIA,GAASA,EAAM5/B,OAAS,EAAG,CAC7B,GAAI8hD,GAAYliB,EAAM,GAClBpR,EAASszB,EAAUtzB,OACnB4V,EAAS0d,EAAU1d,OACnB6E,EAAa6Y,EAAUhE,UAC3B1Z,GAAO3E,YAAYiL,aAGnB,IAAIkC,GAAexI,EAAOJ,cAC1B1E,GAAKsnB,UAAUhnB,EACf,IAAIiN,GAAezI,EAAOJ,cAG1BpE,GAAMhgC,QAAQ,SAAUwuB,GACtBA,EAAKI,OAAO8xB,QAAQlyB,KAItBgW,EAAOtC,UAAU,eACflC,MAAOA,EAAMjrB,MAAM,GACnB6Z,OAAQA,EACRvc,MAAOg3B,EACP2D,aAAcA,EACdC,aAAcA,MAWpBvN,EAAK4K,YAAc,SAAStK,GAC1B,IAAKt1B,MAAMvH,QAAQ68B,GACjB,MAAON,GAAK4K,aAAatK,GAG3B,IAAIA,GAASA,EAAM5/B,OAAS,EAAG,CAC7B,GAAI+hD,GAAWniB,EAAMA,EAAM5/B,OAAS,GAChCwuB,EAASuzB,EAASvzB,OAClB4V,EAAS2d,EAAS3d,MAEtBA,GAAO4C,SAAS5C,EAAOzE,eAAeC,MAGtC,IAAIgN,GAAexI,EAAOJ,eACtB4H,EAAYmW,EACZ8E,EAASjnB,EAAM7oB,IAAI,SAAUqX,GAC/B,GAAIswB,GAAQtwB,EAAKswB,OAGjB,OAFAlwB,GAAOqd,YAAY6S,EAAO9S,GAC1BA,EAAY8S,EACLA,GAIY,KAAjB9e,EAAM5/B,OACR6mD,EAAO,GAAGvlB,QAGV8C,EAAOP,OAAOgjB,EAEhB,IAAIha,GAAezI,EAAOJ,cAE1BI,GAAOtC,UAAU,kBACf8J,UAAWmW,EACXniB,MAAOinB,EACPr4B,OAAQA,EACRoe,aAAcA,EACdC,aAAcA,MAYpBvN,EAAK/+B,UAAUolD,gBAAkB,SAAU7kB,EAAOv5B,EAAOiP,GACvD,GAAIo2B,GAAe9uC,KAAKsmC,OAAOJ,eAE3B8iB,EAAU,GAAIxnB,GAAKxhC,KAAKsmC,QAC1BtD,UAAiBpzB,IAATozB,EAAsBA,EAAQ,GACtCv5B,UAAiBmG,IAATnG,EAAsBA,EAAQ,GACtCiP,KAAMA,GAERswC,GAAQ9lB,QAAO,GACfljC,KAAK0wB,OAAOid,aAAaqb,EAAShpD,MAClCA,KAAKsmC,OAAO3E,YAAYiL,cACxBoc,EAAQxlB,MAAM,QACd,IAAIuL,GAAe/uC,KAAKsmC,OAAOJ,cAE/BlmC,MAAKsmC,OAAOtC,UAAU,qBACpBlC,OAAQknB,GACRpb,WAAY5tC,KACZ0wB,OAAQ1wB,KAAK0wB,OACboe,aAAcA,EACdC,aAAcA,KAWlBvN,EAAK/+B,UAAUqlD,eAAiB,SAAU9kB,EAAOv5B,EAAOiP,GACtD,GAAIo2B,GAAe9uC,KAAKsmC,OAAOJ,eAE3B8iB,EAAU,GAAIxnB,GAAKxhC,KAAKsmC,QAC1BtD,UAAiBpzB,IAATozB,EAAsBA,EAAQ,GACtCv5B,UAAiBmG,IAATnG,EAAsBA,EAAQ,GACtCiP,KAAMA,GAERswC,GAAQ9lB,QAAO,GACfljC,KAAK0wB,OAAOqd,YAAYib,EAAShpD,MACjCA,KAAKsmC,OAAO3E,YAAYiL,cACxBoc,EAAQxlB,MAAM,QACd,IAAIuL,GAAe/uC,KAAKsmC,OAAOJ,cAE/BlmC,MAAKsmC,OAAOtC,UAAU,oBACpBlC,OAAQknB,GACRlb,UAAW9tC,KACX0wB,OAAQ1wB,KAAK0wB,OACboe,aAAcA,EACdC,aAAcA,KAWlBvN,EAAK/+B,UAAUwmD,UAAY,SAAUjmB,EAAOv5B,EAAOiP,GACjD,GAAIo2B,GAAe9uC,KAAKsmC,OAAOJ,eAE3B8iB,EAAU,GAAIxnB,GAAKxhC,KAAKsmC,QAC1BtD,UAAiBpzB,IAATozB,EAAsBA,EAAQ,GACtCv5B,UAAiBmG,IAATnG,EAAsBA,EAAQ,GACtCiP,KAAMA,GAERswC,GAAQ9lB,QAAO,GACfljC,KAAK0wB,OAAOyS,YAAY6lB,GACxBhpD,KAAKsmC,OAAO3E,YAAYiL,cACxBoc,EAAQxlB,MAAM,QACd,IAAIuL,GAAe/uC,KAAKsmC,OAAOJ,cAE/BlmC,MAAKsmC,OAAOtC,UAAU,eACpBlC,OAAQknB,GACRt4B,OAAQ1wB,KAAK0wB,OACboe,aAAcA,EACdC,aAAcA,KASlBvN,EAAK/+B,UAAUymD,cAAgB,SAAU1b,GACvC,GAAID,GAAUvtC,KAAK0Y,IACnB,IAAI80B,GAAWD,EAAS,CACtB,GAAIuB,GAAe9uC,KAAKsmC,OAAOJ,cAC/BlmC,MAAKstC,WAAWE,EAChB,IAAIuB,GAAe/uC,KAAKsmC,OAAOJ,cAE/BlmC,MAAKsmC,OAAOtC,UAAU,cACpB1T,KAAMtwB,KACNutC,QAASA,EACTC,QAASA,EACTsB,aAAcA,EACdC,aAAcA,MAWpBvN,EAAK/+B,UAAUsuB,KAAO,SAAU+uB,GAC9B,GAAK9/C,KAAKohD,aAAV,CAIA,GAAI+H,GAAsB,QAAbrJ,GAAwB,EAAI,EACrC96C,EAAqB,SAAbhF,KAAK0Y,KAAmB,QAAS,OAC7C1Y,MAAKuuC,YAEL,IAAIE,GAAYzuC,KAAKgrC,OACjBoe,EAAeppD,KAAKqpD,SAGxBrpD,MAAKgrC,OAAShrC,KAAKgrC,OAAO5xB,SAG1BpZ,KAAKgrC,OAAOja,KAAK,SAAUlrB,EAAGyG,GAC5B,MAAO68C,GAAQ9J,EAAYx5C,EAAEb,GAAOsH,EAAEtH,MAExChF,KAAKqpD,UAAsB,GAATF,EAAc,MAAQ,OAExCnpD,KAAKsmC,OAAOtC,UAAU,QACpB1T,KAAMtwB,KACNyuC,UAAWA,EACXD,QAAS4a,EACTxa,UAAW5uC,KAAKgrC,OAChB2D,QAAS3uC,KAAKqpD,YAGhBrpD,KAAK0uC,eAOPlN,EAAK/+B,UAAUw+C,UAAY,WAKzB,MAJKjhD,MAAKiuC,SACRjuC,KAAKiuC,OAAS,GAAIwT,GAAWzhD,KAAKsmC,QAClCtmC,KAAKiuC,OAAOgS,UAAUjgD,OAEjBA,KAAKiuC,OAAOpK,UASrBrC,EAAK4B,kBAAoB,SAAUkE,GACjC,KAAOA,GAAQ,CACb,GAAIA,EAAOhX,KACT,MAAOgX,GAAOhX,IAEhBgX,GAASA,EAAOhF,aAWpBd,EAAKsnB,UAAY,SAAUhnB,GACzB,IAAKt1B,MAAMvH,QAAQ68B,GAEjB,WADAN,GAAKsnB,WAAWhnB,GAIlB,IAAIkiB,GAAYliB,EAAM,GAClBpR,EAASszB,EAAUtzB,OACnBya,EAAa6Y,EAAUhE,UAEvBtvB,GAAOsa,OAAOG,EAAarJ,EAAM5/B,QACnCwuB,EAAOsa,OAAOG,EAAarJ,EAAM5/B,QAAQshC,QAElC9S,EAAOsa,OAAOG,EAAa,GAClCza,EAAOsa,OAAOG,EAAa,GAAG3H,QAG9B9S,EAAO8S,SASXhC,EAAK/+B,UAAU0hD,aAAe,WAC5B,GAAIhwC,GAAQnU,KAAK0wB,OAAOsa,OAAOhpC,QAAQhC,KACvC,OAAOA,MAAK0wB,OAAOsa,OAAO72B,EAAQ,IAAMnU,KAAK0wB,OAAOud,QAQtDzM,EAAK/+B,UAAU+lD,cAAgB,WAC7B,GAAI1M,GAAW,KACXpa,EAAM1hC,KAAK6jC,QACf,IAAInC,GAAOA,EAAIY,WAAY,CAEzB,GAAIqmB,GAAUjnB,CACd,IACEinB,EAAUA,EAAQjD,gBAClB5J,EAAWta,EAAK4B,kBAAkBulB,SAE7BA,GAAY7M,YAAoB2F,KAAe3F,EAAS8M,aAEjE,MAAO9M,IAQTta,EAAK/+B,UAAUomD,UAAY,WACzB,GAAIrB,GAAW,KACX9lB,EAAM1hC,KAAK6jC,QACf,IAAInC,GAAOA,EAAIY,WAAY,CAEzB,GAAImlB,GAAU/lB,CACd,IACE+lB,EAAUA,EAAQtG,YAClBqG,EAAWhmB,EAAK4B,kBAAkBqkB,SAE7BA,GAAYD,YAAoB/F,KAAe+F,EAASoB,aAGjE,MAAOpB,IAQThmB,EAAK/+B,UAAU0lD,WAAa,WAC1B,GAAInE,GAAY,KACZtiB,EAAM1hC,KAAK6jC,QACf,IAAInC,GAAOA,EAAIY,WAAY,CACzB,GAAIgnB,GAAW5nB,EAAIY,WAAWyP,UAC9BiS,GAAYxiB,EAAK4B,kBAAkBkmB,GAGrC,MAAOtF,IAQTxiB,EAAK/+B,UAAUulD,UAAY,WACzB,GAAI/D,GAAW,KACXviB,EAAM1hC,KAAK6jC,QACf,IAAInC,GAAOA,EAAIY,WAAY,CACzB,GAAIinB,GAAU7nB,EAAIY,WAAWknB,SAE7B,KADAvF,EAAYziB,EAAK4B,kBAAkBmmB,GAC5BA,GAAYtF,YAAoBxC,KAAewC,EAAS2E,aAC7DW,EAAUA,EAAQ7D,gBAClBzB,EAAYziB,EAAK4B,kBAAkBmmB,GAGvC,MAAOtF,IASTziB,EAAK/+B,UAAU4lD,iBAAmB,SAAUrY,GAC1C,GAAItO,GAAM1hC,KAAK0hC,GAEf,QAAQsO,GACN,IAAKtO,GAAIj4B,MACP,GAAIzJ,KAAK++C,cACP,MAAOrd,GAAIsB,KAGf,KAAKtB,GAAIsB,MACP,GAAIhjC,KAAKohD,aACP,MAAO1f,GAAIwB,MAGf,KAAKxB,GAAIwB,OACP,MAAOxB,GAAIgC,IACb,KAAKhC,GAAIgC,KACP,GAAIhC,EAAI0H,KACN,MAAO1H,GAAI0H,IAGf,SACE,MAAO,QAUb5H,EAAK/+B,UAAUimD,aAAe,SAAU1Y,GACtC,GAAItO,GAAM1hC,KAAK0hC,GAEf,QAAQsO,GACN,IAAKtO,GAAI0H,KACP,MAAO1H,GAAIgC,IACb,KAAKhC,GAAIgC,KACP,GAAI1jC,KAAKohD,aACP,MAAO1f,GAAIwB,MAGf,KAAKxB,GAAIwB,OACP,GAAIljC,KAAK++C,cACP,MAAOrd,GAAIsB,KAGf,KAAKtB,GAAIsB,MACP,IAAKhjC,KAAKohD,aACR,MAAO1f,GAAIj4B,KAEf,SACE,MAAO,QAYb+3B,EAAK/+B,UAAUwlD,gBAAkB,SAAU7V,GACzC,GAAI1Q,GAAM1hC,KAAK0hC,GACf,KAAK,GAAIn+B,KAAQm+B,GACf,GAAIA,EAAIx0B,eAAe3J,IACjBm+B,EAAIn+B,IAAS6uC,EACf,MAAO7uC,EAIb,OAAO,OASTi+B,EAAK/+B,UAAU2+C,WAAa,WAC1B,MAAoB,SAAbphD,KAAK0Y,MAAgC,UAAb1Y,KAAK0Y,MAItC8oB,EAAKioB,aACHC,KAAQ,8HAGRhvC,OAAU,+EAEVD,MAAS,yEAETwX,OAAU,oGAYZuP,EAAK/+B,UAAUumC,gBAAkB,SAAUiD,EAAQC,GACjD,GAAI5b,GAAOtwB,KACP2pD,EAASnoB,EAAKioB,YACdv/C,IAgDJ,IA9CIlK,KAAKyB,SAASgI,OAChBS,EAAMgP,MACJyY,KAAM,OACNpF,MAAO,gCACP6a,UAAW,mBAAqBpnC,KAAK0Y,KACrCkkC,UAEIjrB,KAAM,OACNyV,UAAW,wBACO,QAAbpnC,KAAK0Y,KAAiB,uBAAyB,IACpD6T,MAAOo9B,EAAOD,KACdvd,MAAO,WACL7b,EAAK44B,cAAc,WAIrBv3B,KAAM,QACNyV,UAAW,yBACO,SAAbpnC,KAAK0Y,KAAkB,uBAAyB,IACrD6T,MAAOo9B,EAAOlvC,MACd0xB,MAAO,WACL7b,EAAK44B,cAAc,YAIrBv3B,KAAM,SACNyV,UAAW,0BACO,UAAbpnC,KAAK0Y,KAAmB,uBAAyB,IACtD6T,MAAOo9B,EAAOjvC,OACdyxB,MAAO,WACL7b,EAAK44B,cAAc,aAIrBv3B,KAAM,SACNyV,UAAW,0BACO,UAAbpnC,KAAK0Y,KAAmB,uBAAyB,IACtD6T,MAAOo9B,EAAO13B,OACdka,MAAO,WACL7b,EAAK44B,cAAc,eAOzBlpD,KAAKohD,aAAc,CACrB,GAAItB,GAAgC,OAAlB9/C,KAAKqpD,UAAsB,OAAQ,KACrDn/C,GAAMgP,MACJyY,KAAM,OACNpF,MAAO,2BAA6BvsB,KAAK0Y,KACzC0uB,UAAW,mBAAqB0Y,EAChC3T,MAAO,WACL7b,EAAKS,KAAK+uB,IAEZlD,UAEIjrB,KAAM,YACNyV,UAAW,sBACX7a,MAAO,2BAA6BvsB,KAAK0Y,KAAO,sBAChDyzB,MAAO,WACL7b,EAAKS,KAAK,UAIZY,KAAM,aACNyV,UAAW,uBACX7a,MAAO,2BAA6BvsB,KAAK0Y,KAAM,uBAC/CyzB,MAAO,WACL7b,EAAKS,KAAK,aAOpB,GAAI/wB,KAAK0wB,QAAU1wB,KAAK0wB,OAAO0wB,aAAc,CACvCl3C,EAAMhI,QAERgI,EAAMgP,MACJR,KAAQ,aAKZ,IAAIsyB,GAAS1a,EAAKI,OAAOsa,MACrB1a,IAAQ0a,EAAOA,EAAO9oC,OAAS,IACjCgI,EAAMgP,MACJyY,KAAM,SACNpF,MAAO,wEACPywB,aAAc,8CACd5V,UAAW,oBACX+E,MAAO,WACL7b,EAAK24B,UAAU,GAAI,GAAI,SAEzBrM,UAEIjrB,KAAM,OACNyV,UAAW,uBACX7a,MAAOo9B,EAAOD,KACdvd,MAAO,WACL7b,EAAK24B,UAAU,GAAI,GAAI,WAIzBt3B,KAAM,QACNyV,UAAW,wBACX7a,MAAOo9B,EAAOlvC,MACd0xB,MAAO,WACL7b,EAAK24B,UAAU,UAIjBt3B,KAAM,SACNyV,UAAW,yBACX7a,MAAOo9B,EAAOjvC,OACdyxB,MAAO,WACL7b,EAAK24B,UAAU,UAIjBt3B,KAAM,SACNyV,UAAW,yBACX7a,MAAOo9B,EAAO13B,OACdka,MAAO,WACL7b,EAAK24B,UAAU,GAAI,GAAI,eAQjC/+C,EAAMgP,MACJyY,KAAM,SACNpF,MAAO,mEACPywB,aAAc,8CACd5V,UAAW,oBACX+E,MAAO,WACL7b,EAAKu3B,gBAAgB,GAAI,GAAI,SAE/BjL,UAEIjrB,KAAM,OACNyV,UAAW,uBACX7a,MAAOo9B,EAAOD,KACdvd,MAAO,WACL7b,EAAKu3B,gBAAgB,GAAI,GAAI,WAI/Bl2B,KAAM,QACNyV,UAAW,wBACX7a,MAAOo9B,EAAOlvC,MACd0xB,MAAO,WACL7b,EAAKu3B,gBAAgB,UAIvBl2B,KAAM,SACNyV,UAAW,yBACX7a,MAAOo9B,EAAOjvC,OACdyxB,MAAO,WACL7b,EAAKu3B,gBAAgB,UAIvBl2B,KAAM,SACNyV,UAAW,yBACX7a,MAAOo9B,EAAO13B,OACdka,MAAO,WACL7b,EAAKu3B,gBAAgB,GAAI,GAAI,eAMjC7nD,KAAKyB,SAASuhC,QAEhB94B,EAAMgP,MACJyY,KAAM,YACNpF,MAAO,gCACP6a,UAAW,uBACX+E,MAAO,WACL3K,EAAK4K,YAAY9b,MAKrBpmB,EAAMgP,MACJyY,KAAM,SACNpF,MAAO,+BACP6a,UAAW,oBACX+E,MAAO,WACL3K,EAAK6K,SAAS/b,OAMX,GAAIiR,GAAYr3B,GAAQoiC,MAAOJ,IACrCK,KAAKN,EAAQjsC,KAAKsmC,OAAOzD,UAShCrB,EAAK/+B,UAAU69C,SAAW,SAAS72C,GACjC,MAAIA,aAAiB+C,OACZ,QAEL/C,YAAiB7H,QACZ,SAEY,gBAAX,IAA0D,gBAA5B5B,MAAK0iD,YAAYj5C,GAChD,SAGF,QAUT+3B,EAAK/+B,UAAUigD,YAAc,SAASj1C,GACpC,GAAIm8C,GAAQn8C,EAAIipB,cACZmzB,EAAMla,OAAOliC,GACbq8C,EAAW5W,WAAWzlC,EAE1B,OAAW,IAAPA,EACK,GAES,QAATm8C,EACA,KAES,QAATA,GAGS,SAATA,IAGCG,MAAMF,IAASE,MAAMD,GAItBr8C,EAHAo8C,IAaXroB,EAAK/+B,UAAU6jD,YAAc,SAAU30B,GACrC,GAAoB,gBAATA,GACT,MAAOzC,QAAOyC,EAGd,IAAIq4B,GAAc96B,OAAOyC,GACpB5Z,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,WACfA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UAEfjX,EAAOsC,KAAKC,UAAU2mD,GACtBC,EAAOnpD,EAAK+yC,UAAU,EAAG/yC,EAAKoB,OAAS,EAI3C,QAH0C,IAAtClC,KAAKsmC,OAAOzlC,QAAQqpD,gBACtBD,EAAOhpD,EAAKyuC,mBAAmBua,IAE1BA,GAUXzoB,EAAK/+B,UAAUmgD,cAAgB,SAAUuH,GACvC,GAAIrpD,GAAO,IAAMd,KAAKoqD,YAAYD,GAAe,GAGjD,OAFkBlpD,GAAKiC,MAAMpC,GAGxBiX,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,iBAAkB,KAC1BA,QAAQ,SAAU,MAYzBypB,EAAK/+B,UAAU2nD,YAAc,SAAUz4B,GAIrC,IAFA,GAAI04B,GAAU,GACVtlD,EAAI,EACDA,EAAI4sB,EAAKzvB,QAAQ,CACtB,GAAIzB,GAAIkxB,EAAKK,OAAOjtB,EACX,OAALtE,EACF4pD,GAAW,MAEC,MAAL5pD,GACP4pD,GAAW5pD,EACXsE,IAEAtE,EAAIkxB,EAAKK,OAAOjtB,GACN,KAANtE,IAAwC,GAA5B,aAAauB,QAAQvB,KACnC4pD,GAAW,MAEbA,GAAW5pD,GAGX4pD,GADY,KAAL5pD,EACI,MAGAA,EAEbsE,IAGF,MAAOslD,GAIT,IAAI5I,GAAanC,EAAkB9d,EAEnC3hC,GAAOD,QAAU4hC,GAKZ,SAAS3hC,EAAQD,GAOtBC,EAAOD,QAAU,QAASy/C,GAAax5C,EAAGyG,GACzC,YACA,IAeCg+C,GAAQC,EAfLC,EAAK,8EACRC,EAAM,iBACNC,EAAM,iHACNC,EAAM,iBAEN5lD,EAAI,SAASW,GAAK,MAAO25C,GAAYuL,cAAgB,GAAKllD,GAAGgxB,eAAiB,GAAKhxB,GAEnFwrB,EAAInsB,EAAEc,GAAGkS,QAAQ0yC,EAAK,KAAO,GAC7BI,EAAI9lD,EAAEuH,GAAGyL,QAAQ0yC,EAAK,KAAO,GAE7BK,EAAK55B,EAAEnZ,QAAQyyC,EAAI,UAAUzyC,QAAQ,MAAM,IAAIA,QAAQ,MAAM,IAAItJ,MAAM,MACvEs8C,EAAKF,EAAE9yC,QAAQyyC,EAAI,UAAUzyC,QAAQ,MAAM,IAAIA,QAAQ,MAAM,IAAItJ,MAAM,MAEvEu8C,EAAK34B,SAASnB,EAAEvjB,MAAMg9C,GAAM,KAAsB,IAAdG,EAAG5oD,QAAgBgvB,EAAEvjB,MAAM+8C,IAAQ/9C,KAAKzJ,MAAMguB,GAClF+5B,EAAK54B,SAASw4B,EAAEl9C,MAAMg9C,GAAM,KAAOK,GAAMH,EAAEl9C,MAAM+8C,IAAQ/9C,KAAKzJ,MAAM2nD,IAAM,IAG3E,IAAII,EAAI,CACP,GAAKD,EAAKC,EAAO,OAAQ,CACpB,IAAKD,EAAKC,EAAO,MAAO,GAG9B,IAAI,GAAIC,GAAK,EAAGC,EAAK7zB,KAAKqP,IAAImkB,EAAG5oD,OAAQ6oD,EAAG7oD,QAASgpD,EAAOC,EAAMD,IAAQ,CAKzE,GAHAZ,IAAWQ,EAAGI,IAAS,IAAIv9C,MApBrB,OAoBmCulC,WAAW4X,EAAGI,KAAUJ,EAAGI,IAAS,EAC7EX,IAAWQ,EAAGG,IAAS,IAAIv9C,MArBrB,OAqBmCulC,WAAW6X,EAAGG,KAAUH,EAAGG,IAAS,EAEzEnB,MAAMO,KAAYP,MAAMQ,GAAW,MAAQR,OAAMO,GAAW,GAAK,CAMrE,UAJgBA,UAAkBC,KACjCD,GAAU,GACVC,GAAU,IAEPD,EAASC,EAAU,OAAQ,CAC/B,IAAID,EAASC,EAAU,MAAO,GAE/B,MAAO,KAMH,SAAS1qD,EAAQD,EAASM,GAE/B,YASA,SAASo/C,GAAkB9d,GAQzB,QAASigB,GAAYnb,GAEnBtmC,KAAKsmC,OAASA,EACdtmC,KAAK0hC,OA6MP,MA1MA+f,GAAWh/C,UAAY,GAAI++B,GAM3BigB,EAAWh/C,UAAUohC,OAAS,WAE5B,GAAInC,GAAM1hC,KAAK0hC,GAEf,IAAIA,EAAIsZ,GACN,MAAOtZ,GAAIsZ,EAGbh7C,MAAKu/C,oBAGL,IAAI6L,GAAWlkB,SAASC,cAAc,KAMtC,IALAikB,EAAS96B,KAAOtwB,KAChB0hC,EAAIsZ,GAAKoQ,EAIwB,SAA7BprD,KAAKsmC,OAAOzlC,QAAQ8B,KAAiB,CAEvC++B,EAAIgiB,OAASxc,SAASC,cAAc,KAGpC,IAAIyc,GAAS1c,SAASC,cAAc,KACpCzF,GAAIkiB,OAASA,CACb,IAAIlgB,GAAOwD,SAASC,cAAc,SAClCzD,GAAKhrB,KAAO,SACZgrB,EAAK0D,UAAY,yBACjB1D,EAAKnX,MAAQ,0CACbmV,EAAIgC,KAAOA,EACXkgB,EAAOzgB,YAAYzB,EAAIgC,MAIzB,GAAI2nB,GAAWnkB,SAASC,cAAc,MAClCmkB,EAAUpkB,SAASC,cAAc,MASrC,OARAmkB,GAAQlP,UAAY,UACpBkP,EAAQlkB,UAAY,sBACpBikB,EAASloB,YAAYmoB,GACrB5pB,EAAIuZ,GAAKoQ,EACT3pB,EAAI/P,KAAO25B,EAEXtrD,KAAK6kC,YAEEumB,GAMT3J,EAAWh/C,UAAUoiC,UAAY,WAC/B,GAAInD,GAAM1hC,KAAK0hC,IACX2pB,EAAW3pB,EAAIuZ,EACfoQ,KACFA,EAASxa,MAAM0a,YAAiC,GAAlBvrD,KAAK2gD,WAAkB,GAAM,KAI7D,IAAI2K,GAAU5pB,EAAI/P,IACd25B,KACFA,EAAQlP,UAAY,UAAYp8C,KAAK0wB,OAAOhY,KAAO,IAKrD,IAAI0yC,GAAW1pB,EAAIsZ,EACdh7C,MAAK4oD,YAYHlnB,EAAIsZ,GAAGjJ,aACNrQ,EAAIgiB,QACN0H,EAASjoB,YAAYzB,EAAIgiB,QAEvBhiB,EAAIkiB,QACNwH,EAASjoB,YAAYzB,EAAIkiB,QAE3BwH,EAASjoB,YAAYkoB,IAlBnB3pB,EAAIsZ,GAAGjJ,aACLrQ,EAAIgiB,QACN0H,EAAS7oB,YAAYb,EAAIgiB,QAEvBhiB,EAAIkiB,QACNwH,EAAS7oB,YAAYb,EAAIkiB,QAE3BwH,EAAS7oB,YAAY8oB,KAqB3B5J,EAAWh/C,UAAUmmD,UAAY,WAC/B,MAAqC,IAA7B5oD,KAAK0wB,OAAOsa,OAAO9oC,QAS7Bu/C,EAAWh/C,UAAUumC,gBAAkB,SAAUiD,EAAQC,GACvD,GAAI5b,GAAOtwB,KACP2pD,EAASnoB,EAAKioB,YACdv/C,IAGAynB,KAAQ,SACRpF,MAAS,uDACTywB,aAAgB,8CAChB5V,UAAa,oBACb+E,MAAS,WACP7b,EAAK24B,UAAU,GAAI,GAAI,SAEzBrM,UAEIjrB,KAAQ,OACRyV,UAAa,uBACb7a,MAASo9B,EAAOD,KAChBvd,MAAS,WACP7b,EAAK24B,UAAU,GAAI,GAAI,WAIzBt3B,KAAQ,QACRyV,UAAa,wBACb7a,MAASo9B,EAAOlvC,MAChB0xB,MAAS,WACP7b,EAAK24B,UAAU,UAIjBt3B,KAAQ,SACRyV,UAAa,yBACb7a,MAASo9B,EAAOjvC,OAChByxB,MAAS,WACP7b,EAAK24B,UAAU,UAIjBt3B,KAAQ,SACRyV,UAAa,yBACb7a,MAASo9B,EAAO13B,OAChBka,MAAS,WACP7b,EAAK24B,UAAU,GAAI,GAAI,cAOtB,IAAI1nB,GAAYr3B,GAAQoiC,MAAOJ,IACrCK,KAAKN,EAAQjsC,KAAKsmC,OAAOzD,UAOhC4e,EAAWh/C,UAAUskC,QAAU,SAAUC,GACvC,GAAItuB,GAAOsuB,EAAMtuB,KACb4uB,EAASN,EAAMM,QAAUN,EAAMkgB,WAC/BxlB,EAAM1hC,KAAK0hC,GAcf,IAVI4F,GADO5F,EAAIgC,OAED,aAARhrB,EACF1Y,KAAKsmC,OAAO3E,YAAY8K,UAAUzsC,KAAK0wB,QAExB,YAARhY,GACP1Y,KAAKsmC,OAAO3E,YAAYiL,eAKhB,SAARl0B,GAAmB4uB,GAAU5F,EAAIgC,KAAM,CACzC,GAAI/B,GAAc3hC,KAAKsmC,OAAO3E,WAC9BA,GAAY8K,UAAUzsC,KAAK0wB,QAC3BiR,EAAYmL,OACZ7rC,EAAKqvC,aAAa5O,EAAIgC,KAAM,uBAC5B1jC,KAAKgpC,gBAAgBtH,EAAIgC,KAAM,WAC7BziC,EAAKuvC,gBAAgB9O,EAAIgC,KAAM,uBAC/B/B,EAAYoL,SACZpL,EAAYiL,gBAIJ,WAARl0B,GACF1Y,KAAKunD,UAAUvgB,IAIZya,EA/NT,GAAIxgD,GAAOf,EAAoB,GAC3BqhC,EAAcrhC,EAAoB,EAiOtCL,GAAOD,QAAU0/C,GAKZ,SAASz/C,EAAQD,EAASM,GAE/B,YAYA,SAASuhC,GAAa7gC,EAAW4B,EAAOgpD,EAASC,GA0C/C,IAAK,GAxCDC,IACF5lD,MACE6rB,KAAQ,OACRpF,MAAS,6BACT4f,MAAS,WACPsf,EAAS,UAGbE,MACEh6B,KAAQ,OACRpF,MAAS,wBACT4f,MAAS,WACPsf,EAAS,UAGb95B,MACEA,KAAQ,OACRpF,MAAS,8BACT4f,MAAS,WACPsf,EAAS,UAGb3H,MACEnyB,KAAQ,OACRpF,MAAS,wBACT4f,MAAS,WACPsf,EAAS,UAGbG,MACEj6B,KAAQ,OACRpF,MAAS,sBACT4f,MAAS,WACPsf,EAAS,WAMXvhD,KACKnF,EAAI,EAAGA,EAAIvC,EAAMN,OAAQ6C,IAAK,CACrC,GAAIpC,GAAOH,EAAMuC,GACbsS,EAAOq0C,EAAe/oD,EAC1B,KAAK0U,EACH,KAAM,IAAItW,OAAM,iBAAmB4B,EAAO,IAG5C0U,GAAK+vB,UAAY,yBAA4BokB,GAAW7oD,EAAQ,uBAAyB,IACzFuH,EAAMgP,KAAK7B,GAIb,GAAIw0C,GAAcH,EAAeF,EACjC,KAAKK,EACH,KAAM,IAAI9qD,OAAM,iBAAmByqD,EAAU,IAE/C,IAAIM,GAAeD,EAAYl6B,KAG3Bo6B,EAAM7kB,SAASC,cAAc,SACjC4kB,GAAIrzC,KAAO,SACXqzC,EAAI3kB,UAAY,wCAChB2kB,EAAI3P,UAAY0P,EAAe,YAC/BC,EAAIx/B,MAAQ,qBACZw/B,EAAI1kB,QAAU,WACD,GAAI9F,GAAYr3B,GACtBqiC,KAAKwf,GAGZ,IAAI1pB,GAAQ6E,SAASC,cAAc,MACnC9E,GAAM+E,UAAY,mBAClB/E,EAAMwO,MAAMmb,SAAW,WACvB3pB,EAAMc,YAAY4oB,GAElBnrD,EAAUuiC,YAAYd,GAEtBriC,KAAK0hC,KACH9gC,UAAWA,EACXmrD,IAAKA,EACL1pB,MAAOA,GA3FX,GAAId,GAAcrhC,EAAoB,EAkGtCuhC,GAAah/B,UAAU+gC,MAAQ,WAC7BxjC,KAAK0hC,IAAIqqB,IAAIvoB,SAMf/B,EAAah/B,UAAUI,QAAU,WAC3B7C,KAAK0hC,KAAO1hC,KAAK0hC,IAAIW,OAASriC,KAAK0hC,IAAIW,MAAMC,YAC/CtiC,KAAK0hC,IAAIW,MAAMC,WAAWC,YAAYviC,KAAK0hC,IAAIW,OAEjDriC,KAAK0hC,IAAM,MAGb7hC,EAAOD,QAAU6hC,GAKZ,SAAS5hC,EAAQD,EAASM,GAE/B,YAEA,IAAI+rD,GAAM/rD,EAAoB,IAC1BuhC,EAAevhC,EAAoB,IACnCe,EAAOf,EAAoB,GAG3BqC,IA4BJA,GAASyB,OAAS,SAAUpD,EAAWC,GAErCA,EAAUA,MACVb,KAAKa,QAAUA,EAGXA,EAAQqrD,YACVlsD,KAAKksD,YAAcvc,OAAO9uC,EAAQqrD,aAGlClsD,KAAKksD,YAAc,CAIrB,IAAIC,GAAOtrD,EAAQorD,IAAMprD,EAAQorD,IAAMA,CAevC,IAXAjsD,KAAK2C,KAAwB,QAAhB9B,EAAQ8B,KAAkB,OAAS,OAC/B,QAAb3C,KAAK2C,UAEa,KAATwpD,IACTnsD,KAAK2C,KAAO,OACZvB,QAAQC,KAAK,iKAKjBrB,KAAKosD,MAAQvrD,EAAQurD,OApDH,uBAAA,yBAqDdpsD,KAAKosD,OAA2BD,EAClC,IACEjsD,EAAoB,IAEtB,MAAOmC,GACLjB,QAAQD,MAAMkB,GAIlB,GAAI4iC,GAAKjlC,IACTA,MAAKY,UAAYA,EACjBZ,KAAK0hC,OACL1hC,KAAKqsD,cAAYz8C,GACjB5P,KAAKssD,aAAW18C,GAChB5P,KAAK0E,eAAiB,KAGtB1E,KAAKwiC,mBAAqBvhC,EAAK0hC,SAAS3iC,KAAK4E,SAASg+B,KAAK5iC,MAAOA,KAAK0C,mBAEvE1C,KAAKgsC,MAAQprC,EAAU2rD,YACvBvsD,KAAKolC,OAASxkC,EAAUykC,aAExBrlC,KAAKqiC,MAAQ6E,SAASC,cAAc,OACpCnnC,KAAKqiC,MAAM+E,UAAY,8BAAgCpnC,KAAKa,QAAQ8B,KACpE3C,KAAKqiC,MAAMgF,QAAU,SAAUL,GAE7BA,EAAMO,kBAERvnC,KAAKqiC,MAAMqF,UAAY,SAAUV,GAC/B/B,EAAG2D,WAAW5B,IAIhBhnC,KAAK0jC,KAAOwD,SAASC,cAAc,OACnCnnC,KAAK0jC,KAAK0D,UAAY,kBACtBpnC,KAAKqiC,MAAMc,YAAYnjC,KAAK0jC,KAG5B,IAAI8oB,GAAetlB,SAASC,cAAc,SAC1CqlB,GAAa9zC,KAAO,SACpB8zC,EAAaplB,UAAY,oBACzBolB,EAAajgC,MAAQ,qEACrBvsB,KAAK0jC,KAAKP,YAAYqpB,GACtBA,EAAanlB,QAAU,WACrB,IACEpC,EAAGh7B,SACHg7B,EAAGf,YAEL,MAAO7hC,GACL4iC,EAAG9gC,SAAS9B,IAKhB,IAAIoqD,GAAgBvlB,SAASC,cAAc,SAC3CslB,GAAc/zC,KAAO,SACrB+zC,EAAcrlB,UAAY,qBAC1BqlB,EAAclgC,MAAQ,4DACtBvsB,KAAK0jC,KAAKP,YAAYspB,GACtBA,EAAcplB,QAAU,WACtB,IACEpC,EAAGynB,UACHznB,EAAGf,YAEL,MAAO7hC,GACL4iC,EAAG9gC,SAAS9B,KAKZrC,KAAKa,SAAWb,KAAKa,QAAQ2B,OAASxC,KAAKa,QAAQ2B,MAAMN,SAC3DlC,KAAK0iC,aAAe,GAAIjB,GAAazhC,KAAK0jC,KAAM1jC,KAAKa,QAAQ2B,MAAOxC,KAAKa,QAAQ8B,KAAM,SAAkBA,GAEvGsiC,EAAGriC,QAAQD,GACXsiC,EAAGvC,aAAac,UAIpB,IAAImpB,MACAC,EAAc5sD,KAAKa,QAAQa,mBACO,aAA5B1B,KAAKa,QAAQa,cACnB1B,KAAKa,QAAQa,WAAWirD,EAQ5B,IANA3sD,KAAK6iC,QAAUqE,SAASC,cAAc,OACtCnnC,KAAK6iC,QAAQuE,UAAY,mBACzBpnC,KAAKqiC,MAAMc,YAAYnjC,KAAK6iC,SAE5B7iC,KAAKY,UAAUuiC,YAAYnjC,KAAKqiC,OAEf,QAAbriC,KAAK2C,KAAgB,CACvB3C,KAAK6sD,UAAY3lB,SAASC,cAAc,OACxCnnC,KAAK6sD,UAAUhc,MAAMzL,OAAS,OAC9BplC,KAAK6sD,UAAUhc,MAAM7E,MAAQ,OAC7BhsC,KAAK6iC,QAAQM,YAAYnjC,KAAK6sD,UAE9B,IAAIR,GAAYF,EAAKW,KAAK9sD,KAAK6sD,UAC/BR,GAAUU,gBAAkBx1C,EAAAA,EAC5B80C,EAAUW,SAAShtD,KAAKosD,OACxBC,EAAUY,YAAaC,SAAUN,IACjCP,EAAUc,oBAAmB,GAC7Bd,EAAUe,YAAY,IACtBf,EAAUgB,aAAazqD,QAAQ,iBAC/BypD,EAAUgB,aAAaC,WAAWttD,KAAKksD,aACvCG,EAAUgB,aAAaE,gBAAe,GACtClB,EAAUgB,aAAaG,gBAAe,GACtCnB,EAAUoB,SAASC,QAAQ,SAAU,MACrCrB,EAAUoB,SAASC,QAAQ,YAAa,MACxC1tD,KAAKqsD,UAAYA,EAGZrsD,KAAKkN,eAAe,WACvBtL,OAAO+rD,eAAe3tD,KAAM,UAC1B+C,IAAK,WAEH,MADA3B,SAAQC,KAAK,sDACN4jC,EAAGonB,WAEZvpD,IAAK,SAAUupD,GACbjrD,QAAQC,KAAK,sDACb4jC,EAAGonB,UAAYA,IAKrB,IAAIuB,GAAY1mB,SAASC,cAAc,IACvCymB,GAAUzqB,YAAY+D,SAAS8K,eAAe,mBAC9C4b,EAAUh2C,KAAO,sBACjBg2C,EAAUtmB,OAAS,SACnBsmB,EAAUxmB,UAAY,uBACtBwmB,EAAUvmB,QAAU,WAIlBpQ,OAAOowB,KAAKuG,EAAUh2C,KAAMg2C,EAAUtmB,SAExCtnC,KAAK0jC,KAAKP,YAAYyqB,GAGtBvB,EAAUwB,GAAG,SAAU7tD,KAAKkkC,UAAUtB,KAAK5iC,WAExC,CAEH,GAAIssD,GAAWplB,SAASC,cAAc,WACtCmlB,GAASllB,UAAY,kBACrBklB,EAASlG,YAAa,EACtBpmD,KAAK6iC,QAAQM,YAAYmpB,GACzBtsD,KAAKssD,SAAWA,EAChBtsD,KAAKssD,SAASY,SAAWN,EAGK,OAA1B5sD,KAAKssD,SAAS9kB,QAChBxnC,KAAKssD,SAAS9kB,QAAUxnC,KAAKkkC,UAAUtB,KAAK5iC,MAI5CA,KAAKssD,SAAS7kB,SAAWznC,KAAKkkC,UAAUtB,KAAK5iC,MAIjDA,KAAKqE,UAAUrE,KAAKa,QAAQyD,SAS9B/B,EAAS2hC,UAAY,WAKnB,GAHAlkC,KAAKwiC,qBAGDxiC,KAAKa,QAAQW,SACf,IACExB,KAAKa,QAAQW,WAEf,MAAOa,GACLjB,QAAQD,MAAM,+BAAgCkB,KAUpDE,EAASqmC,WAAa,SAAU5B,GAC9B,GAAIoE,GAASpE,EAAMqE,OAASrE,EAAMsE,QAC9BG,GAAU,CAEA,MAAVL,GAAiBpE,EAAMuE,UACrBvE,EAAMwE,UACRxrC,KAAK0sD,UACL1sD,KAAKkkC,cAGLlkC,KAAKiK,SACLjK,KAAKkkC,aAEPuH,GAAU,GAGRA,IACFzE,EAAMO,iBACNP,EAAM4E,oBAOVrpC,EAASM,QAAU,WAEb7C,KAAKqsD,YACPrsD,KAAKqsD,UAAUxpD,UACf7C,KAAKqsD,UAAY,MAGfrsD,KAAKqiC,OAASriC,KAAKY,WAAaZ,KAAKqiC,MAAMC,YAActiC,KAAKY,WAChEZ,KAAKY,UAAU2hC,YAAYviC,KAAKqiC,OAG9BriC,KAAK0iC,eACP1iC,KAAK0iC,aAAa7/B,UAClB7C,KAAK0iC,aAAe,MAGtB1iC,KAAKssD,SAAW,KAEhBtsD,KAAKwiC,mBAAqB,MAM5BjgC,EAASmqD,QAAU,WACjB,GAAI5rD,GAAOd,KAAK+C,MACZ4uB,EAAOvuB,KAAKC,UAAUvC,EAC1Bd,MAAKgD,QAAQ2uB,IAMfpvB,EAAS0H,OAAS,WAChB,GAAInJ,GAAOd,KAAK+C,MACZ4uB,EAAOvuB,KAAKC,UAAUvC,EAAM,KAAMd,KAAKksD,YAC3ClsD,MAAKgD,QAAQ2uB,IAMfpvB,EAASihC,MAAQ,WACXxjC,KAAKssD,UACPtsD,KAAKssD,SAAS9oB,QAEZxjC,KAAKqsD,WACPrsD,KAAKqsD,UAAU7oB,SAOnBjhC,EAASurD,OAAS,WAChB,GAAI9tD,KAAKqsD,UAAW,CAElBrsD,KAAKqsD,UAAUyB,QADH,KAShBvrD,EAASO,IAAM,SAAShC,GACtBd,KAAKgD,QAAQI,KAAKC,UAAUvC,EAAM,KAAMd,KAAKksD,eAO/C3pD,EAASQ,IAAM,WACb,GACIjC,GADA6wB,EAAO3xB,KAAKmD,SAGhB,KACErC,EAAOG,EAAKiC,MAAMyuB,GAEpB,MAAOtvB,GAELsvB,EAAO1wB,EAAKiuC,SAASvd,GAGrB7wB,EAAOG,EAAKiC,MAAMyuB,GAGpB,MAAO7wB,IAOTyB,EAASY,QAAU,WACjB,MAAInD,MAAKssD,SACAtsD,KAAKssD,SAAS7iD,MAEnBzJ,KAAKqsD,UACArsD,KAAKqsD,UAAU/oB,WAEjB,IAOT/gC,EAASS,QAAU,SAASC,GAC1B,GAAI0uB,EAYJ,IATEA,GADiC,IAA/B3xB,KAAKa,QAAQqpD,cACRjpD,EAAKyuC,mBAAmBzsC,GAGxBA,EAGLjD,KAAKssD,WACPtsD,KAAKssD,SAAS7iD,MAAQkoB,GAEpB3xB,KAAKqsD,UAAW,CAElB,GAAI0B,GAAmB/tD,KAAKa,QAAQW,QACpCxB,MAAKa,QAAQW,SAAW,KAExBxB,KAAKqsD,UAAUrN,SAASrtB,GAAO,GAE/B3xB,KAAKa,QAAQW,SAAWusD,EAI1B/tD,KAAK4E,YAOPrC,EAASqC,SAAW,WAEd5E,KAAK0hC,IAAIssB,mBACXhuD,KAAK0hC,IAAIssB,iBAAiB1rB,WAAWC,YAAYviC,KAAK0hC,IAAIssB,kBAC1DhuD,KAAK0hC,IAAIssB,iBAAmB,KAE5BhuD,KAAK6iC,QAAQgO,MAAMod,aAAe,GAClCjuD,KAAK6iC,QAAQgO,MAAMqd,cAAgB,GAGrC,IAEIptD,GAFAqtD,GAAa,EACbj9C,IAEJ,KACEpQ,EAAOd,KAAK+C,MACZorD,GAAa,EAEf,MAAO9rD,IAKP,GAAI8rD,GAAcnuD,KAAK0E,eAAgB,CACzB1E,KAAK0E,eAAe5D,KAE9BoQ,EAASlR,KAAK0E,eAAewM,OAAO+H,IAAI,SAAU9X,GAChD,MAAOF,GAAKqjC,mBAAmBnjC,MAKrC,GAAI+P,EAAOhP,OAAS,EAAG,CAGrB,GADYgP,EAAOhP,OAxbN,EAybF,CACTgP,EAASA,EAAO2F,MAAM,EA1bX,EA2bX,IAAIu3C,GAASpuD,KAAK0E,eAAewM,OAAOhP,OA3b7B,CA4bXgP,GAAOgI,KAAK,IAAMk1C,EAAS,oBAG7B,GAAIJ,GAAmB9mB,SAASC,cAAc,MAC9C6mB,GAAiB5R,UAAY,gDAEzBlrC,EAAO+H,IAAI,SAAU9X,GAUnB,MAAO,kEARc,gBAAVA,GACC,wBAA0BA,EAAQ,cAGlC,OAASA,EAAM6+B,SAAW,YACvB7+B,EAAM0T,QAAU,SAGqD,UACnF8O,KAAK,IACR,mBAGJ3jB,KAAK0hC,IAAIssB,iBAAmBA,EAC5BhuD,KAAKqiC,MAAMc,YAAY6qB,EAEvB,IAAI5oB,GAAS4oB,EAAiB3oB,YAC9BrlC,MAAK6iC,QAAQgO,MAAMod,cAAiB7oB,EAAU,KAC9CplC,KAAK6iC,QAAQgO,MAAMqd,cAAgB9oB,EAAS,KAI9C,GAAIplC,KAAKqsD,UAAW,CAElBrsD,KAAKqsD,UAAUyB,QADH,KAMhBjuD,EAAOD,UAEH+C,KAAM,OACNoB,MAAOxB,EACPkB,KAAM,OACNQ,KAAM1B,EAAS0H,SAGftH,KAAM,OACNoB,MAAOxB,EACPkB,KAAM,OACNQ,KAAM1B,EAAS0H,UAOd,SAASpK,EAAQD,EAASM,GAE/B,GAAI+rD,EACJ,IAAIh1B,OAAOg1B,IAETA,EAAMh1B,OAAOg1B,QAGb,KAEEA,EAAM/rD,EAAoB,IAG1BA,EAAoB,IACpBA,EAAoB,IAEtB,MAAOmC,IAMTxC,EAAOD,QAAUqsD,GAKZ,SAASpsD,EAAQD,EAASM,IAsC/B,WAEA,GAEIkF,GAAS,WAAc,MAAOpF,QAC7BoF,IAA2B,mBAAV6xB,UAAuB7xB,EAAS6xB,OAOtD,IAAIn3B,GAAS,SAASD,EAAQwuD,EAAMC,GAChC,GAAsB,gBAAXzuD,GAOP,YANIC,EAAOyuD,SACPzuD,EAAOyuD,SAASt9C,MAAMjR,KAAMiC,YAE5Bb,QAAQD,MAAM,mDACdC,QAAQ8zC,SAIQ,IAApBjzC,UAAUC,SACVosD,EAAUD,GACTvuD,EAAOG,QAAQJ,KAChBC,EAAO0uD,SAAS3uD,GAAUyuD,EAC1BxuD,EAAOG,QAAQJ,GAAU,MAIjCC,GAAOG,WACPH,EAAO0uD,WAKP,IAAIC,GAAY,SAASC,EAAU7uD,EAAQ+H,GACvC,GAAsB,gBAAX/H,GAAqB,CAC5B,GAAIyuD,GAAUK,EAAOD,EAAU7uD,EAC/B,QAAe+P,IAAX0+C,EAEA,MADA1mD,IAAYA,IACL0mD,MAER,IAA+C,mBAA3C1sD,OAAOa,UAAUwK,SAAS1M,KAAKV,GAA8B,CAEpE,IAAK,GADDkjC,MACKh+B,EAAI,EAAGgB,EAAIlG,EAAOqC,OAAQ6C,EAAIgB,IAAKhB,EAAG,CAC3C,GAAI6pD,GAAMD,EAAOD,EAAU7uD,EAAOkF,GAClC,QAAW6K,IAAPg/C,GAAoBC,EAASN,SAC7B,MACJxrB,GAAO7pB,KAAK01C,GAEhB,MAAOhnD,IAAYA,EAASqJ,MAAM,KAAM8xB,KAAW,IAIvD8rB,EAAW,SAAShvD,EAAQ+H,GAC5B,GAAIknD,GAAiBL,EAAU,GAAI5uD,EAAQ+H,EAC3C,YAAsBgI,IAAlBk/C,GAA+BD,EAASN,SACjCM,EAASN,SAASt9C,MAAMjR,KAAMiC,WAClC6sD,GAGPC,EAAkB,SAASL,EAAUM,GAErC,IAAiC,IAA7BA,EAAWhtD,QAAQ,KAAa,CAChC,GAAIitD,GAASD,EAAWvgD,MAAM,IAC9B,OAAOsgD,GAAgBL,EAAUO,EAAO,IAAM,IAAMF,EAAgBL,EAAUO,EAAO,IAGzF,GAA4B,KAAxBD,EAAWh9B,OAAO,GAAW,CAC7B,GAAIsC,GAAOo6B,EAASjgD,MAAM,KAAKoI,MAAM,GAAI,GAAG8M,KAAK,IAGjD,KAFAqrC,EAAa16B,EAAO,IAAM06B,GAES,IAA7BA,EAAWhtD,QAAQ,MAAe2pC,GAAYqjB,GAAY,CAC5D,GAAIrjB,GAAWqjB,CACfA,GAAaA,EAAWj3C,QAAQ,SAAU,KAAKA,QAAQ,iBAAkB,KAGjF,MAAOi3C,IAOPL,EAAS,SAASD,EAAUM,GAC5BA,EAAaD,EAAgBL,EAAUM,EAEvC,IAAInvD,GAASC,EAAOG,QAAQ+uD,EAC5B,KAAKnvD,EAAQ,CAET,GAAsB,mBADtBA,EAASC,EAAO0uD,SAASQ,IACS,CAC9B,GAAIpvD,MACAsvD,GACA7uD,GAAI2uD,EACJlgD,IAAK,GACLlP,QAASA,EACTuvD,UAAU,EAQdvvD,GADkBC,EAJR,SAASA,EAAQ+H,GACvB,MAAO6mD,GAAUO,EAAYnvD,EAAQ+H,IAGXhI,EAASsvD,IACdA,EAAItvD,QAC7BE,EAAOG,QAAQ+uD,GAAcpvD,QACtBE,GAAO0uD,SAASQ,GAE3BnvD,EAASC,EAAOG,QAAQ+uD,GAAcpvD,GAAWC,EAErD,MAAOA,KAGX,SAAmBuvD,GACf,GAAI1vD,GAAO0F,CACPgqD,KACKhqD,EAAOgqD,KACRhqD,EAAOgqD,OACX1vD,EAAO0F,EAAOgqD,IAGb1vD,EAAKI,QAAWJ,EAAKI,OAAOqvD,WAC7BrvD,EAAOyuD,SAAW7uD,EAAKI,OACvBJ,EAAKI,OAASA,EACdJ,EAAKI,OAAOqvD,UAAW,GAGtBzvD,EAAKmvD,UAAanvD,EAAKmvD,SAASM,WACjCN,EAASN,SAAW7uD,EAAKmvD,SACzBnvD,EAAKmvD,SAAWA,EAChBnvD,EAAKmvD,SAASM,UAAW,IAjIb,UAyIpBlD,IAAInsD,OAAO,kBAAkB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACxF,YAoDI,SAASwvD,GAAgBpgD,GACrB,OAAQA,EAAM7J,OAAa,IAAM,KACzB6J,EAAMqgD,WAAa,IAAM,KACzBrgD,EAAMsgD,UAAa,IAAM,KACzBtgD,EAAMugD,SAAa,IAAM,KACzBvgD,EAAMwgD,OAAa,IAAM,IAGrC,QAASztD,GAASyY,EAAOpD,EAAMq4C,GAC3B,GAAIljD,MAAM/J,UAAUT,QAChB,MAAOyY,GAAMzY,QAAQqV,EAAMq4C,EAC/B,KAAK,GAAI3qD,GAAI2qD,GAAQ,EAAG3qD,EAAI0V,EAAMvY,OAAQ6C,IACtC,GAAI0V,EAAM1V,KAAOsS,EACb,MAAOtS,EAEf,QAAQ,EAjEZ,GAAI4qD,IACIn0B,KAAMzuB,OAAOtK,UAAU+4B,KACvB3sB,KAAM9B,OAAOtK,UAAUoM,KACvBlB,MAAOuhB,OAAOzsB,UAAUkL,MACxBoK,QAASmX,OAAOzsB,UAAUsV,QAC1BtJ,MAAOygB,OAAOzsB,UAAUgM,OAE5BmhD,MAAsDhgD,KAAlC+/C,EAAKn0B,KAAKj7B,KAAK,OAAQ,IAAI,GAC/CsvD,EAA8B,WAG1B,MADAF,GAAK9gD,KAAKtO,KADF,KACU,KADV,KAEEyyB,YAGd68B,IAA+BD,IAEnC7iD,OAAOtK,UAAU+4B,KAAO,SAAU/tB,GAC9B,GACIlK,GAAMusD,EADNniD,EAAQgiD,EAAKn0B,KAAKvqB,MAAMjR,KAAMiC,UAElC,IAAoB,gBAAT,IAAqB0L,EAAO,CAUnC,IATKiiD,GAAqBjiD,EAAMzL,OAAS,GAAKF,EAAQ2L,EAAO,KAAO,IAChEmiD,EAAK/iD,OAAO/M,KAAKmT,OAAQw8C,EAAK53C,QAAQxX,KAAK8uD,EAAervD,MAAO,IAAK,KACtE2vD,EAAK53C,QAAQxX,KAAKkN,EAAIoJ,MAAMlJ,EAAMwG,OAAQ27C,EAAI,WAC1C,IAAK,GAAI/qD,GAAI,EAAGA,EAAI9C,UAAUC,OAAS,EAAG6C,QACjB6K,KAAjB3N,UAAU8C,KACV4I,EAAM5I,OAAK6K,OAIvB5P,KAAK+vD,UAAY/vD,KAAK+vD,SAASC,aAC/B,IAAK,GAAIjrD,GAAI,EAAGA,EAAI4I,EAAMzL,OAAQ6C,KAC9BxB,EAAOvD,KAAK+vD,SAASC,aAAajrD,EAAI,MAEnC4I,EAAMpK,GAAQoK,EAAM5I,KAG1B8qD,GAA+B7vD,KAAKoF,SAAWuI,EAAM,GAAGzL,QAAWlC,KAAKgzB,UAAYrlB,EAAMwG,OAC3FnU,KAAKgzB,YAEb,MAAOrlB,IAENkiD,IACD9iD,OAAOtK,UAAUoM,KAAO,SAAUpB,GAC9B,GAAIE,GAAQgiD,EAAKn0B,KAAKj7B,KAAKP,KAAMyN,EAGjC,OAFIE,IAAS3N,KAAKoF,SAAWuI,EAAM,GAAGzL,QAAWlC,KAAKgzB,UAAYrlB,EAAMwG,OACpEnU,KAAKgzB,cACArlB,OAwBrBs+C,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GAE1F,QAASowD,MA8cT,QAASC,GAAuBx1C,GAC5B,IAEI,MADA9Y,QAAO+rD,eAAejzC,EAAQ,eACvB,YAAcA,GACvB,MAAOy1C,KAkLb,QAASC,GAAU5qD,GAOf,MANAA,IAAKA,EACDA,IAAMA,EACNA,EAAI,EACS,IAANA,GAAWA,IAAM,EAAA,GAASA,KAAO,EAAA,IACxCA,GAAKA,EAAI,IAAM,GAAK8xB,KAAKxC,MAAMwC,KAAKwP,IAAIthC,KAErCA,EAzoBNsB,SAASrE,UAAUmgC,OACpB97B,SAASrE,UAAUmgC,KAAO,SAAcytB,GACpC,GAAI/oB,GAAStnC,IACb,IAAqB,kBAAVsnC,GACP,KAAM,IAAIrY,WAAU,kDAAoDqY,EAE5E,IAAIhZ,GAAOzX,EAAMtW,KAAK0B,UAAW,GAC7BquD,EAAQ,WAER,GAAItwD,eAAgBswD,GAAO,CAEvB,GAAIt/C,GAASs2B,EAAOr2B,MAChBjR,KACAsuB,EAAKlV,OAAOvC,EAAMtW,KAAK0B,YAE3B,OAAIL,QAAOoP,KAAYA,EACZA,EAEJhR,KAGP,MAAOsnC,GAAOr2B,MACVo/C,EACA/hC,EAAKlV,OAAOvC,EAAMtW,KAAK0B,aAWnC,OALGqlC,GAAO7kC,YACNwtD,EAAMxtD,UAAY6kC,EAAO7kC,UACzB6tD,EAAM7tD,UAAY,GAAIwtD,GACtBA,EAAMxtD,UAAY,MAEf6tD,GAGf,IAMIC,GACAC,EACAC,EACAC,EACAC,EAVApwD,EAAOuG,SAASrE,UAAUlC,KAC1BqwD,EAAmBpkD,MAAM/J,UACzBouD,EAAoBjvD,OAAOa,UAC3BoU,EAAQ+5C,EAAiB/5C,MACzBi6C,EAAYvwD,EAAKqiC,KAAKiuB,EAAkB5jD,UACxC8jD,EAAOxwD,EAAKqiC,KAAKiuB,EAAkB3jD,eAYvC,KANKyjD,EAAoBI,EAAKF,EAAmB,uBAC7CN,EAAehwD,EAAKqiC,KAAKiuB,EAAkBG,kBAC3CR,EAAejwD,EAAKqiC,KAAKiuB,EAAkBI,kBAC3CR,EAAelwD,EAAKqiC,KAAKiuB,EAAkBK,kBAC3CR,EAAenwD,EAAKqiC,KAAKiuB,EAAkBM,mBAEjB,IAAzB,EAAE,GAAG37C,OAAO,GAAGtT,OAChB,GAAG,WACC,QAASkvD,GAAUrrD,GACf,GAAIF,GAAI,GAAI2G,OAAMzG,EAAE,EAEpB,OADAF,GAAE,GAAKA,EAAE,GAAK,EACPA,EAEX,GAAgBwrD,GAAZ52C,IAUJ,IARAA,EAAMjF,OAAOvE,MAAMwJ,EAAO22C,EAAU,KACpC32C,EAAMjF,OAAOvE,MAAMwJ,EAAO22C,EAAU,KAEpCC,EAAe52C,EAAMvY,OACrBuY,EAAMjF,OAAO,EAAG,EAAG,OAECiF,EAAMvY,OAEtBmvD,EAAe,GAAK52C,EAAMvY,OAC1B,OAAO,KAEV,CACD,GAAIovD,GAAe9kD,MAAM/J,UAAU+S,MACnChJ,OAAM/J,UAAU+S,OAAS,SAASw0B,EAAOunB,GACrC,MAAKtvD,WAAUC,OAGJovD,EAAargD,MAAMjR,UACZ,KAAVgqC,EAAmB,EAAIA,MACP,KAAhBunB,EAA0BvxD,KAAKkC,OAAS8nC,EAASunB,GACnDn4C,OAAOvC,EAAMtW,KAAK0B,UAAW,aAIvCuK,OAAM/J,UAAU+S,OAAS,SAASoE,EAAK43C,GACnC,GAAItvD,GAASlC,KAAKkC,MACd0X,GAAM,EACFA,EAAM1X,IACN0X,EAAM1X,OACI,IAAP0X,EACPA,EAAM,EACCA,EAAM,IACbA,EAAM0d,KAAKqP,IAAIzkC,EAAS0X,EAAK,IAG3BA,EAAI43C,EAActvD,IACpBsvD,EAActvD,EAAS0X,EAE3B,IAAI63C,GAAUzxD,KAAK6W,MAAM+C,EAAKA,EAAI43C,GAC9BE,EAAS76C,EAAMtW,KAAK0B,UAAW,GAC/B2pB,EAAM8lC,EAAOxvD,MACjB,IAAI0X,IAAQ1X,EACJ0pB,GACA5rB,KAAKkZ,KAAKjI,MAAMjR,KAAM0xD,OAEvB,CACH,GAAI7lC,GAASyL,KAAKoP,IAAI8qB,EAAatvD,EAAS0X,GACxC+3C,EAAa/3C,EAAMiS,EACnB+lC,EAAaD,EAAa/lC,EAAMC,EAChCgmC,EAAY3vD,EAASyvD,EACrBG,EAAoB5vD,EAAS2pB,CAEjC,IAAI+lC,EAAaD,EACb,IAAK,GAAI5sD,GAAI,EAAGA,EAAI8sD,IAAa9sD,EAC7B/E,KAAK4xD,EAAW7sD,GAAK/E,KAAK2xD,EAAW5sD,OAEtC,IAAI6sD,EAAaD,EACpB,IAAK5sD,EAAI8sD,EAAW9sD,KAChB/E,KAAK4xD,EAAW7sD,GAAK/E,KAAK2xD,EAAW5sD,EAI7C,IAAI6mB,GAAOhS,IAAQk4C,EACf9xD,KAAKkC,OAAS4vD,EACd9xD,KAAKkZ,KAAKjI,MAAMjR,KAAM0xD,OAGtB,KADA1xD,KAAKkC,OAAS4vD,EAAoBlmC,EAC7B7mB,EAAI,EAAGA,EAAI6mB,IAAO7mB,EACnB/E,KAAK4Z,EAAI7U,GAAK2sD,EAAO3sD,GAIjC,MAAO0sD,GAIdjlD,OAAMvH,UACPuH,MAAMvH,QAAU,SAAiBwU,GAC7B,MAAyB,kBAAlBq3C,EAAUr3C,IAGzB,IAAIs4C,GAAcnwD,OAAO,KACrBowD,EAAgC,KAAlBD,EAAY,MAAe,IAAKA,GAgPlD,IA9OKvlD,MAAM/J,UAAUX,UACjB0K,MAAM/J,UAAUX,QAAU,SAAiBmwD,GACvC,GAAIv3C,GAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXiM,EACJy3C,EAAQlwD,UAAU,GAClB8C,GAAK,EACL7C,EAAS+F,EAAK/F,SAAW,CAC7B,IAAsB,qBAAlB4uD,EAAUmB,GACV,KAAM,IAAIhjC,UAGd,QAASlqB,EAAI7C,GACL6C,IAAKkD,IACLgqD,EAAI1xD,KAAK4xD,EAAOlqD,EAAKlD,GAAIA,EAAG2V,KAKvClO,MAAM/J,UAAUwW,MACjBzM,MAAM/J,UAAUwW,IAAM,SAAag5C,GAC/B,GAAIv3C,GAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXiM,EACJxY,EAAS+F,EAAK/F,SAAW,EACzB8O,EAASxE,MAAMtK,GACfiwD,EAAQlwD,UAAU,EACtB,IAAsB,qBAAlB6uD,EAAUmB,GACV,KAAM,IAAIhjC,WAAUgjC,EAAM,qBAG9B,KAAK,GAAIltD,GAAI,EAAGA,EAAI7C,EAAQ6C,IACpBA,IAAKkD,KACL+I,EAAOjM,GAAKktD,EAAI1xD,KAAK4xD,EAAOlqD,EAAKlD,GAAIA,EAAG2V,GAEhD,OAAO1J,KAGVxE,MAAM/J,UAAU+hC,SACjBh4B,MAAM/J,UAAU+hC,OAAS,SAAgBytB,GACrC,GAMIxoD,GANAiR,EAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACPiM,EACRxY,EAAS+F,EAAK/F,SAAW,EACzB8O,KAEAmhD,EAAQlwD,UAAU,EACtB,IAAsB,qBAAlB6uD,EAAUmB,GACV,KAAM,IAAIhjC,WAAUgjC,EAAM,qBAG9B,KAAK,GAAIltD,GAAI,EAAGA,EAAI7C,EAAQ6C,IACpBA,IAAKkD,KACLwB,EAAQxB,EAAKlD,GACTktD,EAAI1xD,KAAK4xD,EAAO1oD,EAAO1E,EAAG2V,IAC1B1J,EAAOkI,KAAKzP,GAIxB,OAAOuH,KAGVxE,MAAM/J,UAAU8e,QACjB/U,MAAM/J,UAAU8e,MAAQ,SAAe0wC,GACnC,GAAIv3C,GAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXiM,EACJxY,EAAS+F,EAAK/F,SAAW,EACzBiwD,EAAQlwD,UAAU,EACtB,IAAsB,qBAAlB6uD,EAAUmB,GACV,KAAM,IAAIhjC,WAAUgjC,EAAM,qBAG9B,KAAK,GAAIltD,GAAI,EAAGA,EAAI7C,EAAQ6C,IACxB,GAAIA,IAAKkD,KAASgqD,EAAI1xD,KAAK4xD,EAAOlqD,EAAKlD,GAAIA,EAAG2V,GAC1C,OAAO,CAGf,QAAO,IAGVlO,MAAM/J,UAAUqjD,OACjBt5C,MAAM/J,UAAUqjD,KAAO,SAAcmM,GACjC,GAAIv3C,GAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXiM,EACJxY,EAAS+F,EAAK/F,SAAW,EACzBiwD,EAAQlwD,UAAU,EACtB,IAAsB,qBAAlB6uD,EAAUmB,GACV,KAAM,IAAIhjC,WAAUgjC,EAAM,qBAG9B,KAAK,GAAIltD,GAAI,EAAGA,EAAI7C,EAAQ6C,IACxB,GAAIA,IAAKkD,IAAQgqD,EAAI1xD,KAAK4xD,EAAOlqD,EAAKlD,GAAIA,EAAG2V,GACzC,OAAO,CAGf,QAAO,IAGVlO,MAAM/J,UAAUiiC,SACjBl4B,MAAM/J,UAAUiiC,OAAS,SAAgButB,GACrC,GAAIv3C,GAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXiM,EACJxY,EAAS+F,EAAK/F,SAAW,CAC7B,IAAsB,qBAAlB4uD,EAAUmB,GACV,KAAM,IAAIhjC,WAAUgjC,EAAM,qBAE9B,KAAK/vD,GAA8B,GAApBD,UAAUC,OACrB,KAAM,IAAI+sB,WAAU,8CAGxB,IACIje,GADAjM,EAAI,CAER,IAAI9C,UAAUC,QAAU,EACpB8O,EAAS/O,UAAU,OAEnB,QAAG,CACC,GAAI8C,IAAKkD,GAAM,CACX+I,EAAS/I,EAAKlD,IACd,OAEJ,KAAMA,GAAK7C,EACP,KAAM,IAAI+sB,WAAU,+CAKhC,KAAOlqB,EAAI7C,EAAQ6C,IACXA,IAAKkD,KACL+I,EAASihD,EAAI1xD,SAAK,GAAQyQ,EAAQ/I,EAAKlD,GAAIA,EAAG2V,GAItD,OAAO1J,KAGVxE,MAAM/J,UAAU2vD,cACjB5lD,MAAM/J,UAAU2vD,YAAc,SAAqBH,GAC/C,GAAIv3C,GAASw3C,EAASlyD,MAClBiI,EAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXiM,EACJxY,EAAS+F,EAAK/F,SAAW,CAC7B,IAAsB,qBAAlB4uD,EAAUmB,GACV,KAAM,IAAIhjC,WAAUgjC,EAAM,qBAE9B,KAAK/vD,GAA8B,GAApBD,UAAUC,OACrB,KAAM,IAAI+sB,WAAU,mDAGxB,IAAIje,GAAQjM,EAAI7C,EAAS,CACzB,IAAID,UAAUC,QAAU,EACpB8O,EAAS/O,UAAU,OAEnB,QAAG,CACC,GAAI8C,IAAKkD,GAAM,CACX+I,EAAS/I,EAAKlD,IACd,OAEJ,KAAMA,EAAI,EACN,KAAM,IAAIkqB,WAAU,oDAKhC,GACQlqB,IAAK/E,QACLgR,EAASihD,EAAI1xD,SAAK,GAAQyQ,EAAQ/I,EAAKlD,GAAIA,EAAG2V,UAE7C3V,IAET,OAAOiM,KAGVxE,MAAM/J,UAAUT,UAAqC,IAAxB,EAAG,GAAGA,QAAQ,EAAG,KAC/CwK,MAAM/J,UAAUT,QAAU,SAAiBqwD,GACvC,GAAIpqD,GAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXyjD,EAASlyD,MACbkC,EAAS+F,EAAK/F,SAAW,CAE7B,KAAKA,EACD,OAAQ,CAGZ,IAAI6C,GAAI,CAKR,KAJI9C,UAAUC,OAAS,IACnB6C,EAAIqrD,EAAUnuD,UAAU,KAE5B8C,EAAIA,GAAK,EAAIA,EAAIuyB,KAAKqP,IAAI,EAAGzkC,EAAS6C,GAC/BA,EAAI7C,EAAQ6C,IACf,GAAIA,IAAKkD,IAAQA,EAAKlD,KAAOstD,EACzB,MAAOttD,EAGf,QAAQ,IAGXyH,MAAM/J,UAAUozB,cAA8C,IAA7B,EAAG,GAAGA,YAAY,GAAI,KACxDrpB,MAAM/J,UAAUozB,YAAc,SAAqBw8B,GAC/C,GAAIpqD,GAAO+pD,GAAkC,mBAAnBlB,EAAU9wD,MAC5BA,KAAKyO,MAAM,IACXyjD,EAASlyD,MACbkC,EAAS+F,EAAK/F,SAAW,CAE7B,KAAKA,EACD,OAAQ,CAEZ,IAAI6C,GAAI7C,EAAS,CAKjB,KAJID,UAAUC,OAAS,IACnB6C,EAAIuyB,KAAKoP,IAAI3hC,EAAGqrD,EAAUnuD,UAAU,MAExC8C,EAAIA,GAAK,EAAIA,EAAI7C,EAASo1B,KAAKwP,IAAI/hC,GAC5BA,GAAK,EAAGA,IACX,GAAIA,IAAKkD,IAAQoqD,IAAWpqD,EAAKlD,GAC7B,MAAOA,EAGf,QAAQ,IAGXnD,OAAO0wD,iBACR1wD,OAAO0wD,eAAiB,SAAwB53C,GAC5C,MAAOA,GAAO63C,YACV73C,EAAOqD,YACPrD,EAAOqD,YAAYtb,UACnBouD,MAIPjvD,OAAO4wD,yBAA0B,CAGlC5wD,OAAO4wD,yBAA2B,SAAkC93C,EAAQ+3C,GACxE,GAAsB,gBAAV/3C,IAAuC,kBAAVA,IAAoC,OAAXA,EAC9D,KAAM,IAAIuU,WAJG,2DAIwBvU,EACzC,IAAKq2C,EAAKr2C,EAAQ+3C,GAAlB,CAGA,GAAIC,GAAYC,EAAQC,CAExB,IADAF,GAAgBG,YAAY,EAAMC,cAAc,GAC5CnC,EAAmB,CACnB,GAAIluD,GAAYiY,EAAO63C,SACvB73C,GAAO63C,UAAY1B,CAEnB,IAAI8B,GAASlC,EAAa/1C,EAAQ+3C,GAC9BG,EAASlC,EAAah2C,EAAQ+3C,EAGlC,IAFA/3C,EAAO63C,UAAY9vD,EAEfkwD,GAAUC,EAGV,MAFID,KAAQD,EAAW3vD,IAAM4vD,GACzBC,IAAQF,EAAW5vD,IAAM8vD,GACtBF,EAIf,MADAA,GAAWjpD,MAAQiR,EAAO+3C,GACnBC,IAQf,GALK9wD,OAAOmxD,sBACRnxD,OAAOmxD,oBAAsB,SAA6Br4C,GACtD,MAAO9Y,QAAOC,KAAK6Y,MAGtB9Y,OAAOoC,OAAQ,CAChB,GAAIgvD,EAEAA,GAD+B,OAA/BpxD,OAAOa,UAAU8vD,UACH,WACV,OAASA,UAAa,OAGZ,WACV,GAAIU,KACJ,KAAK,GAAIluD,KAAKkuD,GACVA,EAAMluD,GAAK,IASf,OARAkuD,GAAMl1C,YACNk1C,EAAM/lD,eACN+lD,EAAMC,qBACND,EAAME,cACNF,EAAMG,eACNH,EAAMhmD,SACNgmD,EAAMI,QACNJ,EAAMV,UAAY,KACXU,GAIfrxD,OAAOoC,OAAS,SAAgBvB,EAAWsI,GACvC,GAAI2P,EACJ,IAAkB,OAAdjY,EACAiY,EAASs4C,QACN,CACH,GAAwB,gBAAbvwD,GACP,KAAM,IAAIwsB,WAAU,0BAA4BxsB,GAAW,gBAC/D,IAAI6wD,GAAO,YACXA,GAAK7wD,UAAYA,EACjBiY,EAAS,GAAI44C,GACb54C,EAAO63C,UAAY9vD,EAIvB,WAFmB,KAAfsI,GACAnJ,OAAO2xD,iBAAiB74C,EAAQ3P,GAC7B2P,GAWf,GAAI9Y,OAAO+rD,eAAgB,CACvB,GAAI6F,GAA8BtD,MAC9BuD,EAA8C,mBAAZvsB,WAClCgpB,EAAuBhpB,SAASC,cAAc,OAClD,KAAKqsB,IAAgCC,EACjC,GAAIC,GAAyB9xD,OAAO+rD,eAI5C,IAAK/rD,OAAO+rD,gBAAkB+F,EAAwB,CAMlD9xD,OAAO+rD,eAAiB,SAAwBjzC,EAAQ+3C,EAAUC,GAC9D,GAAsB,gBAAVh4C,IAAuC,kBAAVA,IAAoC,OAAXA,EAC9D,KAAM,IAAIuU,WANU,+CAMwBvU,EAChD,IAA0B,gBAAdg4C,IAA+C,kBAAdA,IAA4C,OAAfA,EACtE,KAAM,IAAIzjC,WATc,2CASwByjC,EACpD,IAAIgB,EACA,IACI,MAAOA,GAAuBnzD,KAAKqB,OAAQ8Y,EAAQ+3C,EAAUC,GAC/D,MAAOvC,IAGb,GAAIY,EAAK2B,EAAY,SAEjB,GAAI/B,IAAsBF,EAAa/1C,EAAQ+3C,IACrB/B,EAAah2C,EAAQ+3C,IAC/C,CACI,GAAIhwD,GAAYiY,EAAO63C,SACvB73C,GAAO63C,UAAY1B,QACZn2C,GAAO+3C,GACd/3C,EAAO+3C,GAAYC,EAAWjpD,MAC9BiR,EAAO63C,UAAY9vD,MAEnBiY,GAAO+3C,GAAYC,EAAWjpD,UAE/B,CACH,IAAKknD,EACD,KAAM,IAAI1hC,WA7BY,iEA8BtB8hC,GAAK2B,EAAY,QACjBnC,EAAa71C,EAAQ+3C,EAAUC,EAAW3vD,KAC1CguD,EAAK2B,EAAY,QACjBlC,EAAa91C,EAAQ+3C,EAAUC,EAAW5vD,KAGlD,MAAO4X,IAGV9Y,OAAO2xD,mBACR3xD,OAAO2xD,iBAAmB,SAA0B74C,EAAQ3P,GACxD,IAAK,GAAI0nD,KAAY1nD,GACbgmD,EAAKhmD,EAAY0nD,IACjB7wD,OAAO+rD,eAAejzC,EAAQ+3C,EAAU1nD,EAAW0nD,GAE3D,OAAO/3C,KAGV9Y,OAAO+xD,OACR/xD,OAAO+xD,KAAO,SAAcj5C,GACxB,MAAOA,KAGV9Y,OAAOgyD,SACRhyD,OAAOgyD,OAAS,SAAgBl5C,GAC5B,MAAOA,IAGf,KACI9Y,OAAOgyD,OAAO,cAChB,MAAOzD,GACLvuD,OAAOgyD,OAAS,SAAiBC,GAC7B,MAAO,UAAgBn5C,GACnB,MAAqB,kBAAVA,GACAA,EAEAm5C,EAAan5C,KAG7B9Y,OAAOgyD,QAgCd,GA9BKhyD,OAAOkyD,oBACRlyD,OAAOkyD,kBAAoB,SAA2Bp5C,GAClD,MAAOA,KAGV9Y,OAAOmyD,WACRnyD,OAAOmyD,SAAW,SAAkBr5C,GAChC,OAAO,IAGV9Y,OAAOoyD,WACRpyD,OAAOoyD,SAAW,SAAkBt5C,GAChC,OAAO,IAGV9Y,OAAOqyD,eACRryD,OAAOqyD,aAAe,SAAsBv5C,GACxC,GAAI9Y,OAAO8Y,KAAYA,EACnB,KAAM,IAAIuU,UAGd,KADA,GAAI1rB,GAAO,GACJwtD,EAAKr2C,EAAQnX,IAChBA,GAAQ,GAEZmX,GAAOnX,IAAQ,CACf,IAAI2wD,GAAcnD,EAAKr2C,EAAQnX,EAE/B,cADOmX,GAAOnX,GACP2wD,KAGVtyD,OAAOC,KAAM,CACd,GAAIsyD,IAAiB,EACjBC,GACI,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAEJC,EAAkBD,EAAUlyD,MAEhC,KAAK,GAAIsH,MAAQyD,SAAY,MACzBknD,GAAiB,CAGrBvyD,QAAOC,KAAO,SAAc6Y,GAExB,GACsB,gBAAVA,IAAuC,kBAAVA,IAC1B,OAAXA,EAEA,KAAM,IAAIuU,WAAU,qCAGxB,IAAIptB,KACJ,KAAK,GAAI0B,KAAQmX,GACTq2C,EAAKr2C,EAAQnX,IACb1B,EAAKqX,KAAK3V,EAIlB,IAAI4wD,EACA,IAAK,GAAIpvD,GAAI,EAAGuvD,EAAKD,EAAiBtvD,EAAIuvD,EAAIvvD,IAAK,CAC/C,GAAIwvD,GAAWH,EAAUrvD,EACrBgsD,GAAKr2C,EAAQ65C,IACb1yD,EAAKqX,KAAKq7C,GAItB,MAAO1yD,IAIV8K,KAAK6nD,MACN7nD,KAAK6nD,IAAM,WACP,OAAO,GAAI7nD,OAAOE,WAG1B,IAAI4nD,GAAK,gDAGT,KAAKvlC,OAAOzsB,UAAU64B,MAAQm5B,EAAGn5B,OAAQ,CACrCm5B,EAAK,IAAMA,EAAK,GAChB,IAAIC,GAAkB,GAAI3nD,QAAO,IAAM0nD,EAAKA,EAAK,KAC7CE,EAAgB,GAAI5nD,QAAO0nD,EAAKA,EAAK,KACzCvlC,QAAOzsB,UAAU64B,KAAO,WACpB,MAAOpM,QAAOlvB,MAAM+X,QAAQ28C,EAAiB,IAAI38C,QAAQ48C,EAAe,KA8ChF,GAAIzC,GAAW,SAAUvsD,GACrB,GAAS,MAALA,EACA,KAAM,IAAIspB,WAAU,iBAAiBtpB,EAAE,aAE3C,OAAO/D,QAAO+D,MAKlBsmD,IAAInsD,OAAO,0BAA0B,UAAU,UAAU,SAAS,iBAAiB,oBAAqB,SAAS+uD,EAAUjvD,EAASC,GACpI,YAEAgvD,GAAS,YACTA,EAAS,gBAIT5C,IAAInsD,OAAO,eAAe,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACrF,YAsKA,IAlKAD,EAAQg1D,gBAAkB,SAASC,GAG/B,MAFKA,KACDA,EAAM3tB,UACH2tB,EAAIC,MAAQD,EAAIE,qBAAqB,QAAQ,IAAMF,EAAIG,iBAGlEp1D,EAAQunC,cAAgB,SAAS8tB,EAAK7F,GAClC,MAAOloB,UAASguB,gBACThuB,SAASguB,gBAAgB9F,GAVrB,+BAUqC6F,GACzC/tB,SAASC,cAAc8tB,IAGlCr1D,EAAQu1D,YAAc,SAASC,EAAI7xD,GAE/B,OAAkC,KADnB6xD,EAAGhuB,UAAY,IAAI34B,MAAM,QACzBzM,QAAQuB,IAE3B3D,EAAQy1D,YAAc,SAASD,EAAI7xD,GAC1B3D,EAAQu1D,YAAYC,EAAI7xD,KACzB6xD,EAAGhuB,WAAa,IAAM7jC,IAG9B3D,EAAQ01D,eAAiB,SAASF,EAAI7xD,GAElC,IADA,GAAIgtC,GAAU6kB,EAAGhuB,UAAU34B,MAAM,UACpB,CACT,GAAI0F,GAAQo8B,EAAQvuC,QAAQuB,EAC5B,KAAc,GAAV4Q,EACA,KAEJo8B,GAAQ/6B,OAAOrB,EAAO,GAE1BihD,EAAGhuB,UAAYmJ,EAAQ5sB,KAAK,MAGhC/jB,EAAQ21D,eAAiB,SAASH,EAAI7xD,GAElC,IADA,GAAIgtC,GAAU6kB,EAAGhuB,UAAU34B,MAAM,QAASmd,GAAM,IACnC,CACT,GAAIzX,GAAQo8B,EAAQvuC,QAAQuB,EAC5B,KAAc,GAAV4Q,EACA,KAEJyX,IAAM,EACN2kB,EAAQ/6B,OAAOrB,EAAO,GAM1B,MAJIyX,IACA2kB,EAAQr3B,KAAK3V,GAEjB6xD,EAAGhuB,UAAYmJ,EAAQ5sB,KAAK,KACrBiI,GAEXhsB,EAAQ41D,YAAc,SAASllC,EAAM8W,EAAWquB,GACxCA,EACA71D,EAAQy1D,YAAY/kC,EAAM8W,GAE1BxnC,EAAQ01D,eAAehlC,EAAM8W,IAIrCxnC,EAAQ81D,aAAe,SAASr1D,EAAIw0D,GAChC,GAAec,GAAXxhD,EAAQ,CAGZ,IAFA0gD,EAAMA,GAAO3tB,SAET2tB,EAAIe,mBAAqBD,EAASd,EAAIgB,cACtC,KAAO1hD,EAAQwhD,EAAOzzD,QAClB,GAAIyzD,EAAOxhD,KAAS2hD,cAAcz1D,KAAOA,EAAI,OAAO,MACrD,IAAKs1D,EAASd,EAAIE,qBAAqB,SAC1C,KAAO5gD,EAAQwhD,EAAOzzD,QAClB,GAAIyzD,EAAOxhD,KAAS9T,KAAOA,EAAI,OAAO,CAG9C,QAAO,GAGXT,EAAQm2D,gBAAkB,SAAyBC,EAAS31D,EAAIw0D,GAE5D,GADAA,EAAMA,GAAO3tB,SACT7mC,GAAMT,EAAQ81D,aAAar1D,EAAIw0D,GAC/B,MAAO,KAEX,IAAIhkB,EAEAxwC,KACA21D,GAAW,2BAA6B31D,EAAK,OAE7Cw0D,EAAIe,kBACJ/kB,EAAQgkB,EAAIe,mBACZ/kB,EAAMmlB,QAAUA,EACZ31D,IACAwwC,EAAMilB,cAAcz1D,GAAKA,KAE7BwwC,EAAQjxC,EAAQunC,cAAc,SAC9B0J,EAAM1N,YAAY0xB,EAAI7iB,eAAegkB,IACjC31D,IACAwwC,EAAMxwC,GAAKA,GAEfT,EAAQg1D,gBAAgBC,GAAK1xB,YAAY0N,KAIjDjxC,EAAQq2D,mBAAqB,SAASnnD,EAAK+lD,GACvC,GAAIA,EAAIe,iBACJf,EAAIe,iBAAiB9mD,OAClB,CACH,GAAIonD,GAAOt2D,EAAQunC,cAAc,OACjC+uB,GAAKv5B,IAAM,aACXu5B,EAAKt+C,KAAO9I,EAEZlP,EAAQg1D,gBAAgBC,GAAK1xB,YAAY+yB,KAIjDt2D,EAAQu2D,cAAgB,SAAS/jB,GAC7B,MACI/f,UAASzyB,EAAQw2D,cAAchkB,EAAS,eAAgB,IACxD/f,SAASzyB,EAAQw2D,cAAchkB,EAAS,gBAAiB,IACzDA,EAAQma,aAIhB3sD,EAAQy2D,eAAiB,SAASjkB,GAC9B,MACI/f,UAASzyB,EAAQw2D,cAAchkB,EAAS,cAAe,IACvD/f,SAASzyB,EAAQw2D,cAAchkB,EAAS,iBAAkB,IAC1DA,EAAQ/M,cAIhBzlC,EAAQ02D,eAAiB,SAASpvB,GAC9B,GAAIqvB,GAAQ32D,EAAQunC,cAAc,YAClCovB,GAAM1lB,MAAM7E,MAAQ,OACpBuqB,EAAM1lB,MAAM2lB,SAAW,MACvBD,EAAM1lB,MAAMzL,OAAS,QACrBmxB,EAAM1lB,MAAM4N,QAAU,OAEtB,IAAIgY,GAAQ72D,EAAQunC,cAAc,aAC9B0J,EAAQ4lB,EAAM5lB,KAElBA,GAAMmb,SAAW,WACjBnb,EAAMX,KAAO,WACbW,EAAM1Z,SAAW,SACjB0Z,EAAM7E,MAAQ,QACd6E,EAAM2lB,SAAW,MACjB3lB,EAAMzL,OAAS,QACfyL,EAAM4N,QAAU,QAEhBgY,EAAMtzB,YAAYozB,EAElB,IAAI/R,GAAOtd,EAAS8tB,eACpBxQ,GAAKrhB,YAAYszB,EAEjB,IAAIC,GAAcH,EAAMI,WAExB9lB,GAAM1Z,SAAW,QACjB,IAAIy/B,GAAgBL,EAAMI,WAQ1B,OANID,IAAeE,IACfA,EAAgBH,EAAMlK,aAG1B/H,EAAKjiB,YAAYk0B,GAEVC,EAAYE,GAGA,mBAAZ1vB,UAEP,YADAtnC,EAAQm2D,gBAAkB,kBAIHnmD,KAAvBqnB,OAAOoZ,aACPzwC,EAAQi3D,iBAAmB,WACvB,MAAO5/B,QAAOoZ,aAGlBzwC,EAAQk3D,kBAAoB,WACxB,MAAO7/B,QAAOkZ,eAIlBvwC,EAAQi3D,iBAAmB,WACvB,MAAO3vB,UAASsd,KAAKjf,WAGzB3lC,EAAQk3D,kBAAoB,WACxB,MAAO5vB,UAASsd,KAAKpU,aAIzBnZ,OAAO8/B,iBACPn3D,EAAQw2D,cAAgB,SAAShkB,EAASvB,GACtC,MAAIA,IACQ5Z,OAAO8/B,iBAAiB3kB,EAAS,SAAWvB,IAAU,GAC3D5Z,OAAO8/B,iBAAiB3kB,EAAS,SAG5CxyC,EAAQw2D,cAAgB,SAAShkB,EAASvB,GACtC,MAAIA,GACOuB,EAAQ4kB,aAAanmB,GACzBuB,EAAQ4kB,cAEvBp3D,EAAQq3D,aAAe,SAAS7B,EAAI8B,GAChC,GAAI9kB,GAAUgjB,EAAG+B,WAAU,EAG3B,OAFA/kB,GAAQgK,UAAY8a,EACpB9B,EAAG9yB,WAAW80B,aAAahlB,EAASgjB,GAC7BhjB,GAGP,eAAiBlL,UAAS8tB,iBAC1Bp1D,EAAQy3D,aAAe,SAASjC,EAAI3iB,GAChC2iB,EAAGkC,YAAc7kB,GAGrB7yC,EAAQuyC,aAAe,SAASijB,GAC5B,MAAOA,GAAGkC,eAId13D,EAAQy3D,aAAe,SAASjC,EAAI3iB,GAChC2iB,EAAG3iB,UAAYA,GAGnB7yC,EAAQuyC,aAAe,SAASijB,GAC5B,MAAOA,GAAG3iB,YAIlB7yC,EAAQ23D,gBAAkB,SAASrwB,GAC/B,MAAOA,GAASswB,aAAetwB,EAASuwB,gBAK5CxL,IAAInsD,OAAO,eAAe,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACrF,YAEAD,GAAQ83D,SAAW,SAASC,EAAMC,GAC9BD,EAAKE,OAASD,EACdD,EAAKl1D,UAAYb,OAAOoC,OAAO4zD,EAAUn1D,WACrCsb,aACItU,MAAOkuD,EACP9E,YAAY,EACZiF,UAAU,EACVhF,cAAc,MAK1BlzD,EAAQmE,MAAQ,SAAS0V,EAAK1V,GAC1B,IAAK,GAAIyF,KAAOzF,GACZ0V,EAAIjQ,GAAOzF,EAAMyF,EAErB,OAAOiQ,IAGX7Z,EAAQm4D,UAAY,SAASt8B,EAAO13B,GAChCnE,EAAQmE,MAAM03B,EAAO13B,MAKzBkoD,IAAInsD,OAAO,gBAAgB,UAAU,UAAU,SAAS,yBAAyB,eAAgB,SAAS+uD,EAAUjvD,EAASC,GAC7H,YAEAgvD,GAAS,mBAET,IAAImJ,GAAMnJ,EAAS,SACfoJ,EAAO,WACP,GAkEI10D,GAAMwB,EAlEN2pB,GACAwpC,eACIz3C,GAAI,QAASE,GAAI,OAAQC,GAAI,MAAOu3C,IAAK,QAG7CC,UACIC,KAAQ,EAAGC,IAAO,EAAGv2D,OAAW,EAAGo7B,MAAS,EAC5Co7B,MAAS,EAAG9qC,KAAQ,EAAG+qC,QAAW,EAAGC,IAAO,GAGhDC,eACIlgD,EAAK,YACLgB,EAAK,MACLwE,GAAK,SACLqD,GAAK,QACL6D,GAAK,MACLyD,GAAK,QACLO,GAAK,SACLI,GAAK,WACLO,GAAK,MACLC,GAAK,OACLqB,GAAK,OACLY,GAAK,KACLW,GAAK,QACLQ,GAAK,OACLsE,GAAK,QACLqB,GAAK,SACLa,GAAK,SACLilC,GAAK,UACLC,GAAK,UACLC,GAAK,UACLC,GAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,MAAO,cACPC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,UACLC,IAAK,cAGTC,gBACGzxC,GAAI,IAAMwP,GAAI,IAAMG,GAAI,IAAMG,GAAI,IAAMuF,GAAI,IAAMq8B,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IACjEC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IACjEC,IAAK,IAAKC,IAAK,KAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,KAI7D,KAAKv4D,IAAK2pB,GAAIgqC,cACVn1D,EAAOmrB,EAAIgqC,cAAc3zD,GAAG2xB,cAC5BhI,EAAInrB,GAAQ8uB,SAASttB,EAAG,GAE5B,KAAKA,IAAK2pB,GAAI0rC,eACV72D,EAAOmrB,EAAI0rC,eAAer1D,GAAG2xB,cAC7BhI,EAAInrB,GAAQ8uB,SAASttB,EAAG,GAsB5B,OApBAizD,GAAIj0D,MAAM2qB,EAAKA,EAAIwpC,eACnBF,EAAIj0D,MAAM2qB,EAAKA,EAAI0rC,gBACnBpC,EAAIj0D,MAAM2qB,EAAKA,EAAIgqC,eACnBhqC,EAAI6uC,MAAQ7uC,EAAY,OACxBA,EAAI+N,OAAS/N,EAAI8N,IACjB9N,EAAIhlB,IAAMglB,EAAY,OACtBA,EAAI,KAAO,IAEX,WAEI,IAAK,GADD8uC,IAAQ,MAAO,OAAQ,MAAO,SACzBz4D,EAAIuyB,KAAKmmC,IAAI,EAAGD,EAAKt7D,QAAS6C,KACnC2pB,EAAI0pC,SAASrzD,GAAKy4D,EAAKh5B,OAAO,SAAStT,GACnC,MAAOnsB,GAAI2pB,EAAI0pC,SAASlnC,KACzBvN,KAAK,KAAO,OAIvB+K,EAAI0pC,SAAS,GAAK,GAClB1pC,EAAI0pC,UAAU,GAAK,SAEZ1pC,IAEXspC,GAAIj0D,MAAMnE,EAASq4D,GAEnBr4D,EAAQ89D,gBAAkB,SAASpyB,GAC/B,GAAIqyB,GAAY1F,EAAK3sB,EAGrB,OAFwB,gBAAbqyB,KACPA,EAAYzuC,OAAOoD,aAAagZ,IAC7BqyB,EAAUjnC,iBAKrBu1B,IAAInsD,OAAO,qBAAqB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GAC3F,YAeA,IAdAD,EAAQg+D,IACJC,MAAO,QACPC,IAAK,MACLC,QAAS,WAEbn+D,EAAQo+D,MAAQ,WACZ,MAAIp+D,GAAQq+D,MACDr+D,EAAQg+D,GAAGE,IACXl+D,EAAQs+D,QACRt+D,EAAQg+D,GAAGC,MAEXj+D,EAAQg+D,GAAGG,SAGF,gBAAbjrB,WAAX,CAGA,GAAIqrB,IAAMrrB,UAAUsrB,SAASzwD,MAAM,oBAAsB,UAAU,GAAG+oB,cAClEsc,EAAKF,UAAUG,SACnBrzC,GAAQy+D,MAAe,OAANF,EACjBv+D,EAAQq+D,MAAe,OAANE,EACjBv+D,EAAQs+D,QAAiB,SAANC,EACnBv+D,EAAQ0+D,KACkB,+BAArBxrB,UAAUC,SAA4CD,UAAUC,QAAQ/wC,QAAQ,cAAgB,EAC/FkxC,YAAYF,EAAGrlC,MAAM,gEAAgE,IACrFulC,YAAYF,EAAGrlC,MAAM,0DAA0D,IAErF/N,EAAQ2+D,QAAU3+D,EAAQ0+D,MAAQ1+D,EAAQ0+D,KAAO,EACjD1+D,EAAQ4+D,QAAU5+D,EAAQ6+D,WAAaxnC,OAAOynC,aAAeznC,OAAO0nC,cAA6C,UAA7B1nC,OAAO6b,UAAU8rB,QACrGh/D,EAAQi/D,WAAaj/D,EAAQ4+D,SAAWnsC,UAAU2gB,EAAGrlC,MAAM,iBAAiB,GAAI,IAAM,EACtF/N,EAAQk/D,QAAU7nC,OAAO8nC,OAAyD,kBAAhDn9D,OAAOa,UAAUwK,SAAS1M,KAAK02B,OAAO8nC,OACxEn/D,EAAQo/D,SAAW9rB,WAAWF,EAAGvkC,MAAM,WAAW,SAAOmB,GAEzDhQ,EAAQq/D,SAAW/rB,WAAWF,EAAGvkC,MAAM,YAAY,SAAOmB,GAE1DhQ,EAAQs/D,MAAQlsB,EAAGhxC,QAAQ,aAAe,EAE1CpC,EAAQu/D,OAASnsB,EAAGhxC,QAAQ,SAAW,EAEvCpC,EAAQw/D,WAAapsB,EAAGhxC,QAAQ,aAAe,EAE/CpC,EAAQy/D,WAAarsB,EAAGhxC,QAAQ,WAAa,KAI7CiqD,IAAInsD,OAAO,iBAAiB,UAAU,UAAU,SAAS,eAAe,qBAAsB,SAAS+uD,EAAUjvD,EAASC,GAC1H,YAwNA,SAASy/D,GAAqB13D,EAAUtC,EAAGgmC,GACvC,GAAIi0B,GAASC,EAAgBl6D,EAE7B,KAAKm6D,EAAUxB,OAASyB,EAAa,CAGjC,GAFIp6D,EAAEq6D,mBAAqBr6D,EAAEq6D,iBAAiB,OAASr6D,EAAEq6D,iBAAiB,UACtEJ,GAAU,GACVG,EAAYE,MAAO,CACnB,GAAoB,IAAf,EAAIL,GAGL,MAFAG,GAAYE,MAAQ,EAI5B,GAAgB,KAAZt0B,GAA8B,KAAZA,EAAgB,CAClC,GAAIu0B,GAAW,YAAcv6D,GAAIA,EAAEu6D,SAAWv6D,EAAEw6D,WAChD,IAAgB,KAAZx0B,GAA+B,IAAbu0B,EACU,GAAxBH,EAAYp0B,KACZy0B,EAAKz6D,EAAE06D,eACR,IAAgB,KAAZ10B,GAA6B,IAAXi0B,GAA6B,IAAbM,EAAgB,CACzD,GAAII,GAAK36D,EAAE06D,UAAYD,CACnBE,GAAK,KACLP,EAAYE,OAAQ,KAYpC,GAPIt0B,IAAWzpC,GAAKq2D,gBAChB5sB,GAAW,GAEF,EAATi0B,GAAej0B,GAAW,IAAMA,GAAW,KAC3CA,GAAW,IAGVi0B,GAAsB,KAAZj0B,EAAgB,CAC3B,GAAIu0B,GAAW,YAAcv6D,GAAIA,EAAEu6D,SAAWv6D,EAAEw6D,WAChD,IAAiB,IAAbD,IACAj4D,EAAStC,EAAGi6D,GAASj0B,GACjBhmC,EAAE46D,kBACF,OAIZ,GAAIT,EAAUJ,YAAuB,EAATE,EAAY,CAEpC,GADA33D,EAAStC,EAAGi6D,EAAQj0B,GAChBhmC,EAAE46D,iBACF,MAEAX,KAAU,EAElB,SAAKA,GAAYj0B,IAAWzpC,GAAK62D,eAAoBptB,IAAWzpC,GAAKu4D,iBAI9DxyD,EAAStC,EAAGi6D,EAAQj0B,GAyC/B,QAAS60B,KACLT,EAAc99D,OAAOoC,OAAO,MApThC,GAAInC,GAAOgtD,EAAS,UAChB4Q,EAAY5Q,EAAS,eAErB6Q,EAAc,KACdK,EAAK,CAETngE,GAAQwgE,YAAc,SAASpwB,EAAMt3B,EAAM9Q,GACvC,GAAIooC,EAAK9H,iBACL,MAAO8H,GAAK9H,iBAAiBxvB,EAAM9Q,GAAU,EAEjD,IAAIooC,EAAKuD,YAAa,CAClB,GAAI8sB,GAAU,WACVz4D,EAASrH,KAAKyvC,EAAM/Y,OAAO+P,OAE/Bp/B,GAAS04D,SAAWD,EACpBrwB,EAAKuD,YAAY,KAAO76B,EAAM2nD,KAItCzgE,EAAQ2gE,eAAiB,SAASvwB,EAAMt3B,EAAM9Q,GAC1C,GAAIooC,EAAKzF,oBACL,MAAOyF,GAAKzF,oBAAoB7xB,EAAM9Q,GAAU,EAEhDooC,GAAKwD,aACLxD,EAAKwD,YAAY,KAAO96B,EAAM9Q,EAAS04D,UAAY14D,IAG3DhI,EAAQ4gE,UAAY,SAASl7D,GAGzB,MAFA1F,GAAQgsC,gBAAgBtmC,GACxB1F,EAAQ2nC,eAAejiC,IAChB,GAGX1F,EAAQgsC,gBAAkB,SAAStmC,GAC3BA,EAAEsmC,gBACFtmC,EAAEsmC,kBAEFtmC,EAAEm7D,cAAe,GAGzB7gE,EAAQ2nC,eAAiB,SAASjiC,GAC1BA,EAAEiiC,eACFjiC,EAAEiiC,iBAEFjiC,EAAE4uD,aAAc,GAExBt0D,EAAQ8gE,UAAY,SAASp7D,GACzB,MAAc,YAAVA,EAAEoT,KACK,EACG,eAAVpT,EAAEoT,MAA0B+mD,EAAUxB,OAAU34D,EAAEimC,UAAYjmC,EAAEqiD,SAAWriD,EAAEkmC,SACtE,EACPlmC,EAAEiiC,eACKjiC,EAAEo3C,QAGD12C,EAAE,EAAGoD,EAAE,EAAGgD,EAAE,GAAG9G,EAAEo3C,SAIjC98C,EAAQ+gE,QAAU,SAASvL,EAAIwL,EAAcC,GACzC,QAASC,GAAUx7D,GACfs7D,GAAgBA,EAAat7D,GAC7Bu7D,GAAyBA,EAAsBv7D,GAE/C1F,EAAQ2gE,eAAer5B,SAAU,YAAa05B,GAAc,GAC5DhhE,EAAQ2gE,eAAer5B,SAAU,UAAW45B,GAAW,GACvDlhE,EAAQ2gE,eAAer5B,SAAU,YAAa45B,GAAW,GAO7D,MAJAlhE,GAAQwgE,YAAYl5B,SAAU,YAAa05B,GAAc,GACzDhhE,EAAQwgE,YAAYl5B,SAAU,UAAW45B,GAAW,GACpDlhE,EAAQwgE,YAAYl5B,SAAU,YAAa45B,GAAW,GAE/CA,GAGXlhE,EAAQmhE,qBAAuB,SAAU3L,EAAIxtD,GACzC,GAAI,eAAiBwtD,GAAI,CACrB,GAAI4L,GAAQC,CACZrhE,GAAQwgE,YAAYhL,EAAI,aAAc,SAAU9vD,GAC5C,GAAI47D,GAAW57D,EAAE67D,eAAe,EAChCH,GAASE,EAASE,QAClBH,EAASC,EAASG,UAEtBzhE,EAAQwgE,YAAYhL,EAAI,YAAa,SAAU9vD,GAC3C,GACA47D,GAAW57D,EAAE67D,eAAe,EAE5B77D,GAAEg8D,SAAWJ,EAASE,QAAUJ,GAHnB,EAIb17D,EAAEi8D,SAAWL,EAASG,QAAUJ,GAJnB,EAMbD,EAASE,EAASE,QAClBH,EAASC,EAASG,QAElBz5D,EAAStC,OAKrB1F,EAAQ4hE,sBAAwB,SAASpM,EAAIxtD,GACrC,gBAAkBwtD,GAClBx1D,EAAQwgE,YAAYhL,EAAI,aAAc,SAAS9vD,OAErBsK,KAAlBtK,EAAEm8D,aACFn8D,EAAEg8D,QAAUh8D,EAAEm8D,YAFL,EAGTn8D,EAAEi8D,QAAUj8D,EAAEo8D,YAHL,IAKTp8D,EAAEg8D,OAAS,EACXh8D,EAAEi8D,QAAUj8D,EAAEq8D,WANL,GAQb/5D,EAAStC,KAEN,WAAa8vD,GACpBx1D,EAAQwgE,YAAYhL,EAAI,QAAU,SAAS9vD,GAEvC,OAAQA,EAAEs8D,WACN,IAAKt8D,GAAEu8D,gBACHv8D,EAAEg8D,OAHG,IAGMh8D,EAAEw8D,QAAmB,EAChCx8D,EAAEi8D,OAJG,IAIMj8D,EAAEy8D,QAAmB,CAChC,MACJ,KAAKz8D,GAAE08D,eACP,IAAK18D,GAAE28D,eACH38D,EAAEg8D,OAA2B,GAAjBh8D,EAAEw8D,QAAU,GACxBx8D,EAAEi8D,OAA2B,GAAjBj8D,EAAEy8D,QAAU,GAIhCn6D,EAAStC,KAGb1F,EAAQwgE,YAAYhL,EAAI,iBAAkB,SAAS9vD,GAC3CA,EAAE48D,MAAQ58D,EAAE48D,MAAQ58D,EAAE68D,iBACtB78D,EAAEg8D,OAA2B,GAAjBh8D,EAAE88D,QAAU,GACxB98D,EAAEi8D,OAAS,IAEXj8D,EAAEg8D,OAAS,EACXh8D,EAAEi8D,OAA2B,GAAjBj8D,EAAE88D,QAAU,IAE5Bx6D,EAAStC,MAKrB1F,EAAQyiE,0BAA4B,SAASC,EAAUC,EAAU3B,EAAc4B,GAS3E,QAASC,GAAYn9D,GAUjB,GAT6B,IAAzB1F,EAAQ8gE,UAAUp7D,GAClBo9D,EAAS,EACFp9D,EAAE88D,OAAS,IAClBM,EACa,IACTA,EAAS,GAEbA,EAAS,EAETjD,EAAUnB,KAAM,CAChB,GAAIqE,GAAarrC,KAAKwP,IAAIxhC,EAAE87D,QAAUwB,GAAU,GAAKtrC,KAAKwP,IAAIxhC,EAAE+7D,QAAUwB,GAAU,CAC/EC,KAASH,IACVD,EAAS,GACTI,GACAj9B,aAAai9B,GACjBA,EAAQ96D,WAAW,WAAY86D,EAAQ,MAAOP,EAASG,EAAS,IAAM,KAExD,GAAVA,IACAE,EAASt9D,EAAE87D,QACXyB,EAASv9D,EAAE+7D,SAQnB,GAJA/7D,EAAEy9D,QAAUL,EAEZ9B,EAAa4B,GAAc,YAAal9D,GAEpCo9D,EAAS,EACTA,EAAS,MACR,IAAIA,EAAS,EACd,MAAO9B,GAAa4B,GAAcQ,EAAWN,GAASp9D,GAE9D,QAAS29D,GAAW39D,GAChBo9D,EAAS,EACLI,GACAj9B,aAAai9B,GACjBA,EAAQ96D,WAAW,WAAY86D,EAAQ,MAAOP,EAASG,EAAS,IAAM,KACtE9B,EAAa4B,GAAc,YAAal9D,GACxCs7D,EAAa4B,GAAcQ,EAAWN,GAASp9D,GA/CnD,GACIs9D,GAAQC,EAAQC,EADhBJ,EAAS,EAETM,GACA55D,EAAG,WACHO,EAAG,cACHyC,EAAG,YA4CFI,OAAMvH,QAAQq9D,KACfA,GAAYA,IAChBA,EAASxgE,QAAQ,SAASszD,GACtBx1D,EAAQwgE,YAAYhL,EAAI,YAAaqN,GACjChD,EAAUlB,SACV3+D,EAAQwgE,YAAYhL,EAAI,WAAY6N,KAIhD,IAAIzD,IAAkBC,EAAUxB,QAASwB,EAAUX,SAAa,iBAAmB7nC,QAI7E,SAAS3xB,GACP,MAAO,IAAKA,EAAEimC,QAAU,EAAI,IAAMjmC,EAAEqiD,OAAS,EAAI,IAAMriD,EAAEkmC,SAAW,EAAI,IAAMlmC,EAAE49D,QAAU,EAAI,IAJhG,SAAS59D,GACP,MAAO,IAAKA,EAAE49D,QAAU,EAAI,IAAM59D,EAAEqiD,OAAS,EAAI,IAAMriD,EAAEkmC,SAAW,EAAI,IAAMlmC,EAAEimC,QAAU,EAAI,GA2GtG,IArGA3rC,EAAQujE,kBAAoB,SAAS79D,GACjC,MAAOzD,GAAKu2D,SAASoH,EAAgBl6D,KA2DzC1F,EAAQwjE,sBAAwB,SAAShO,EAAIxtD,GACzC,GAAIw4D,GAAcxgE,EAAQwgE,WAC1B,IAAIX,EAAUZ,YAAeY,EAAUX,WAAa,iBAAmB7nC,SAAU,CAC7E,GAAIosC,GAAqB,IACzBjD,GAAYhL,EAAI,UAAW,SAAS9vD,GAChC+9D,EAAqB/9D,EAAEgmC,UAE3B80B,EAAYhL,EAAI,WAAY,SAAS9vD,GACjC,MAAOg6D,GAAqB13D,EAAUtC,EAAG+9D,SAE1C,CACH,GAAIC,GAAuB,IAE3BlD,GAAYhL,EAAI,UAAW,SAAS9vD,GAChCo6D,EAAYp6D,EAAEgmC,UAAYo0B,EAAYp6D,EAAEgmC,UAAY,GAAK,CACzD,IAAIt6B,GAASsuD,EAAqB13D,EAAUtC,EAAGA,EAAEgmC,QAEjD,OADAg4B,GAAuBh+D,EAAE46D,iBAClBlvD,IAGXovD,EAAYhL,EAAI,WAAY,SAAS9vD,GAC7Bg+D,IAAyBh+D,EAAEimC,SAAWjmC,EAAEqiD,QAAUriD,EAAEkmC,UAAYlmC,EAAE49D,WAClEtjE,EAAQ4gE,UAAUl7D,GAClBg+D,EAAuB,QAI/BlD,EAAYhL,EAAI,QAAS,SAAS9vD,GAC9Bo6D,EAAYp6D,EAAEgmC,SAAW,OAGxBo0B,IACDS,IACAC,EAAYnpC,OAAQ,QAASkpC,MAQpB,gBAAVlpC,SAAsBA,OAAOssC,cAAgB9D,EAAUlB,QAAS,CAEvE3+D,EAAQ4jE,SAAW,SAAS57D,EAAU67D,GAClCA,EAAMA,GAAOxsC,MAEbr3B,GAAQwgE,YAAYqD,EAAK,UAAW,QAASpwB,GAAS/tC,GADpC,0BAEVA,EAAE7B,OACF7D,EAAQgsC,gBAAgBtmC,GACxB1F,EAAQ2gE,eAAekD,EAAK,UAAWpwB,GACvCzrC,OAGR67D,EAAIF,YARc,yBAQW,MAKrC3jE,EAAQ8jE,UAA6B,gBAAVzsC,UAAuBA,OAAO0sC,uBAClD1sC,OAAO2sC,0BACP3sC,OAAO4sC,6BACP5sC,OAAO6sC,yBACP7sC,OAAO8sC,wBAEVnkE,EAAQ8jE,UACR9jE,EAAQ8jE,UAAY9jE,EAAQ8jE,UAAU9gC,KAAK3L,QAE3Cr3B,EAAQ8jE,UAAY,SAAS97D,GACzBI,WAAWJ,EAAU,OAI7BqkD,IAAInsD,OAAO,gBAAgB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACtF,YAEAD,GAAQi+B,KAAO,SAASh4B,GACpB,MAAOA,GAAEA,EAAE3D,OAAS,IAGxBtC,EAAQokE,cAAgB,SAAS/xC,GAC7B,MAAOA,GAAOxjB,MAAM,IAAIw1D,UAAUtgD,KAAK,KAG3C/jB,EAAQskE,aAAe,SAAUjyC,EAAQ3a,GAErC,IADA,GAAItG,GAAS,GACNsG,EAAQ,GACC,EAARA,IACAtG,GAAUihB,IAEV3a,IAAU,KACV2a,GAAUA,EAElB,OAAOjhB,GAMXpR,GAAQukE,eAAiB,SAAUlyC,GAC/B,MAAOA,GAAOla,QAJI,SAIqB,KAG3CnY,EAAQwkE,gBAAkB,SAAUnyC,GAChC,MAAOA,GAAOla,QAPE,SAOqB,KAGzCnY,EAAQykE,WAAa,SAAS5qD,GAC1B,GAAI7S,KACJ,KAAK,GAAI4C,KAAOiQ,GACZ7S,EAAK4C,GAAOiQ,EAAIjQ,EAEpB,OAAO5C,IAGXhH,EAAQ0kE,UAAY,SAAS7pD,GAEzB,IAAK,GADD7T,MACK7B,EAAE,EAAGgB,EAAE0U,EAAMvY,OAAQ6C,EAAEgB,EAAGhB,IAC3B0V,EAAM1V,IAAyB,gBAAZ0V,GAAM1V,GACzB6B,EAAK7B,GAAK/E,KAAKqkE,WAAW5pD,EAAM1V,IAEhC6B,EAAK7B,GAAK0V,EAAM1V,EAExB,OAAO6B,IAGXhH,EAAQ2kE,SAAW,QAASA,GAAS9qD,GACjC,GAAmB,gBAARA,KAAqBA,EAC5B,MAAOA,EACX,IAAI7S,EACJ,IAAI4F,MAAMvH,QAAQwU,GAAM,CACpB7S,IACA,KAAK,GAAI4C,GAAM,EAAGA,EAAMiQ,EAAIvX,OAAQsH,IAChC5C,EAAK4C,GAAO+6D,EAAS9qD,EAAIjQ,GAE7B,OAAO5C,GAEX,GAA4C,oBAAxChF,OAAOa,UAAUwK,SAAS1M,KAAKkZ,GAC/B,MAAOA,EAEX7S,KACA,KAAK,GAAI4C,KAAOiQ,GACZ7S,EAAK4C,GAAO+6D,EAAS9qD,EAAIjQ,GAC7B,OAAO5C,IAGXhH,EAAQ4kE,WAAa,SAAS/uD,GAE1B,IAAK,GADDwD,MACKlU,EAAE,EAAGA,EAAE0Q,EAAIvT,OAAQ6C,IACxBkU,EAAIxD,EAAI1Q,IAAM,CAElB,OAAOkU,IAIXrZ,EAAQ6kE,UAAY,SAASC,GACzB,GAAIzrD,GAAMrX,OAAOoC,OAAO,KACxB,KAAK,GAAIe,KAAK2/D,GACVzrD,EAAIlU,GAAK2/D,EAAM3/D,EAEnB,OAAOkU,IAEXrZ,EAAQ+kE,YAAc,SAASlqD,EAAOhR,GACpC,IAAK,GAAI1E,GAAI,EAAGA,GAAK0V,EAAMvY,OAAQ6C,IAC7B0E,IAAUgR,EAAM1V,IAClB0V,EAAMjF,OAAOzQ,EAAG,IAKtBnF,EAAQglE,aAAe,SAASn3D,GAC5B,MAAOA,GAAIsK,QAAQ,0BAA2B,SAGlDnY,EAAQilE,WAAa,SAASp3D,GAC1B,MAAOA,GAAIsK,QAAQ,KAAM,SAASA,QAAQ,KAAM,SAASA,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAGlGnY,EAAQklE,gBAAkB,SAAS7yC,EAAQ8yC,GACvC,GAAIr3D,KASJ,OAPAukB,GAAOla,QAAQgtD,EAAQ,SAASt3D,GAC5BC,EAAQwL,MACJ8rD,OAAQ/iE,UAAUA,UAAUC,OAAO,GACnCA,OAAQuL,EAAIvL,WAIbwL,GAEX9N,EAAQqlE,aAAe,SAASC,GAC5B,GAAIpC,GAAQ,KACRl7D,EAAW,WACXk7D,EAAQ,KACRoC,KAGAC,EAAW,SAAS3wB,GAGpB,MAFA2wB,GAASC,SACTtC,EAAQ96D,WAAWJ,EAAU4sC,GAAW,GACjC2wB,EAqBX,OAlBAA,GAASE,SAAWF,EAEpBA,EAAS5kE,KAAO,WAGZ,MAFAP,MAAKolE,SACLF,IACOC,GAGXA,EAASC,OAAS,WAGd,MAFAv/B,cAAai9B,GACbA,EAAQ,KACDqC,GAGXA,EAASG,UAAY,WACjB,MAAOxC,IAGJqC,GAIXvlE,EAAQ2lE,YAAc,SAASL,EAAKM,GAChC,GAAI1C,GAAQ,KACRl7D,EAAW,WACXk7D,EAAQ,KACRoC,KAGAO,EAAQ,SAASjxB,GACJ,MAATsuB,IACAA,EAAQ96D,WAAWJ,EAAU4sC,GAAWgxB,IAuBhD,OApBAC,GAAM3qB,MAAQ,SAAStG,GACnBsuB,GAASj9B,aAAai9B,GACtBA,EAAQ96D,WAAWJ,EAAU4sC,GAAWgxB,IAE5CC,EAAMJ,SAAWI,EAEjBA,EAAMllE,KAAO,WACTP,KAAKolE,SACLF,KAGJO,EAAML,OAAS,WACXtC,GAASj9B,aAAai9B,GACtBA,EAAQ,MAGZ2C,EAAMH,UAAY,WACd,MAAOxC,IAGJ2C,KAIXxZ,IAAInsD,OAAO,0BAA0B,UAAU,UAAU,SAAS,gBAAgB,oBAAoB,cAAc,gBAAiB,SAAS+uD,EAAUjvD,EAASC,GACjK,YAEA,IAAImnC,GAAQ6nB,EAAS,gBACjB4Q,EAAY5Q,EAAS,oBACrBntB,EAAMmtB,EAAS,cACf6W,EAAO7W,EAAS,eAChB8W,EAAiBlG,EAAUR,SAAW,GACtC2G,EAAoBnG,EAAUnB,KAE9BuH,EAAY,SAASvjC,EAAYzqB,GA8DjC,QAASiuD,GAAeC,GACpB,IAAIC,EAAJ,CAIA,GAFAA,GAAgB,EAEZC,EACAC,EAAiB,EACjBC,EAAeJ,EAAU,EAAIp0C,EAAKloB,MAAMvH,OAAS,MAEjD,IAAIgkE,GAAiBH,EAAU,EAAI,EAC/BI,EAAe,CAEvB,KACIx0C,EAAKy0C,kBAAkBF,EAAgBC,GACzC,MAAM7gE,IAER0gE,GAAgB,GAGpB,QAASK,KACDL,IAEJr0C,EAAKloB,MAAQ68D,EACT7G,EAAUT,UACVuH,EAAUlB,YAwVlB,QAASmB,KACL3gC,aAAa4gC,GACbA,EAAez+D,WAAW,WAClB0+D,IACA/0C,EAAKkf,MAAMmlB,QAAU0Q,EACrBA,EAAY,IAE2B,MAAvC7uD,EAAK8uD,SAASC,wBACd/uD,EAAK8uD,SAASC,uBAAwB,EACtC/uD,EAAK8uD,SAASE,0BAEnBpH,EAAUlB,QAAU,IAAM,GAxbjC,GAAI5sC,GAAO+P,EAAIyF,cAAc,WAC7BxV,GAAKyV,UAAY,iBAEbq4B,EAAUL,YACVztC,EAAKm1C,aAAa,2BAA2B,GAEjDn1C,EAAKm1C,aAAa,OAAQ,OAC1Bn1C,EAAKm1C,aAAa,cAAe,OACjCn1C,EAAKm1C,aAAa,iBAAkB,OACpCn1C,EAAKm1C,aAAa,cAAc,GAEhCn1C,EAAKkf,MAAMk2B,QAAU,IACjBtH,EAAUlB,UAAS5sC,EAAKkf,MAAM3L,IAAM,WACxC5C,EAAWqL,aAAahc,EAAM2Q,EAAWyP,WAEzC,IAAIu0B,GAAc,KAEdU,GAAS,EACTC,GAAS,EACTjB,GAAgB,EAChBU,EAAY,GACZQ,GAAmB,CACvB,KAAM,GAAIC,GAAYjgC,SAASkgC,gBAAkBz1C,EAAQ,MAAMrsB,IAE/D0hC,EAAMo5B,YAAYzuC,EAAM,OAAQ,SAASrsB,GACrCuS,EAAKwvD,OAAO/hE,GACZ6hE,GAAY,IAEhBngC,EAAMo5B,YAAYzuC,EAAM,QAAS,SAASrsB,GACtC6hE,GAAY,EACZtvD,EAAKyvD,QAAQhiE,GACbwgE,MAEJ9lE,KAAKwjC,MAAQ,WACT,GAAIkjC,EAAW,MAAO/0C,GAAK6R,OAC3B,IAAI0B,GAAMvT,EAAKkf,MAAM3L,GACrBvT,GAAKkf,MAAMmb,SAAW,QACtBr6B,EAAKkf,MAAM3L,IAAM,MACjBvT,EAAK6R,QACLx7B,WAAW,WACP2pB,EAAKkf,MAAMmb,SAAW,GACA,OAAlBr6B,EAAKkf,MAAM3L,MACXvT,EAAKkf,MAAM3L,IAAMA,IACtB,IAEPllC,KAAKqjC,KAAO,WACR1R,EAAK0R,QAETrjC,KAAKmnE,UAAY,WACb,MAAOA,GAEX,IAAII,GAAgB7B,EAAKH,YAAY,WACjC4B,GAAarB,EAAeoB,KAE5BX,EAAYb,EAAKH,YAAY,WACvBS,IACFr0C,EAAKloB,MAAQ68D,EACba,GAAarB,MA+BrBrG,GAAUT,UAAYnnD,EAAKqwB,iBAAiB,kBAAmB,WACvDrwB,EAAK+pB,UAAUmkC,WAAamB,IAC5BA,GAAoBA,EACpBK,EAAclC,cAItBgB,IACIc,GACAtvD,EAAKyvD,SAGT,IAAIE,GAAgB,SAAS71C,GACzB,MAA+B,KAAxBA,EAAKu0C,gBAAwBv0C,EAAKw0C,eAAiBx0C,EAAKloB,MAAMvH,OAkBzE,KAhBKyvB,EAAKy0C,mBAAqBz0C,EAAK81C,kBAChC91C,EAAKy0C,kBAAoB,SAASF,EAAgBC,GAC9C,GAAIngC,GAAQhmC,KAAKynE,iBACjBzhC,GAAMrC,UAAS,GACfqC,EAAM0hC,UAAU,YAAaxB,GAC7BlgC,EAAM2hC,QAAQ,YAAaxB,GAC3BngC,EAAMD,UAEVyhC,EAAgB,SAAS71C,GACrB,IACI,GAAIqU,GAAQrU,EAAKi2C,cAAchmC,UAAUwP,cAC5C,MAAM9rC,IACP,SAAK0gC,GAASA,EAAM6hC,iBAAmBl2C,IAC5BqU,EAAMrU,MAAQA,EAAKloB,QAGlCg2D,EAAUlB,QAAS,CACnB,GAAIuJ,IAAmB,EACnBC,EAAmB,SAASziE,GAC5B,IAAIwiE,EAAJ,CAEA,GAAIrkE,GAAOkuB,EAAKloB,KAChB,KAAIu8D,GAAkBviE,GAAQA,GAAQ6iE,EAAtC,CAEA,GAAIhhE,GAAK7B,GAAQ6iE,EAAY,GACzB,MAAO0B,GAAa3C,UAExB4C,GAASxkE,GACTqkE,GAAmB,EACnBzB,IACAyB,GAAmB,KAEnBE,EAAetC,EAAKH,YAAYwC,EACpC/gC,GAAMo5B,YAAYzuC,EAAM,iBAAkBo2C,EAE1C,IAAIG,IAAalqD,GAAG,EAAGkH,GAAG,EAC1B8hB,GAAMo5B,YAAYzuC,EAAM,QAAS,SAAUrsB,GAGvC,IAFI0gE,GAAmBr0C,EAAKloB,QAASy+D,EAAS5iE,EAAEgmC,UAC5CtjC,WAAWmgE,EAAkB,IAC5Bx2C,EAAKloB,MAAMoQ,WAAW,IAAI,GAAK,IAChC,MAAOmuD,GAAaznE,MAExBylE,GAAgBoC,IAAwBC,MAE5CrhC,EAAMo5B,YAAYzuC,EAAM,UAAW,SAAUrsB,GACzC0iE,EAAa3C,SAAS,MAI9B,GAAIiD,GAAW,SAAShjE,GAChB0hE,EACAA,GAAS,EACFQ,EAAc71C,IACrB9Z,EAAK0wD,YACLzC,KACOG,GACPH,EAAejuD,EAAK+pB,UAAUmkC,YAIlCE,EAAe,IACnBjmE,MAAKwoE,gBAAkB,SAASC,GAAKxC,EAAewC,GACpDzoE,KAAK0oE,gBAAkB,WAAY,MAAOzC,GAC1C,IAAI0C,IAAmB,EAEnBV,EAAW,SAASxkE,GAChBwiE,IACAxiE,EAAOwiE,EAAaxiE,GACpBwiE,EAAe,MAEfgB,GACAnB,IACIriE,GACAoU,EAAK+wD,QAAQnlE,GACjBwjE,GAAS,GACFxjE,GAAQ6iE,EAAYt0C,OAAO,GAC9B22C,EACA9wD,EAAKgxD,YAAY,OAAQ11D,OAAQ,QAEjC0E,EAAKgxD,YAAY,aAAc11D,OAAQ,SAEvC1P,EAAKowC,UAAU,EAAG,IAAMyyB,EACxB7iE,EAAOA,EAAKw0B,OAAO,GACdx0B,EAAKuuB,OAAO,IAAMs0C,EAAYt0C,OAAO,GAC1CvuB,EAAOA,EAAKw0B,OAAO,GACdx0B,EAAKuuB,OAAOvuB,EAAKvB,OAAS,IAAMokE,EAAYt0C,OAAO,KACxDvuB,EAAOA,EAAKoT,MAAM,GAAI,IACtBpT,EAAKuuB,OAAOvuB,EAAKvB,OAAS,IAAMokE,EAAYt0C,OAAO,KACnDvuB,EAAOA,EAAKoT,MAAM,GAAI,IAEtBpT,GACAoU,EAAKixD,YAAYrlE,IAErBklE,IACAA,GAAmB,IAEvBI,EAAU,SAASzjE,GACnB,IAAI0gE,EAAJ,CAEA,GAAIviE,GAAOkuB,EAAKloB,KAChBw+D,GAASxkE,GACT4iE,MAGA2C,EAAsB,SAAS1jE,EAAG7B,EAAMwlE,GACxC,GAAIC,GAAgB5jE,EAAE4jE,eAAiBjyC,OAAOiyC,aAC9C,IAAKA,IAAiBvD,EAAtB,CAEA,GAAIwD,GAAOvD,GAAoBqD,EAAc,OAAS,YACtD,KACI,MAAIxlE,IAC6C,IAAtCylE,EAAcE,QAAQD,EAAM1lE,GAE5BylE,EAAclsD,QAAQmsD,GAEnC,MAAM7jE,GACJ,IAAK2jE,EACD,MAAOD,GAAoB1jE,EAAG7B,GAAM,MAI5C4lE,EAAS,SAAS/jE,EAAGgkE,GACrB,GAAI7lE,GAAOoU,EAAK0xD,aAChB,KAAK9lE,EACD,MAAOujC,GAAMO,eAAejiC,EAE5B0jE,GAAoB1jE,EAAG7B,IACvB6lE,EAAQzxD,EAAK2xD,QAAU3xD,EAAK4xD,SAC5BziC,EAAMO,eAAejiC,KAErB0hE,GAAS,EACTr1C,EAAKloB,MAAQhG,EACbkuB,EAAKoU,SACL/9B,WAAW,WACPg/D,GAAS,EACTX,IACAP,IACAwD,EAAQzxD,EAAK2xD,QAAU3xD,EAAK4xD,aAKpCD,EAAQ,SAASlkE,GACjB+jE,EAAO/jE,GAAG,IAGVmkE,EAAS,SAASnkE,GAClB+jE,EAAO/jE,GAAG,IAGVsjE,EAAU,SAAStjE,GACnB,GAAI7B,GAAOulE,EAAoB1jE,EACZ,iBAAR7B,IACHA,GACAoU,EAAK+wD,QAAQnlE,EAAM6B,GACnBm6D,EAAUnB,MACVt2D,WAAW89D,GACf9+B,EAAMO,eAAejiC,KAGrBqsB,EAAKloB,MAAQ,GACbw9D,GAAS,GAIjBjgC,GAAMo8B,sBAAsBzxC,EAAM9Z,EAAK6xD,aAAa9mC,KAAK/qB,IAEzDmvB,EAAMo5B,YAAYzuC,EAAM,SAAU22C,GAElCthC,EAAMo5B,YAAYzuC,EAAM,QAASo3C,GAEjC/hC,EAAMo5B,YAAYzuC,EAAM,MAAO63C,GAC/BxiC,EAAMo5B,YAAYzuC,EAAM,OAAQ83C,GAChCziC,EAAMo5B,YAAYzuC,EAAM,QAASi3C,GAC3B,SAAWj3C,IAAW,UAAYA,IAAW,WAAaA,IAC5DqV,EAAMo5B,YAAY99B,EAAY,UAAW,SAASh9B,GAC9C,KAAKm6D,EAAUxB,OAAU34D,EAAE49D,UAAa59D,EAAEimC,QAG1C,OAAQjmC,EAAEgmC,SACN,IAAK,IACDm+B,EAAOnkE,EACP,MACJ,KAAK,IACDsjE,EAAQtjE,EACR,MACJ,KAAK,IACDkkE,EAAMlkE,KAKtB,IAAI+iE,GAAqB,SAAS/iE,GAC1B0gE,IAAkBnuD,EAAKwwD,oBAAsBxwD,EAAK8xD,YAEtD3D,KACAA,EAAct9B,QAAU7wB,EAAK+xD,QAAQC,aACrChyD,EAAKwwD,qBACLrgE,WAAWogE,EAAqB,GAChCvwD,EAAKg2C,GAAG,YAAasa,GACjBnC,EAAct9B,UAAY7wB,EAAK+pB,UAAUmkC,YACzCluD,EAAK65C,OAAO,IACZ75C,EAAK+xD,QAAQE,gBACbjyD,EAAK+pB,UAAUmoC,kBAEnBlyD,EAAK+xD,QAAQE,kBAGb1B,EAAsB,WACtB,GAAKpC,GAAkBnuD,EAAKuwD,sBAAuBvwD,EAAK8xD,UAAxD,CAEA,GAAI95C,GAAM8B,EAAKloB,MAAMsO,QAAQ,QAAS,GACtC,IAAIiuD,EAAcgE,YAAcn6C,IAEhChY,EAAKuwD,oBAAoBv4C,GACrBm2C,EAAcgE,WACdnyD,EAAKwwB,OACL29B,EAAct9B,UACds9B,EAAcgE,UAAYn6C,GAC1Bm2C,EAAcgE,WAAW,CACzB,GAAIvkE,GAAIoS,EAAK+pB,UAAUqoC,UACvBpyD,GAAK65C,OAAOsU,EAAcgE,WAC1BnyD,EAAK+xD,QAAQE,gBACb9D,EAAchgC,MAAQnuB,EAAK+pB,UAAUqoC,WACrCpyD,EAAK+pB,UAAUsoC,SAASzkE,GACxBoS,EAAK+pB,UAAUmoC,oBAInB5B,EAAmB,SAAS7iE,GAC5B,GAAKuS,EAAKswD,mBAAoBtwD,EAAK8xD,UAAnC,CACA,GAAIlpE,GAAIulE,CACRA,IAAgB,CAChB,IAAIlD,GAAQ96D,WAAW,WACnB86D,EAAQ,IACR,IAAIr1D,GAAMkkB,EAAKloB,MAAMsO,QAAQ,QAAS,GAClCiuD,KAEKv4D,GAAOhN,EAAEupE,UACd3D,KACM5lE,EAAEupE,WAAav8D,IACrB44D,IACA4B,EAASx6D,MAGjBw4D,GAAe,SAAiCx4D,GAI5C,MAHIq1D,IACAj9B,aAAai9B,IACjBr1D,EAAMA,EAAIsK,QAAQ,QAAS,MAChBtX,EAAEupE,UACF,IACPvpE,EAAEupE,WAAalH,GACfjrD,EAAKwwB,OACF56B,IAEXoK,EAAKswD,mBACLtwD,EAAK0oD,eAAe,YAAa4H,GACnB,kBAAV7iE,EAAEoT,MAA4BjY,EAAEulC,OAChCnuB,EAAK+pB,UAAUsoC,SAASzpE,EAAEulC,OAE1By5B,EAAUR,UAAYQ,EAAUR,UAAY,IAC9C8J,MAMFoB,EAAkBzE,EAAKH,YAAY6C,EAAqB,GAE5DphC,GAAMo5B,YAAYzuC,EAAM,mBAAoB02C,GACxC5I,EAAUjB,QACVx3B,EAAMo5B,YAAYzuC,EAAM,OAAQ,WAAWw4C,EAAgB9E,cAE3Dr+B,EAAMo5B,YAAYzuC,EAAM,QAAS,WAAWw4C,EAAgB9E,aAC5Dr+B,EAAMo5B,YAAYzuC,EAAM,UAAW,WAAWw4C,EAAgB9E,cAElEr+B,EAAMo5B,YAAYzuC,EAAM,iBAAkBw2C,GAE1CnoE,KAAKoqE,WAAa,WACd,MAAOz4C,IAGX3xB,KAAKqqE,YAAc,SAASnd,GACzBv7B,EAAKu7B,SAAWA,GAGnBltD,KAAKsqE,cAAgB,SAAShlE,GAC1BqjE,GAAmB,EACnB7C,EAAejuD,EAAK+pB,UAAUmkC,WAC9BluD,EAAK0yD,MAAM,qBAAsBjjC,OAAQzvB,EAAM2yD,SAAUllE,IACzDtF,KAAKyqE,YAAYnlE,GAAG,IAGxBtF,KAAKyqE,YAAc,SAASnlE,EAAGolE,GAC3B,GAAKA,IAAgBjL,EAAUlB,QAA/B,CAEKmI,IACDA,EAAY/0C,EAAKkf,MAAMmlB,SAC3BrkC,EAAKkf,MAAMmlB,SAAW0U,EAAe,kBAAoB,IACnD,UAAY/4C,EAAKkf,MAAMzL,OAAS,KAC/Bq6B,EAAUnB,KAAO,eAAiB,GAEzC,IAAIqM,GAAO9yD,EAAKjX,UAAUqvC,wBACtBY,EAAQnP,EAAI00B,cAAcv+C,EAAKjX,WAC/BskC,EAAMylC,EAAKzlC,KAAO7S,SAASwe,EAAM+5B,iBAAmB,GACpD16B,EAAOy6B,EAAKz6B,MAAQ7d,SAASs4C,EAAKE,kBAAoB,GACtDC,EAASH,EAAKrlC,OAASJ,EAAMvT,EAAK0T,aAAc,EAChD0lC,EAAO,SAASzlE,GAChBqsB,EAAKkf,MAAMX,KAAO5qC,EAAE87D,QAAUlxB,EAAO,EAAI,KACzCve,EAAKkf,MAAM3L,IAAM5N,KAAKoP,IAAIphC,EAAE+7D,QAAUn8B,EAAM,EAAG4lC,GAAU,KAE7DC,GAAKzlE,GAES,aAAVA,EAAEoT,OAGFb,EAAK8uD,SAASC,wBACd/uD,EAAK8uD,SAASC,sBAAwB,MAE1C/gC,aAAa4gC,GACThH,EAAUpB,QAAUoB,EAAUlB,SAC9Bv3B,EAAM25B,QAAQ9oD,EAAKjX,UAAWmqE,EAAMvE,MAG5CxmE,KAAKwmE,mBAAqBA,CAC1B,IAAIC,GAeA6D,EAAgB,SAAShlE,GACzBuS,EAAKmzD,UAAUV,cAAchlE,GAC7BkhE,IAEJx/B,GAAMo5B,YAAYzuC,EAAM,UAAW24C,GACnCtjC,EAAMo5B,YAAYzuC,EAAM,YAAa,SAASrsB,GAC1CA,EAAEiiC,iBACFi/B,MAEJx/B,EAAMo5B,YAAYvoD,EAAK8uD,SAASsE,SAAU,cAAeX,GACzDtjC,EAAMo5B,YAAYzuC,EAAM,cAAe24C,GAG3C1qE,GAAQimE,UAAYA,IAGpB5Z,IAAInsD,OAAO,8BAA8B,UAAU,UAAU,SAAS,cAAc,gBAAgB,qBAAsB,SAAS+uD,EAAUjvD,EAASC,GACtJ,YAQA,SAASqrE,GAAgBC,GACrBA,EAAaC,gBAAkB,IAE/B,IAAI9kC,GAAS6kC,EAAa7kC,MAC1BA,GAAO+kC,kBAAkB,YAAarrE,KAAKsrE,YAAY1oC,KAAKuoC,IAC5D7kC,EAAO+kC,kBAAkB,WAAYrrE,KAAKurE,cAAc3oC,KAAKuoC,IAC7D7kC,EAAO+kC,kBAAkB,cAAerrE,KAAKwrE,cAAc5oC,KAAKuoC,IAChE7kC,EAAO+kC,kBAAkB,YAAarrE,KAAKyrE,YAAY7oC,KAAKuoC,IAC5D7kC,EAAO+kC,kBAAkB,aAAcrrE,KAAK0rE,aAAa9oC,KAAKuoC,IAC9D7kC,EAAO+kC,kBAAkB,YAAarrE,KAAK2rE,YAAY/oC,KAAKuoC,KAE7C,SAAU,cAAe,YAAa,eAAgB,mBACjE,mBAAoB,WAAY,cAAe,aAE3CrpE,QAAQ,SAASovB,GACrBi6C,EAAaj6C,GAAKlxB,KAAKkxB,IACxBlxB,MAEHmrE,EAAaS,cAAgB5rE,KAAK6rE,kBAAkBjpC,KAAKuoC,EAAc,gBACvEA,EAAaW,cAAgB9rE,KAAK6rE,kBAAkBjpC,KAAKuoC,EAAc,gBAmN3E,QAASY,GAAaC,EAAIC,EAAIC,EAAIC,GAC9B,MAAO70C,MAAKyS,KAAKzS,KAAKmmC,IAAIyO,EAAKF,EAAI,GAAK10C,KAAKmmC,IAAI0O,EAAKF,EAAI,IAG9D,QAASG,GAAqBpmC,EAAOye,GACjC,GAAIze,EAAMgE,MAAMqiC,KAAOrmC,EAAMiE,IAAIoiC,IAC7B,GAAIn8C,GAAM,EAAIu0B,EAAO6nB,OAAStmC,EAAMgE,MAAMsiC,OAAStmC,EAAMiE,IAAIqiC,WAC5D,IAAItmC,EAAMgE,MAAMqiC,KAAOrmC,EAAMiE,IAAIoiC,IAAM,GAAMrmC,EAAMgE,MAAMsiC,QAAWtmC,EAAMiE,IAAIqiC,OAG/E,GAAIp8C,GAAM,EAAIu0B,EAAO4nB,IAAMrmC,EAAMgE,MAAMqiC,IAAMrmC,EAAMiE,IAAIoiC,QAFvD,IAAIn8C,GAAMu0B,EAAO6nB,OAAS,CAI9B,OAAIp8C,GAAM,GACEu0B,OAAQze,EAAMgE,MAAOiC,OAAQjG,EAAMiE,MAEnCwa,OAAQze,EAAMiE,IAAKgC,OAAQjG,EAAMgE,OA3PvC6kB,EAAS,cACPA,EAAS,gBACLA,EAAS,qBA0BzB,WAEI7uD,KAAKsrE,YAAc,SAASiB,GACxB,GAAIC,GAAcD,EAAGC,cACjB5yD,EAAM2yD,EAAGE,qBACbzsE,MAAK0sE,eAAiBH,CACtB,IAAIjmC,GAAStmC,KAAKsmC,OAEdoW,EAAS6vB,EAAG7L,WAChB,IAAe,IAAXhkB,EAAc,CACd,GAAIiwB,GAAiBrmC,EAAOsmC,oBACxBC,EAAiBF,EAAe5G,SAOpC,OANAz/B,GAAOymB,mBACH8f,GAA4B,GAAVnwB,IAClBpW,EAAO1E,UAAUkrC,eAAelzD,GACpC0sB,EAAOymB,uBACO,GAAVrQ,GACApW,EAAO0kC,UAAUV,cAAciC,EAAG/B,WAK1C,MADAxqE,MAAK0sE,eAAe1+D,KAAOrB,KAAK6nD,OAC5BgY,GAAgBlmC,EAAO6gC,cACvB7gC,EAAO9C,SACHxjC,KAAK+sE,cAAiB/sE,KAAKorE,iBAAoB9kC,EAAO0mC,oBAO9DhtE,KAAKitE,aAAaV,GAClBvsE,KAAKktE,YAAYtzD,EAAK2yD,EAAG/B,SAASzH,QAAU,GACrCwJ,EAAGhlC,mBARFvnC,KAAKmtE,SAAS,iBACdntE,MAAKitE,aAAaV,KAU9BvsE,KAAKktE,YAAc,SAAStzD,EAAKwzD,GAC7BxzD,EAAMA,GAAO5Z,KAAKsmC,OAAOqgC,SAAS0G,wBAAwBrtE,KAAKkxB,EAAGlxB,KAAK6qD,EACvE,IAAIvkB,GAAStmC,KAAKsmC,MAClBA,GAAOymB,kBACH/sD,KAAK0sE,eAAeY,cACpBhnC,EAAO1E,UAAU2rC,iBAAiB3zD,GAC5BwzD,GACN9mC,EAAO1E,UAAUkrC,eAAelzD,GAC/BwzD,GACDptE,KAAK+lC,SACLO,EAAOqgC,SAASsE,SAASuC,YACzBlnC,EAAOqgC,SAASsE,SAASuC,aAE7BlnC,EAAOmnC,SAAS,iBAChBztE,KAAKmtE,SAAS,UACd7mC,EAAOymB,mBAGX/sD,KAAK+lC,OAAS,WACV,GAAIkG,GAAQ3F,EAAStmC,KAAKsmC,OACtBme,EAASne,EAAOqgC,SAAS0G,wBAAwBrtE,KAAKkxB,EAAGlxB,KAAK6qD,EAElE,IADAvkB,EAAOymB,kBACH/sD,KAAKorE,gBAAiB,CACtB,GAAIl7C,GAAMlwB,KAAKorE,gBAAgBsC,aAAajpB,EAE5C,KAAY,GAARv0B,EACA+b,EAASjsC,KAAKorE,gBAAgBnhC,QAC3B,IAAW,GAAP/Z,EACP+b,EAASjsC,KAAKorE,gBAAgBphC,UAC3B,CACH,GAAI2jC,GAAgBvB,EAAqBpsE,KAAKorE,gBAAiB3mB,EAC/DA,GAASkpB,EAAclpB,OACvBxY,EAAS0hC,EAAc1hC,OAE3B3F,EAAO1E,UAAUgsC,mBAAmB3hC,EAAOogC,IAAKpgC,EAAOqgC,QAE3DhmC,EAAO1E,UAAU2rC,iBAAiB9oB,GAClCne,EAAOymB,kBACPzmB,EAAOqgC,SAASkH,wBAGpB7tE,KAAK6rE,kBAAoB,SAASiC,GAC9B,GAAI7hC,GAAQ3F,EAAStmC,KAAKsmC,OACtBme,EAASne,EAAOqgC,SAAS0G,wBAAwBrtE,KAAKkxB,EAAGlxB,KAAK6qD,GAC9D7kB,EAAQM,EAAO1E,UAAUksC,GAAUrpB,EAAO4nB,IAAK5nB,EAAO6nB,OAE1D,IADAhmC,EAAOymB,kBACH/sD,KAAKorE,gBAAiB,CACtB,GAAI2C,GAAW/tE,KAAKorE,gBAAgBsC,aAAa1nC,EAAMgE,OACnDgkC,EAAShuE,KAAKorE,gBAAgBsC,aAAa1nC,EAAMiE,IAErD,KAAiB,GAAb8jC,GAAkBC,GAAU,EAC5B/hC,EAASjsC,KAAKorE,gBAAgBnhC,IAC1BjE,EAAMiE,IAAIoiC,KAAO5nB,EAAO4nB,KAAOrmC,EAAMiE,IAAIqiC,QAAU7nB,EAAO6nB,SAC1D7nB,EAASze,EAAMgE,WAChB,IAAc,GAAVgkC,GAAeD,GAAY,EAClC9hC,EAASjsC,KAAKorE,gBAAgBphC,MAC1BhE,EAAMgE,MAAMqiC,KAAO5nB,EAAO4nB,KAAOrmC,EAAMgE,MAAMsiC,QAAU7nB,EAAO6nB,SAC9D7nB,EAASze,EAAMiE,SAChB,KAAiB,GAAb8jC,GAA4B,GAAVC,EACzBvpB,EAASze,EAAMiE,IACfgC,EAASjG,EAAMgE,UACZ,CACH,GAAI2jC,GAAgBvB,EAAqBpsE,KAAKorE,gBAAiB3mB,EAC/DA,GAASkpB,EAAclpB,OACvBxY,EAAS0hC,EAAc1hC,OAE3B3F,EAAO1E,UAAUgsC,mBAAmB3hC,EAAOogC,IAAKpgC,EAAOqgC,QAE3DhmC,EAAO1E,UAAU2rC,iBAAiB9oB,GAClCne,EAAOymB,kBACPzmB,EAAOqgC,SAASkH,wBAGpB7tE,KAAKiuE,UACLjuE,KAAKkuE,aACLluE,KAAKmuE,iBACLnuE,KAAKouE,iBAAmB,WACpBpuE,KAAKorE,gBAAkB,KACvBprE,KAAKsmC,OAAO+nC,WAAW,iBACnBruE,KAAKsmC,OAAOqgC,SAASsE,SAASqD,gBAC9BtuE,KAAKsmC,OAAOqgC,SAASsE,SAASqD,kBAItCtuE,KAAKuuE,UAAY,WACb,GAAIC,GAAWzC,EAAa/rE,KAAK0sE,eAAex7C,EAAGlxB,KAAK0sE,eAAe7hB,EAAG7qD,KAAKkxB,EAAGlxB,KAAK6qD,GACnF78C,EAAOrB,KAAK6nD,OAEZga,EApJM,GAoJoBxgE,EAAOhO,KAAK0sE,eAAe1+D,KAAOhO,KAAK+sE,eACjE/sE,KAAKktE,YAAYltE,KAAK0sE,eAAeD,wBAG7CzsE,KAAKurE,cAAgB,SAASgB,GAC1B,GAAI3yD,GAAM2yD,EAAGE,sBACTnmC,EAAStmC,KAAKsmC,OACdsjC,EAAUtjC,EAAOsjC,QAEjB5jC,EAAQ4jC,EAAQ6E,gBAAgB70D,EAChCosB,IACIA,EAAM+/B,YACN//B,EAAMgE,MAAMsiC,SACZtmC,EAAMiE,IAAIqiC,UAEdtsE,KAAKmtE,SAAS,YAEdnnC,EAAQM,EAAO1E,UAAU8sC,aAAa90D,EAAIyyD,IAAKzyD,EAAI0yD,QACnDtsE,KAAKmtE,SAAS,kBAElBntE,KAAKorE,gBAAkBplC,EACvBhmC,KAAK+lC,UAGT/lC,KAAKwrE,cAAgB,SAASe,GAC1B,GAAI3yD,GAAM2yD,EAAGE,sBACTnmC,EAAStmC,KAAKsmC,MAElBtmC,MAAKmtE,SAAS,gBACd,IAAInnC,GAAQM,EAAOsmC,mBACf5mC,GAAM2oC,eAAiB3oC,EAAMhZ,SAASpT,EAAIyyD,IAAKzyD,EAAI0yD,SACnDtsE,KAAKorE,gBAAkB9kC,EAAO1E,UAAUgtC,aAAa5oC,EAAMgE,MAAMqiC,KACjErsE,KAAKorE,gBAAgBnhC,IAAM3D,EAAO1E,UAAUgtC,aAAa5oC,EAAMiE,IAAIoiC,KAAKpiC,KAExEjqC,KAAKorE,gBAAkB9kC,EAAO1E,UAAUgtC,aAAah1D,EAAIyyD,KAE7DrsE,KAAK+lC,UAGT/lC,KAAKyrE,YAAc,SAASc,GACxB,GAAIjmC,GAAStmC,KAAKsmC,MAElBA,GAAOiiC,YACPvoE,KAAKorE,gBAAkB9kC,EAAOsmC,oBAC9B5sE,KAAKmtE,SAAS,cAGlBntE,KAAK0rE,aAAe,SAASa,GACzB,IAAIA,EAAGsC,cAAP,CAEItC,EAAGe,eAAiBf,EAAGhL,SAAWgL,EAAGjL,SACrCiL,EAAGjL,OAASiL,EAAGhL,OACfgL,EAAGhL,OAAS,EAGhB,IAAIh8D,GAAIgnE,EAAG/B,SAASxK,UAChBC,EAAK16D,GAAKvF,KAAK8uE,iBAAiB,GAEhCxoC,EAAStmC,KAAKsmC,MAElB,OADkBA,GAAOqgC,SAASoI,eAAexC,EAAGjL,OAASiL,EAAGyC,MAAOzC,EAAGhL,OAASgL,EAAGyC,QACnE/O,EAAK,KACpBjgE,KAAK8uE,gBAAkBvpE,EACvB+gC,EAAOqgC,SAASsI,SAAS1C,EAAGjL,OAASiL,EAAGyC,MAAOzC,EAAGhL,OAASgL,EAAGyC,OACvDzC,EAAG2C,YAHd,KAOJlvE,KAAK2rE,YAAc,SAAUY,GACzB,GAAIhnE,GAAIgnE,EAAG/B,SAASxK,UAChBC,EAAK16D,GAAKvF,KAAK8uE,iBAAmB,GAElCxoC,EAAStmC,KAAKsmC,MAElB,IADkBA,EAAOqgC,SAASoI,eAAexC,EAAGjL,OAASiL,EAAGyC,MAAOzC,EAAGhL,OAASgL,EAAGyC,QACnE/O,EAAK,IAGpB,MAFAjgE,MAAK8uE,gBAAkBvpE;sGACvB+gC,EAAOqgC,SAASsI,SAAS1C,EAAGjL,OAASiL,EAAGyC,MAAOzC,EAAGhL,OAASgL,EAAGyC,OACvDzC,EAAG2C,UAInB3uE,KAAK2qE,EAAgBzoE,WAExB7C,EAAQsrE,gBAAkBA,IAsB1Bjf,IAAInsD,OAAO,eAAe,UAAU,UAAU,SAAS,cAAc,eAAgB,SAAS+uD,EAAUjvD,EAASC,GACjH,YAIA,SAASsvE,GAAS7sC,GACdtiC,KAAKovE,QAAS,EACdpvE,KAAKqvE,SAAW,KAChBrvE,KAAKsvE,YAAchtC,EALvB,GACIZ,IADMmtB,EAAS,aACTA,EAAS,eAOnB,WACI7uD,KAAKuvE,MAAQ,WAKT,MAJAvvE,MAAKqvE,SAAW3tC,EAAIyF,cAAc,OAClCnnC,KAAKqvE,SAASjoC,UAAY,cAC1BpnC,KAAKqvE,SAASx+B,MAAM4N,QAAU,OAC9Bz+C,KAAKsvE,YAAYnsC,YAAYnjC,KAAKqvE,UAC3BrvE,KAAKqvE,UAEhBrvE,KAAKoqE,WAAa,WACd,MAAOpqE,MAAKqvE,UAAYrvE,KAAKuvE,SAEjCvvE,KAAKgD,QAAU,SAAS2uB,GACpB+P,EAAI21B,aAAar3D,KAAKoqE,aAAcz4C,IAExC3xB,KAAKwvE,QAAU,SAASvlB,GACpBjqD,KAAKoqE,aAAahuB,UAAY6N,GAElCjqD,KAAKyvE,YAAc,SAASv+C,EAAG25B,GAC3B7qD,KAAKoqE,aAAav5B,MAAMX,KAAOhf,EAAI,KACnClxB,KAAKoqE,aAAav5B,MAAM3L,IAAM2lB,EAAI,MAEtC7qD,KAAK0vE,aAAe,SAAStoC,GACzB1F,EAAI2zB,YAAYr1D,KAAKoqE,aAAchjC,IAEvCpnC,KAAKusC,KAAO,SAAS5a,EAAMT,EAAG25B,GACd,MAARl5B,GACA3xB,KAAKgD,QAAQ2uB,GACR,MAALT,GAAkB,MAAL25B,GACb7qD,KAAKyvE,YAAYv+C,EAAG25B,GACnB7qD,KAAKovE,SACNpvE,KAAKoqE,aAAav5B,MAAM4N,QAAU,QAClCz+C,KAAKovE,QAAS,IAItBpvE,KAAK28C,KAAO,WACJ38C,KAAKovE,SACLpvE,KAAKoqE,aAAav5B,MAAM4N,QAAU,OAClCz+C,KAAKovE,QAAS,IAGtBpvE,KAAK2vE,UAAY,WACb,MAAO3vE,MAAKoqE,aAAajsB,cAE7Bn+C,KAAK4vE,SAAW,WACZ,MAAO5vE,MAAKoqE,aAAazT,eAG9Bp2D,KAAK4uE,EAAQ1sE,WAEhB7C,EAAQuvE,QAAUA,IAGlBljB,IAAInsD,OAAO,oCAAoC,UAAU,UAAU,SAAS,cAAc,cAAc,gBAAgB,eAAgB,SAAS+uD,EAAUjvD,EAASC,GACpK,YAMA,SAASgwE,GAAc1E,GAiCnB,QAAS2E,KACL,GAAIzD,GAAM0D,EAAWtD,sBAAsBJ,IACvC2D,EAAaC,EAAOC,aAAa7D,EACrC,KAAK2D,EACD,MAAOG,IAGX,IAAI9D,GADS/lC,EAAOsjC,QAAQwG,YACT,CACf,GAAIC,GAAY/pC,EAAOqgC,SAAS2J,yBAAyB,EAAGP,EAAWllB,GAAGwhB,IACtEzyD,EAAMm2D,EAAWQ,IACrB,IAAIF,EAAY/pC,EAAOsjC,QAAQ4G,oBAAoB52D,EAAIyyD,IAAKzyD,EAAI0yD,QAC5D,MAAO6D,KAGf,GAAIM,GAAqBT,EASzB,GAPAS,EAAoBT,EAAWr+C,KAAKhO,KAAK,SAEzC+sD,EAAQlB,QAAQiB,GAChBC,EAAQnkC,OACRjG,EAAOqqC,QAAQ,oBAAqBD,GACpCpqC,EAAOunB,GAAG,aAAcsiB,GAEpBhF,EAAayF,qBACbC,EAAYd,OACT,CACH,GAAIe,GAAgBf,EAAWvF,SAASljC,OACpCqjC,EAAOmG,EAAc7gC,wBACrBY,EAAQ6/B,EAAQtG,aAAav5B,KACjCA,GAAMX,KAAOy6B,EAAKv2B,MAAQ,KAC1BvD,EAAM3L,IAAMylC,EAAKrlC,OAAS,MAIlC,QAAS6qC,KACDY,IACAA,EAAiBlrC,aAAakrC,IAC9BN,IACAC,EAAQ/zB,OACR8zB,EAAoB,KACpBnqC,EAAOqqC,QAAQ,oBAAqBD,GACpCpqC,EAAOiE,oBAAoB,aAAc4lC,IAIjD,QAASU,GAAYvrE,GACjBorE,EAAQjB,YAAYnqE,EAAE4rB,EAAG5rB,EAAEulD,GA9E/B,GAAIvkB,GAAS6kC,EAAa7kC,OACtB2pC,EAAS3pC,EAAOqgC,SAASqK,aACzBN,EAAU,GAAIO,GAAc3qC,EAAO1lC,UAEvCuqE,GAAa7kC,OAAO+kC,kBAAkB,kBAAmB,SAAS/lE,GAC9D,GAAKghC,EAAO6gC,aAAgC,GAAjB7hE,EAAEo7D,YAA7B,CAIA,GAAoB,eAFDuP,EAAOiB,UAAU5rE,GAEpC,CAGA,GAAI+mE,GAAM/mE,EAAEmnE,sBAAsBJ,IAC9BzqC,EAAY0E,EAAOsjC,QAAQhoC,SAE/B,IAAIt8B,EAAEgoE,cACF1rC,EAAUuvC,SAAS9E,EAAK,OACvB,CACD,GAAyB,GAArB/mE,EAAEklE,SAASpI,OAEX,MADA97B,GAAOiiC,YACAjjE,EAAEiiC,gBAEb4jC,GAAaC,gBAAkB9kC,EAAO1E,UAAUgtC,aAAavC,GAIjE,MAFAlB,GAAagC,SAAS,iBACtBhC,EAAa8B,aAAa3nE,GACnBA,EAAEiiC,oBAIb,IAAIwpC,GAAgBhB,EAAYU,CAmDhCtF,GAAa7kC,OAAO+kC,kBAAkB,kBAAmB,SAAS/lE,GAC9D,GAAIgiC,GAAShiC,EAAEklE,SAASljC,QAAUhiC,EAAEklE,SAAStjB,UAC7C,IAAIxlB,EAAIyzB,YAAY7tB,EAAQ,mBACxB,MAAO6oC,IAEPM,IAAqBtF,EAAayF,sBAClCC,EAAYvrE,GAEhByqE,EAAazqE,EACTyrE,IAEJA,EAAiB/oE,WAAW,WACxB+oE,EAAiB,KACbhB,IAAe5E,EAAaiG,eAC5BtB,IAEAK,KACL,OAGPnpC,EAAMo5B,YAAY95B,EAAOqgC,SAAS0K,QAAS,WAAY,SAAS/rE,GAC5DyqE,EAAa,KACRU,IAAqBM,IAG1BA,EAAiB/oE,WAAW,WACxB+oE,EAAiB,KACjBZ,KACD,OAGP7pC,EAAOunB,GAAG,gBAAiBsiB,GAG/B,QAASc,GAAc3uC,GACnB6sC,EAAQ5uE,KAAKP,KAAMsiC,GA1HvB,GAAIZ,GAAMmtB,EAAS,cACfmJ,EAAMnJ,EAAS,cACf7nB,EAAQ6nB,EAAS,gBACjBsgB,EAAUtgB,EAAS,cAAcsgB,OA0HrCnX,GAAIN,SAASuZ,EAAe9B,GAE5B,WACInvE,KAAKyvE,YAAc,SAASv+C,EAAG25B,GAC3B,GAAIymB,GAAcr6C,OAAOs6C,YAAcrqC,SAAS8tB,gBAAgBzI,YAC5DilB,EAAev6C,OAAOw6C,aAAevqC,SAAS8tB,gBAAgB3vB,aAC9D2G,EAAQhsC,KAAK4vE,WACbxqC,EAASplC,KAAK2vE,WAClBz+C,IAAK,GACL25B,GAAK,GACD35B,EAAI8a,EAAQslC,IACZpgD,GAAMA,EAAI8a,EAASslC,GAEnBzmB,EAAIzlB,EAASosC,IACb3mB,GAAK,GAAKzlB,GAEd+pC,EAAQ1sE,UAAUgtE,YAAYlvE,KAAKP,KAAMkxB,EAAG25B,KAGjDtqD,KAAK0wE,EAAcxuE,WAItB7C,EAAQiwE,cAAgBA,IAIxB5jB,IAAInsD,OAAO,yBAAyB,UAAU,UAAU,SAAS,gBAAgB,qBAAsB,SAAS+uD,EAAUjvD,EAASC,GACnI,YAEA,IAAImnC,GAAQ6nB,EAAS,gBACjB4Q,EAAY5Q,EAAS,oBACrB6iB,EAAa9xE,EAAQ8xE,WAAa,SAASlH,EAAUlkC,GACrDtmC,KAAKwqE,SAAWA,EAChBxqE,KAAKsmC,OAASA,EAEdtmC,KAAKkxB,EAAIlxB,KAAKohE,QAAUoJ,EAASpJ,QACjCphE,KAAK6qD,EAAI7qD,KAAKqhE,QAAUmJ,EAASnJ,QAEjCrhE,KAAKuwE,KAAO,KACZvwE,KAAK2xE,aAAe,KAEpB3xE,KAAK4xE,oBAAqB,EAC1B5xE,KAAKkgE,kBAAmB,IAG5B,WAEIlgE,KAAK4rC,gBAAkB,WACnB5E,EAAM4E,gBAAgB5rC,KAAKwqE,UAC3BxqE,KAAK4xE,oBAAqB,GAG9B5xE,KAAKunC,eAAiB,WAClBP,EAAMO,eAAevnC,KAAKwqE,UAC1BxqE,KAAKkgE,kBAAmB,GAG5BlgE,KAAKkvE,KAAO,WACRlvE,KAAK4rC,kBACL5rC,KAAKunC,kBAETvnC,KAAKysE,oBAAsB,WACvB,MAAIzsE,MAAKuwE,KACEvwE,KAAKuwE,MAEhBvwE,KAAKuwE,KAAOvwE,KAAKsmC,OAAOqgC,SAAS0G,wBAAwBrtE,KAAKohE,QAASphE,KAAKqhE,SACrErhE,KAAKuwE,OAEhBvwE,KAAKwsE,YAAc,WACf,GAA0B,OAAtBxsE,KAAK2xE,aACL,MAAO3xE,MAAK2xE,YAEhB,IAAIrrC,GAAStmC,KAAKsmC,OAGdqmC,EAAiBrmC,EAAOsmC,mBAC5B,IAAID,EAAe5G,UACf/lE,KAAK2xE,cAAe,MACnB,CACD,GAAI/3D,GAAM5Z,KAAKysE,qBACfzsE,MAAK2xE,aAAehF,EAAe3/C,SAASpT,EAAIyyD,IAAKzyD,EAAI0yD,QAG7D,MAAOtsE,MAAK2xE,cAEhB3xE,KAAK0gE,UAAY,WACb,MAAO15B,GAAM05B,UAAU1gE,KAAKwqE,WAEhCxqE,KAAKstE,YAAc,WACf,MAAOttE,MAAKwqE,SAASh/B,UAGzBxrC,KAAK6uE,YAAcpP,EAAUxB,MACvB,WAAa,MAAOj+D,MAAKwqE,SAAStH,SAClC,WAAa,MAAOljE,MAAKwqE,SAASj/B,WAEzChrC,KAAKmxE,EAAWjvE,aAInBwpD,IAAInsD,OAAO,8BAA8B,UAAU,UAAU,SAAS,cAAc,gBAAgB,qBAAsB,SAAS+uD,EAAUjvD,EAASC,GACtJ,YAUA,SAASgyE,GAAgB1G,GAkJrB,QAAS0C,GAAqBppB,EAAQqtB,GAClC,GAAItd,GAAM7nD,KAAK6nD,MACXud,GAAaD,GAAcrtB,EAAO4nB,KAAOyF,EAAWzF,IACpD2F,GAAaF,GAAcrtB,EAAO6nB,QAAUwF,EAAWxF,MAC3D,KAAK2F,GAAmBF,GAAaC,EACjC1rC,EAAOymB,iBAAmB,EAC1BzmB,EAAO4rC,qBAAqBztB,GAC5Bne,EAAOymB,iBAAmB,EAC1BklB,EAAkBzd,EAClB2d,GAA2BjhD,EAAGA,EAAG25B,EAAGA,OACjC,CACYkhB,EAAaoG,EAAwBjhD,EAAGihD,EAAwBtnB,EAAG35B,EAAG25B,GACtEunB,EACXH,EAAkB,KACXzd,EAAMyd,GAAmBI,IAChC/rC,EAAOqgC,SAASkH,uBAChBoE,EAAkB,OAK9B,QAASK,GAAW7tB,EAAQqtB,GACxB,GAAItd,GAAM7nD,KAAK6nD,MACX+d,EAAajsC,EAAOqgC,SAAS6L,YAAYD,WACzCE,EAAiBnsC,EAAOqgC,SAAS6L,YAAYC,eAC7CC,EAAapsC,EAAOqgC,SAASsE,SAASh7B,wBACtC0iC,GACDzhD,GACIgf,KAAMhf,EAAIwhD,EAAWxiC,KACrBkE,MAAOs+B,EAAWt+B,MAAQljB,GAE9B25B,GACI3lB,IAAK2lB,EAAI6nB,EAAWxtC,IACpBI,OAAQotC,EAAWptC,OAASulB,IAG/B+nB,EAAiBt7C,KAAKoP,IAAIisC,EAAQzhD,EAAEgf,KAAMyiC,EAAQzhD,EAAEkjB,OACpDy+B,EAAiBv7C,KAAKoP,IAAIisC,EAAQ9nB,EAAE3lB,IAAKytC,EAAQ9nB,EAAEvlB,QACnDwtC,GAAgBzG,IAAK5nB,EAAO4nB,IAAKC,OAAQ7nB,EAAO6nB,OAChDsG,GAAiBH,GAAkB,IACnCK,EAAaxG,QAAWqG,EAAQzhD,EAAEgf,KAAOyiC,EAAQzhD,EAAEkjB,OAAS,EAAI,GAEhEy+B,EAAiBN,GAAc,IAC/BO,EAAazG,KAAQsG,EAAQ9nB,EAAE3lB,IAAMytC,EAAQ9nB,EAAEvlB,QAAU,EAAI,EAEjE,IAAIytC,GAAUtuB,EAAO4nB,KAAOyG,EAAazG,IACrC2G,EAAUvuB,EAAO6nB,QAAUwG,EAAaxG,OACxCyF,GAAaD,GAAcrtB,EAAO4nB,KAAOyF,EAAWzF,GACpD0G,IAAYC,IAAYjB,EACnBkB,EAEIze,EAAMye,GAAuBC,GAClC5sC,EAAOqgC,SAASkH,qBAAqBiF,GAFrCG,EAAsBze,EAI1Bye,EAAsB,KAI9B,QAASE,KACL,GAAIrB,GAAasB,CACjBA,GAAa9sC,EAAOqgC,SAAS0G,wBAAwBn8C,EAAG25B,GACxDgjB,EAAqBuF,EAAYtB,GACjCQ,EAAWc,EAAYtB,GAG3B,QAASuB,KACLrtC,EAAQM,EAAO1E,UAAU0xC,kBACzBC,EAAsBjtC,EAAOsjC,QAAQ4J,UAAUxtC,EAAO,gBAAiBM,EAAOmtC,qBAC9EntC,EAAOyjC,iBACHzjC,EAAO6gC,aACP7gC,EAAOqgC,SAAS+M,aAAaC,aAAY,GAC7CC,cAAcC,GACdV,IACAU,EAAUluC,YAAYwtC,EAAgB,IACtCl/C,EAAU,EACV+S,EAAMo5B,YAAYl5B,SAAU,YAAa4sC,GAG7C,QAASC,KACLH,cAAcC,GACdvtC,EAAOsjC,QAAQoK,aAAaT,GAC5BA,EAAsB,KACtBjtC,EAAOymB,iBAAmB,EAC1BzmB,EAAO1E,UAAUqyC,kBAAkBjuC,GACnCM,EAAOymB,iBAAmB,EACtBzmB,EAAO6gC,cAAgB+M,GACvB5tC,EAAOqgC,SAAS+M,aAAaC,aAAartC,EAAO6tC,eACrDnuC,EAAQ,KACRotC,EAAa,KACbn/C,EAAU,EACVg/C,EAAsB,KACtBhB,EAAkB,KAClBjrC,EAAMu5B,eAAer5B,SAAU,YAAa4sC,GAGhD,QAASA,KACmB,MAApBM,IACAA,EAAmBpsE,WAAW,WACF,MAApBosE,GAA4Bb,GAC5BQ,KACL,KAIX,QAASM,GAAUC,GACf,GAAIj7D,GAAQi7D,EAAaj7D,KACzB,QAAQA,GAAS7M,MAAM/J,UAAUqjD,KAAKvlD,KAAK8Y,EAAO,SAASX,GACvD,MAAe,cAARA,GAAgC,QAARA,IAIvC,QAAS67D,GAAcjvE,GACnB,GAAIkvE,IAAe,OAAQ,WAAY,MAAO,iBAC1CC,GAAe,OAAQ,WAAY,WAAY,MAAO,iBAEtDC,EAAoBjV,EAAUxB,MAAQ34D,EAAEqiD,OAASriD,EAAEimC,QACnDopC,EAAgB,eACpB,KACIA,EAAgBrvE,EAAEgvE,aAAaK,cAAcj+C,cAC/C,MAAOpxB,IACT,GAAIsvE,GAAa,MASjB,OAPIF,IAAqBF,EAAYxyE,QAAQ2yE,IAAkB,EAC3DC,EAAa,OACRH,EAAYzyE,QAAQ2yE,IAAkB,EAC3CC,EAAa,OACRJ,EAAYxyE,QAAQ2yE,IAAkB,IAC3CC,EAAa,QAEVA,EAjRX,GAAItuC,GAAS6kC,EAAa7kC,OAEtBuuC,EAAanzC,EAAIyF,cAAc,MACnC0tC,GAAWC,IAAM,6EACbrV,EAAUX,UACV+V,EAAWhkC,MAAMmlB,QAAU,mFAEhB,WAAY,cAAe,YAAa,eAAgB,eAE9Dl0D,QAAQ,SAASovB,GACrBi6C,EAAaj6C,GAAKlxB,KAAKkxB,IACzBlxB,MACHsmC,EAAO4B,iBAAiB,YAAaloC,KAAKsrE,YAAY1oC,KAAKuoC,GAG3D,IACIoI,GAAqBriD,EAAG25B,EACxBgpB,EAAS7tC,EACTotC,EACA2B,EACAb,EACAjB,EACAhB,EACAE,EARA6C,EAAc1uC,EAAO1lC,UAGTqzB,EAAU,CAO1Bj0B,MAAKmpC,YAAc,SAAS7jC,GACxB,GAAItF,KAAKi1E,aAAeD,EAAYE,UAAW,CAC3C,GAAIjtE,GAAOjI,IAKX,OAJAgI,YAAW,WACPC,EAAKilE,cACLjlE,EAAKglE,aAAa3nE,IACnB,GACIA,EAAEiiC,iBAEbvB,EAAQM,EAAOsmC,mBAEf,IAAI0H,GAAehvE,EAAEgvE,YACrBA,GAAaK,cAAgBruC,EAAO6tC,cAAgB,OAAS,WACzD1U,EAAUX,UACVx4B,EAAO1lC,UAAUuiC,YAAY0xC,GAC7BA,EAAWtvC,UAAY,GAE3B+uC,EAAaa,cAAgBb,EAAaa,aAAaN,EAAY,EAAG,GAClEpV,EAAUX,SACVx4B,EAAO1lC,UAAU2hC,YAAYsyC,GAEjCP,EAAac,YACbd,EAAalL,QAAQ,OAAQ9iC,EAAOsjC,QAAQyL,gBAE5CnB,GAAa,EACbl0E,KAAKmtE,SAAS,SAGlBntE,KAAKskD,UAAY,SAASh/C,GAItB,GAHA0vE,EAAYE,WAAY,EACxBhB,GAAa,EACbl0E,KAAKmtE,SAAS,OACT7mC,EAAO6tC,cAAe,CACvB,GAAIS,GAAatvE,EAAEgvE,aAAaM,UAC3BG,IAA+B,QAAdH,GAClBtuC,EAAOsjC,QAAQ/9C,OAAOya,EAAOsmC,qBACjCtmC,EAAOqgC,SAAS+M,aAAaC,aAAY,GAE7C3zE,KAAKsmC,OAAO+nC,WAAW,gBACvBruE,KAAKsmC,OAAOqgC,SAAS2O,eAAe,KAGxCt1E,KAAKu1E,YAAc,SAASjwE,GACxB,IAAIghC,EAAO6tC,eAAkBE,EAAU/uE,EAAEgvE,cAQzC,MANApjD,GAAI5rB,EAAE87D,QACNvW,EAAIvlD,EAAE+7D,QACDkS,GACDF,IACJp/C,IACA3uB,EAAEgvE,aAAaM,WAAaG,EAAgBR,EAAcjvE,GACnD0hC,EAAMO,eAAejiC,IAGhCtF,KAAKw1E,WAAa,SAASlwE,GACvB,IAAIghC,EAAO6tC,eAAkBE,EAAU/uE,EAAEgvE,cAYzC,MAVApjD,GAAI5rB,EAAE87D,QACNvW,EAAIvlD,EAAE+7D,QACDkS,IACDF,IACAp/C,KAEqB,OAArBmgD,IACAA,EAAmB,MAEvB9uE,EAAEgvE,aAAaM,WAAaG,EAAgBR,EAAcjvE,GACnD0hC,EAAMO,eAAejiC,IAGhCtF,KAAKy1E,YAAc,SAASnwE,GAExB,KADA2uB,GACe,GAAKs/C,EAGhB,MAFAQ,KACAgB,EAAgB,KACT/tC,EAAMO,eAAejiC,IAIpCtF,KAAK01E,OAAS,SAASpwE,GACnB,GAAK8tE,EAAL,CAEA,GAAIkB,GAAehvE,EAAEgvE,YACrB,IAAIJ,EACA,OAAQa,GACJ,IAAK,OAEG/uC,EADAA,EAAMhZ,SAASomD,EAAW/G,IAAK+G,EAAW9G,SAEtCtiC,MAAOopC,EACPnpC,IAAKmpC,GAGD9sC,EAAOqvC,SAAS3vC,EAAOotC,EAEnC,MACJ,KAAK,OACDptC,EAAQM,EAAOqvC,SAAS3vC,EAAOotC,GAAY,OAGhD,CACH,GAAIwC,GAAWtB,EAAat3D,QAAQ,OACpCgpB,IACIgE,MAAOopC,EACPnpC,IAAK3D,EAAOsjC,QAAQlY,OAAO0hB,EAAYwC,IAE3CtvC,EAAO9C,QACPuxC,EAAgB,KAGpB,MADAhB,KACO/sC,EAAMO,eAAejiC,KAGhC0hC,EAAMo5B,YAAY4U,EAAa,YAAah1E,KAAKmpC,YAAYvG,KAAKuoC,IAClEnkC,EAAMo5B,YAAY4U,EAAa,UAAWh1E,KAAKskD,UAAU1hB,KAAKuoC,IAC9DnkC,EAAMo5B,YAAY4U,EAAa,YAAah1E,KAAKu1E,YAAY3yC,KAAKuoC,IAClEnkC,EAAMo5B,YAAY4U,EAAa,WAAYh1E,KAAKw1E,WAAW5yC,KAAKuoC,IAChEnkC,EAAMo5B,YAAY4U,EAAa,YAAah1E,KAAKy1E,YAAY7yC,KAAKuoC,IAClEnkC,EAAMo5B,YAAY4U,EAAa,OAAQh1E,KAAK01E,OAAO9yC,KAAKuoC,GAgGxD,IAAIiJ,GAAmB,KA2H3B,QAASrI,GAAaC,EAAIC,EAAIC,EAAIC,GAC9B,MAAO70C,MAAKyS,KAAKzS,KAAKmmC,IAAIyO,EAAKF,EAAI,GAAK10C,KAAKmmC,IAAI0O,EAAKF,EAAI,IApX9D,GAAIvqC,GAAMmtB,EAAS,cACf7nB,EAAQ6nB,EAAS,gBACjB4Q,EAAY5Q,EAAS,oBAErBqkB,EAAmB,IACnBb,EAAsB,IACtBD,EAA2B,GAyR/B,WAEIpyE,KAAK61E,SAAW,WACGlpE,KAAK6nD,MAAQx0D,KAAK0sE,eAAe1+D,KACjChO,KAAKsmC,OAAOwvC,gBACvB91E,KAAK+1E,aAGb/1E,KAAKg2E,YAAc,WACFh2E,KAAKsmC,OAAO1lC,UAClBs0E,WAAY,EACnBl1E,KAAKktE,YAAYltE,KAAK0sE,eAAeD,uBACrCzsE,KAAKiuE,aAGTjuE,KAAKi2E,aAAe,SAAS3wE,GACzBtF,KAAKsmC,OAAOqgC,SAAS+M,aAAaC,aAAa3zE,KAAKsmC,OAAO6tC,eAC3Dn0E,KAAKsmC,OAAO+nC,WAAW,gBACvBruE,KAAKsmC,OAAOqgC,SAAS2O,eAAe,IACpCt1E,KAAKg2E,eAGTh2E,KAAK+1E,UAAY,WACb/1E,KAAKi1E,YAAa,CAClB,IAAI3uC,GAAStmC,KAAKsmC,MACLA,GAAO1lC,UACbs0E,WAAY,EACnB5uC,EAAOqgC,SAAS+M,aAAaC,aAAY,GACzCrtC,EAAOmnC,SAAS,eAChB,IAAIyI,GAAczW,EAAUpB,MAAQ,UAAY,MAChD/3B,GAAOqgC,SAAS2O,eAAeY,GAC/Bl2E,KAAKmtE,SAAS,cAGlBntE,KAAKm2E,YAAc,SAAS7wE,GACxB,GAAIgiC,GAAStnC,KAAKsmC,OAAO1lC,SACzB,IAAI6+D,EAAUnB,MAAsB,aAAdt+D,KAAKw4C,MAAsB,CAC7C,GAAIg2B,GAAWzC,EAAa/rE,KAAK0sE,eAAex7C,EAAGlxB,KAAK0sE,eAAe7hB,EAAG7qD,KAAKkxB,EAAGlxB,KAAK6qD,EACnF2jB,GAAW,GACXlnC,EAAO8uC,WAEf,GAAmB,aAAfp2E,KAAKw4C,MAAsB,CAC3B,GAAIg2B,GAAWzC,EAAa/rE,KAAK0sE,eAAex7C,EAAGlxB,KAAK0sE,eAAe7hB,EAAG7qD,KAAKkxB,EAAGlxB,KAAK6qD,EACnF2jB,GAAW,IACXlnC,EAAO4tC,WAAY,EACnBl1E,KAAKktE,YAAYltE,KAAK0sE,eAAeD,0BAKjDzsE,KAAKsrE,YAAc,SAAShmE,GACxB,GAAKtF,KAAKq2E,aAAV,CAEAr2E,KAAK0sE,eAAiBpnE,CACtB,IAAIghC,GAAStmC,KAAKsmC,OAEdkmC,EAAclnE,EAAEknE,cAChB9vB,EAASp3C,EAAEo7D,WAEf,IAAmB,KADFp7D,EAAEklE,SAASpI,QAAU,IACH,IAAX1lB,GAAgB8vB,EAAa,CACjD,GAAIlnE,EAAEghC,OAAO0mC,oBAAsB1nE,EAAEupE,eAAiBvpE,EAAEgoE,eACpD,MACJttE,MAAK0sE,eAAe1+D,KAAOrB,KAAK6nD,KAChC,IAAI8hB,GAAchxE,EAAEklE,SAASljC,QAAUhiC,EAAEklE,SAAStjB,UAGlD,IAFI,gBAAkBovB,KAClBA,EAAYC,aAAe,MAC3BjwC,EAAOwvC,eAAgB,CACvB,GAAIrW,EAAUT,SAAU,CACpBh/D,KAAKi1E,YAAa,CACA3uC,GAAO1lC,UACbs0E,WAAY,EAE5Bl1E,KAAKmtE,SAAS,gBAEdntE,MAAK+1E,WAET/1E,MAAKitE,aAAa3nE,EAAGtF,KAAKm2E,YAAYvzC,KAAK5iC,OAC3CsF,EAAE46D,kBAAmB,OAI9B3/D,KAAKsxE,EAAgBpvE,WAOxB7C,EAAQiyE,gBAAkBA,IAI1B5lB,IAAInsD,OAAO,eAAe,UAAU,UAAU,SAAS,eAAgB,SAAS+uD,EAAUjvD,EAASC,GACnG,YACA,IAAI6hC,GAAMmtB,EAAS,QAEnBjvD,GAAQmD,IAAM,SAAUqQ,EAAKxL,GACzB,GAAI4uE,GAAM,GAAIC,eACdD,GAAInvB,KAAK,MAAOj0C,GAAK,GACrBojE,EAAIE,mBAAqB,WACE,IAAnBF,EAAIG,YACJ/uE,EAAS4uE,EAAII,eAGrBJ,EAAIK,KAAK,OAGbj3E,EAAQk3E,WAAa,SAASh/D,EAAMlQ,GAChC,GAAIktD,GAAOpzB,EAAIkzB,kBACXlvD,EAAIwhC,SAASC,cAAc,SAE/BzhC,GAAEovE,IAAMh9D,EACRg9C,EAAK3xB,YAAYz9B,GAEjBA,EAAEqxE,OAASrxE,EAAEgxE,mBAAqB,SAASM,EAAGC,IACtCA,GAAYvxE,EAAEixE,YAA8B,UAAhBjxE,EAAEixE,YAA0C,YAAhBjxE,EAAEixE,aAC1DjxE,EAAIA,EAAEqxE,OAASrxE,EAAEgxE,mBAAqB,KACjCO,GACDrvE,OAIhBhI,EAAQs3E,WAAa,SAAS9jE,GAC1B,GAAIvN,GAAIqhC,SAASC,cAAc,IAE/B,OADAthC,GAAE+R,KAAOxE,EACFvN,EAAE+R,QAKbq0C,IAAInsD,OAAO,yBAAyB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GAC/F,YAEA,IAAIs3E,MACAvrC,EAAkB,WAAa5rC,KAAK4xE,oBAAqB,GACzDrqC,EAAiB,WAAavnC,KAAKkgE,kBAAmB,EAE1DiX,GAAa5M,MACb4M,EAAaC,eAAiB,SAASC,EAAW/xE,GAC9CtF,KAAKs3E,iBAAmBt3E,KAAKs3E,mBAC7Bt3E,KAAKu3E,mBAAqBv3E,KAAKu3E,oBAE/B,IAAIC,GAAYx3E,KAAKs3E,eAAeD,OAChCI,EAAiBz3E,KAAKu3E,iBAAiBF,EAC3C,IAAKG,EAAUt1E,QAAWu1E,EAA1B,CAGgB,gBAALnyE,IAAkBA,IACzBA,MAECA,EAAEoT,OACHpT,EAAEoT,KAAO2+D,GACR/xE,EAAEsmC,kBACHtmC,EAAEsmC,gBAAkBA,GACnBtmC,EAAEiiC,iBACHjiC,EAAEiiC,eAAiBA,GAEvBiwC,EAAYA,EAAU3gE,OACtB,KAAK,GAAI9R,GAAE,EAAGA,EAAEyyE,EAAUt1E,SACtBs1E,EAAUzyE,GAAGO,EAAGtF,OACZsF,EAAEssE,oBAFwB7sE,KAMlC,MAAI0yE,KAAmBnyE,EAAE46D,iBACduX,EAAenyE,EAAGtF,UAD7B,KAKJm3E,EAAaxG,QAAU,SAAS0G,EAAW/xE,GACvC,GAAIkyE,IAAax3E,KAAKs3E,oBAAsBD,EAC5C,IAAKG,EAAL,CAEAA,EAAYA,EAAU3gE,OACtB,KAAK,GAAI9R,GAAE,EAAGA,EAAEyyE,EAAUt1E,OAAQ6C,IAC9ByyE,EAAUzyE,GAAGO,EAAGtF,QAGxBm3E,EAAaO,KAAO,SAASL,EAAWzvE,GACpC,GAAI69D,GAAQzlE,IACZ4H,IAAY5H,KAAKkoC,iBAAiBmvC,EAAW,QAASM,KAClDlS,EAAMl7B,oBAAoB8sC,EAAWM,GACrC/vE,EAASqJ,MAAM,KAAMhP,cAK7Bk1E,EAAa9L,kBAAoB,SAASgM,EAAWzvE,GACjD,GAAIgwE,GAAW53E,KAAKu3E,gBAIpB,IAHKK,IACDA,EAAW53E,KAAKu3E,kBAAoBM,gBAEpCD,EAASP,GAAY,CACrB,GAAIS,GAAMF,EAASP,GACf5uC,EAAWmvC,EAASC,WAAWR,EAC9B5uC,KACDmvC,EAASC,WAAWR,GAAa5uC,MACrCA,EAASvvB,KAAK4+D,EACd,IAAI/yE,GAAI0jC,EAASzmC,QAAQ4F,IACf,GAAN7C,GACA0jC,EAASjzB,OAAOzQ,EAAG,GAE3B6yE,EAASP,GAAazvE,GAE1BuvE,EAAaY,qBAAuB,SAASV,EAAWzvE,GACpD,GAAIgwE,GAAW53E,KAAKu3E,gBACpB,IAAKK,EAAL,CAEA,GAAInvC,GAAWmvC,EAASC,WAAWR,EAEnC,IAAIO,EAASP,IAAczvE,EAAU,CACvBgwE,EAASP,EACf5uC,IACAzoC,KAAKqrE,kBAAkBgM,EAAW5uC,EAASroB,WAC5C,IAAIqoB,EAAU,CACjB,GAAI1jC,GAAI0jC,EAASzmC,QAAQ4F,IACf,GAAN7C,GACA0jC,EAASjzB,OAAOzQ,EAAG,MAI/BoyE,EAAatpB,GACbspB,EAAajvC,iBAAmB,SAASmvC,EAAWzvE,EAAUowE,GAC1Dh4E,KAAKs3E,eAAiBt3E,KAAKs3E,kBAE3B,IAAIE,GAAYx3E,KAAKs3E,eAAeD,EAMpC,OALKG,KACDA,EAAYx3E,KAAKs3E,eAAeD,QAEA,GAAhCG,EAAUx1E,QAAQ4F,IAClB4vE,EAAUQ,EAAY,UAAY,QAAQpwE,GACvCA,GAGXuvE,EAAac,IACbd,EAAa5W,eACb4W,EAAa5sC,oBAAsB,SAAS8sC,EAAWzvE,GACnD5H,KAAKs3E,eAAiBt3E,KAAKs3E,kBAE3B,IAAIE,GAAYx3E,KAAKs3E,eAAeD,EACpC,IAAKG,EAAL,CAGA,GAAIrjE,GAAQqjE,EAAUx1E,QAAQ4F,IACf,IAAXuM,GACAqjE,EAAUhiE,OAAOrB,EAAO,KAGhCgjE,EAAae,mBAAqB,SAASb,GACnCr3E,KAAKs3E,iBAAgBt3E,KAAKs3E,eAAeD,QAGjDz3E,EAAQu3E,aAAeA,IAIvBlrB,IAAInsD,OAAO,sBAAsB,UAAU,UAAU,SAAS,cAAc,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GAClI,eAkDA,SAASwB,GAAKwT,GACY,mBAAXzT,UAA0BA,QAAQC,MACzCD,QAAQC,KAAK4P,MAAM7P,QAASa,WAGpC,QAASk2E,GAAYC,EAAK30E,GACtB,GAAI6B,GAAI,GAAIvE,OAAMq3E,EAClB9yE,GAAE7B,KAAOA,EACa,gBAAXrC,UAAuBA,QAAQD,OACtCC,QAAQD,MAAMmE,GAClB0C,WAAW,WAAa,KAAM1C,KA1DlC,GAAI0yD,GAAMnJ,EAAS,SACfsoB,EAAetoB,EAAS,mBAAmBsoB,aAE3CkB,GACAprB,WAAY,SAASqrB,GACjB12E,OAAOC,KAAKy2E,GAASx2E,QAAQ,SAAS0H,GAClCxJ,KAAKu4E,UAAU/uE,EAAK8uE,EAAQ9uE,KAC7BxJ,OAEPw4E,WAAY,SAASC,GACjB,GAAIznE,KAUJ,OATKynE,GAEOjsE,MAAMvH,QAAQwzE,KACtBznE,EAASynE,EACTA,EAAc72E,OAAOC,KAAKmP,IAH1BynE,EAAc72E,OAAOC,KAAK7B,KAAK04E,UAKnCD,EAAY32E,QAAQ,SAAS0H,GACzBwH,EAAOxH,GAAOxJ,KAAK24E,UAAUnvE,IAC9BxJ,MACIgR,GAEXunE,UAAW,SAASh1E,EAAMkG,GACtB,GAAIzJ,KAAK,IAAMuD,KAAUkG,EAAzB,CAEA,GAAImvE,GAAM54E,KAAK04E,SAASn1E,EACxB,KAAKq1E,EACD,MAAOv3E,GAAK,sBAAwBkC,EAAO,IAE/C,IAAIq1E,EAAIC,UACJ,MAAO74E,MAAK44E,EAAIC,YAAc74E,KAAK44E,EAAIC,WAAWN,UAAUh1E,EAAMkG,EAEjEmvE,GAAIE,aACL94E,KAAK,IAAMuD,GAAQkG,GACnBmvE,GAAOA,EAAI91E,KACX81E,EAAI91E,IAAIvC,KAAKP,KAAMyJ,KAE3BkvE,UAAW,SAASp1E,GAChB,GAAIq1E,GAAM54E,KAAK04E,SAASn1E,EACxB,OAAKq1E,GAGDA,EAAIC,UACG74E,KAAK44E,EAAIC,YAAc74E,KAAK44E,EAAIC,WAAWF,UAAUp1E,GACzDq1E,GAAOA,EAAI71E,IAAM61E,EAAI71E,IAAIxC,KAAKP,MAAQA,KAAK,IAAMuD,GAJ7ClC,EAAK,sBAAwBkC,EAAO,OAqBnDw1E,EAAY,WACZ/4E,KAAKg5E,qBAGT,WACIhhB,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAKi5E,cAAgB,SAASx/D,EAAK3B,EAAMjX,GAgBrC,MAfK4Y,GAAIi/D,WACL14E,KAAKg5E,gBAAgBlhE,GAAQ2B,EAAIi/D,aAErC92E,OAAOC,KAAKhB,GAASiB,QAAQ,SAAS0H,GAClC,GAAIovE,GAAM/3E,EAAQ2I,EACA,iBAAPovE,KACPA,GAAOC,UAAWD,IAEtBA,EAAIr1E,OAASq1E,EAAIr1E,KAAOiG,GACxBiQ,EAAIi/D,SAASE,EAAIr1E,MAAQq1E,EACrB,gBAAkBA,KAClBn/D,EAAI,IAAMm/D,EAAIr1E,MAAQq1E,EAAIM,gBAElClhB,EAAID,UAAUt+C,EAAK4+D,GAEZr4E,MAGXA,KAAKm5E,aAAe,SAAS1/D,GACzB7X,OAAOC,KAAK4X,EAAIi/D,UAAU52E,QAAQ,SAAS0H,GACvC,GAAIovE,GAAMn/D,EAAIi/D,SAASlvE,EACnB,UAAWovE,IACXn/D,EAAI8+D,UAAU/uE,EAAKovE,EAAInvE,UAInCzJ,KAAKo5E,gBAAkB,SAASthE,EAAMvU,EAAMkG,GACxC,GAAIvD,GAAOlG,KAAKg5E,gBAAgBlhE,KAAU9X,KAAKg5E,gBAAgBlhE,MAC3D5R,GAAK3C,KACD2C,EAAK2yE,UACL74E,KAAKo5E,gBAAgBlzE,EAAK2yE,UAAWt1E,EAAMkG,GAE3CvD,EAAK3C,GAAMkG,MAAQA,IAI/BzJ,KAAKq5E,iBAAmB,SAASvhE,EAAMwhE,GACnC13E,OAAOC,KAAKy3E,GAAYx3E,QAAQ,SAAS0H,GACrCxJ,KAAKo5E,gBAAgBthE,EAAMtO,EAAK8vE,EAAW9vE,KAC5CxJ,OAGPA,KAAKqB,KAAOA,EACZrB,KAAKm4E,YAAcA,IAEpB53E,KAAKw4E,EAAUt2E,WAElB7C,EAAQm5E,UAAYA,IAIpB9sB,IAAInsD,OAAO,cAAc,UAAU,UAAU,SAAS,eAAe,cAAc,cAAc,sBAAuB,SAAS+uD,EAAUjvD,EAASC,GACpJ,eA2GW,SAAS05E,GAAKpqB,GAErB,GAAK/pD,GAAWA,EAAO8hC,SAAvB,CAGArmC,EAAQsuD,SAAWA,GAAYN,EAASM,UAAYtvD,EAAOsvD,UAAa/pD,EAAOtF,QAAUI,EAAoB,IAAIivD,QAQjH,KAAK,GANDqqB,MACAC,EAAY,GACZC,EAAiBxyC,SAASwyC,eAAiBxyC,SAASyyC,eACpDC,EAAkBF,GAAiBA,EAAc9R,eAAiB1gC,SAElE2yC,EAAUD,EAAgB7kB,qBAAqB,UAC1ChwD,EAAE,EAAGA,EAAE80E,EAAQ33E,OAAQ6C,IAAK,CACjC,GAAI+0E,GAASD,EAAQ90E,GAEjB+vE,EAAMgF,EAAOhF,KAAOgF,EAAOC,aAAa,MAC5C,IAAKjF,EAAL,CAIA,IAAK,GADD/jC,GAAa+oC,EAAO/oC,WACfplB,EAAE,EAAG5lB,EAAEgrC,EAAW7uC,OAAQypB,EAAI5lB,EAAG4lB,IAAK,CAC3C,GAAIquD,GAAOjpC,EAAWplB,EACiB,KAAnCquD,EAAKz2E,KAAKvB,QAAQ,eAClBw3E,EAAcS,EAAYD,EAAKz2E,KAAKwU,QAAQ,aAAc,MAAQiiE,EAAKvwE,OAI/E,GAAIjJ,GAAIs0E,EAAInnE,MAAM,+BACdnN,KACAi5E,EAAYj5E,EAAE,KAGlBi5E,IACAD,EAAcllD,KAAOklD,EAAcllD,MAAQmlD,EAC3CD,EAAcrqB,UAAW,GAG7BqqB,EAAcU,SAAWV,EAAcllD,KACvCklD,EAAcW,WAAaX,EAAcW,YAAcX,EAAcllD,KACrEklD,EAAcY,SAAWZ,EAAcY,UAAYZ,EAAcllD,KACjEklD,EAAca,UAAYb,EAAca,WAAab,EAAcllD,WAC5DklD,GAAcllD,IAErB,KAAK,GAAI9qB,KAAOgwE,OACsB,KAAvBA,EAAchwE,IACrB5J,EAAQkD,IAAI0G,EAAKgwE,EAAchwE,KAK3C,QAASywE,GAAYxsE,GACjB,MAAOA,GAAIsK,QAAQ,QAAS,SAASvX,EAAG85E,GAAM,MAAOA,GAAGC,gBA7J5D,GAAI7U,GAAO7W,EAAS,cAEhB2rB,GADM3rB,EAAS,aACTA,EAAS,cACfkqB,EAAYlqB,EAAS,oBAAoBkqB,SAE7Cl5E,GAAOD,QAAUA,EAAU,GAAIm5E,EAE/B,IAAI3zE,GAAS,WACT,MAAOpF,OAAyB,mBAAVi3B,SAAyBA,UAG/Cp2B,GACAsuD,UAAU,EACVgrB,WAAY,KACZC,SAAU,KACVC,UAAW,KACXH,SAAU,GACVO,OAAQ,MACRC,eAGJ96E,GAAQmD,IAAM,SAASyG,GACnB,IAAK3I,EAAQqM,eAAe1D,GACxB,KAAM,IAAIzI,OAAM,uBAAyByI,EAE7C,OAAO3I,GAAQ2I,IAGnB5J,EAAQkD,IAAM,SAAS0G,EAAKC,GACxB,IAAK5I,EAAQqM,eAAe1D,GACxB,KAAM,IAAIzI,OAAM,uBAAyByI,EAE7C3I,GAAQ2I,GAAOC,GAGnB7J,EAAQmZ,IAAM,WACV,MAAO2sD,GAAKrB,WAAWxjE,IAE3BjB,EAAQ+6E,UAAY,SAASp3E,EAAMq3E,GAC/B,GAAI/5E,EAAQ65E,YAAYn3E,GACpB,MAAO1C,GAAQ65E,YAAYn3E,EAE/B,IAAIuT,GAAQvT,EAAKkL,MAAM,IACvBmsE,GAAYA,GAAa9jE,EAAMA,EAAM5U,OAAS,IAAM,EACpD,IAAIy1B,GAAmB,YAAbijD,EAA0B,IAAM,IACtCtmD,EAAOxd,EAAMA,EAAM5U,OAAS,EAChC,IAAiB,UAAb04E,GAAgC,KAAPjjD,EAAY,CACrC,GAAI6yB,GAAK,GAAIz9C,QAAO,IAAM6tE,EAAY,gBAAkBA,EAAY,IAAK,IACzEtmD,GAAOA,EAAKvc,QAAQyyC,EAAI,MAGtBl2B,GAAQA,GAAQsmD,IAAc9jE,EAAM5U,OAAS,IAC/CoyB,EAAOxd,EAAMA,EAAM5U,OAAS,GAChC,IAAI4V,GAAOjX,EAAQ+5E,EAAY,OAQ/B,OAPY,OAAR9iE,EACAA,EAAOjX,EAAQq5E,SACD,KAAPviD,IACPijD,EAAYjjD,EAAM,IAElB7f,GAA0B,KAAlBA,EAAKjB,OAAO,KACpBiB,GAAQ,KACLA,EAAO8iE,EAAYjjD,EAAMrD,EAAOt0B,KAAK+C,IAAI,WAGpDnD,EAAQi7E,aAAe,SAASt3E,EAAMu3E,GAClC,MAAOj6E,GAAQ65E,YAAYn3E,GAAQu3E,GAGvCl7E,EAAQm7E,YACRn7E,EAAQo7E,WAAa,SAAShsB,EAAYisB,GACtC,GAAIp7E,GAAQq7E,CACR1uE,OAAMvH,QAAQ+pD,KACdksB,EAAalsB,EAAW,GACxBA,EAAaA,EAAW,GAG5B,KACInvD,EAASgvD,EAASG,GACpB,MAAO1pD,IACT,GAAIzF,IAAWD,EAAQm7E,SAAS/rB,GAC5B,MAAOisB,IAAUA,EAAOp7E,EAO5B,IALKD,EAAQm7E,SAAS/rB,KAClBpvD,EAAQm7E,SAAS/rB,OAErBpvD,EAAQm7E,SAAS/rB,GAAY91C,KAAK+hE,KAE9Br7E,EAAQm7E,SAAS/rB,GAAY9sD,OAAS,GAA1C,CAGA,GAAIi5E,GAAY,WACZtsB,GAAUG,GAAa,SAASnvD,GAC5BD,EAAQ2qE,MAAM,eAAgBhnE,KAAMyrD,EAAYnvD,OAAQA,GACxD,IAAI23E,GAAY53E,EAAQm7E,SAAS/rB,EACjCpvD,GAAQm7E,SAAS/rB,GAAc,KAC/BwoB,EAAU11E,QAAQ,SAASm5E,GACvBA,GAAUA,EAAOp7E,OAK7B,KAAKD,EAAQmD,IAAI,YACb,MAAOo4E,IACXX,GAAI1D,WAAWl3E,EAAQ+6E,UAAU3rB,EAAYksB,GAAaC,KAE9D5B,GAAK,GAiDL35E,EAAQ25E,KAAOA,IAQfttB,IAAInsD,OAAO,2BAA2B,UAAU,UAAU,SAAS,gBAAgB,oBAAoB,6BAA6B,mCAAmC,wBAAwB,6BAA6B,cAAe,SAAS+uD,EAAUjvD,EAASC,GACvQ,YAEA,IAAImnC,GAAQ6nB,EAAS,gBACjB4Q,EAAY5Q,EAAS,oBACrBqc,EAAkBrc,EAAS,sBAAsBqc,gBACjDkQ,EAAuBvsB,EAAS,4BAA4BghB,cAC5D6B,EAAa7iB,EAAS,iBAAiB6iB,WACvCG,EAAkBhjB,EAAS,sBAAsBgjB,gBACjDjuE,EAASirD,EAAS,aAElBwsB,EAAe,SAAS/0C,GACxB,GAAIm/B,GAAQzlE,IACZA,MAAKsmC,OAASA,EAEd,GAAI4kC,GAAgBlrE,MACpB,GAAIo7E,GAAqBp7E,MACzB,GAAI6xE,GAAgB7xE,KAEpB,IAAIs7E,GAAc,SAASh2E,KACF4hC,SAASq0C,WAAar0C,SAASq0C,aAC5Cj1C,EAAO6gC,aAAejgC,SAASkgC,gBAAkB9gC,EAAO0kC,WAAa1kC,EAAO0kC,UAAUZ,gBAE1FnzC,OAAOuM,QACX8C,EAAO9C,SAGPwxC,EAAc1uC,EAAOqgC,SAAS6U,qBAClCx0C,GAAMo5B,YAAY4U,EAAa,QAASh1E,KAAKy7E,aAAa74C,KAAK5iC,KAAM,UACrEgnC,EAAMo5B,YAAY4U,EAAa,YAAah1E,KAAK8zE,YAAYlxC,KAAK5iC,KAAM,cACxEgnC,EAAMq7B,2BACF2S,EACA1uC,EAAOqgC,SAAS+U,YAAcp1C,EAAOqgC,SAAS+U,WAAWnlB,MACzDjwB,EAAOqgC,SAASgV,YAAcr1C,EAAOqgC,SAASgV,WAAWplB,MACzDjwB,EAAO0kC,WAAa1kC,EAAO0kC,UAAUZ,cACvC5lC,OAAOoL,UAAW,IAAK,IAAK,KAAM5vC,KAAM,gBAC1CgnC,EAAMw6B,sBAAsBl7B,EAAO1lC,UAAWZ,KAAK0rE,aAAa9oC,KAAK5iC,KAAM,eAC3EgnC,EAAM+5B,qBAAqBz6B,EAAO1lC,UAAWZ,KAAK2rE,YAAY/oC,KAAK5iC,KAAM,aAEzE,IAAI47E,GAAWt1C,EAAOqgC,SAAS0K,OAC/BrqC,GAAMo5B,YAAYwb,EAAU,YAAa57E,KAAKy7E,aAAa74C,KAAK5iC,KAAM,oBACtEgnC,EAAMo5B,YAAYwb,EAAU,QAAS57E,KAAKy7E,aAAa74C,KAAK5iC,KAAM,gBAClEgnC,EAAMo5B,YAAYwb,EAAU,WAAY57E,KAAKy7E,aAAa74C,KAAK5iC,KAAM,mBACrEgnC,EAAMo5B,YAAYwb,EAAU,YAAa57E,KAAKy7E,aAAa74C,KAAK5iC,KAAM,oBAEtEgnC,EAAMo5B,YAAY4U,EAAa,YAAasG,GAC5Ct0C,EAAMo5B,YAAYwb,EAAU,YAAaN,GACrC7b,EAAUnB,MAAQh4B,EAAOqgC,SAAS+U,aAClC10C,EAAMo5B,YAAY95B,EAAOqgC,SAAS+U,WAAWtpC,QAAS,YAAakpC,GACnEt0C,EAAMo5B,YAAY95B,EAAOqgC,SAASgV,WAAWvpC,QAAS,YAAakpC,IAGvEh1C,EAAOunB,GAAG,YAAa,SAASvoD,GAC5B,IAAImgE,EAAMjtB,QAASitB,EAAMoW,YAAepW,EAAM4Q,aAA9C,CAGA,GAAIyF,GAAYx1C,EAAOqgC,SAAS0G,wBAAwB/nE,EAAE4rB,EAAG5rB,EAAEulD,GAC3D7kB,EAAQM,EAAOsjC,QAAQhoC,UAAUqoC,WACjCtD,EAAWrgC,EAAOqgC,UAEjB3gC,EAAM+/B,WAAa//B,EAAM+1C,YAAYD,EAAUzP,IAAKyP,EAAUxP,QAC/D3F,EAAS2O,eAAe,WAExB3O,EAAS2O,eAAe,SAKpC,WACIt1E,KAAKy7E,aAAe,SAASl4E,EAAM+B,GAC/BtF,KAAKsmC,OAAOikC,MAAMhnE,EAAM,GAAImuE,GAAWpsE,EAAGtF,KAAKsmC,UAGnDtmC,KAAK8zE,YAAc,SAASvwE,EAAM+B,GAC9B,GAAIkyE,GAAYx3E,KAAKsmC,OAAOgxC,gBAAkBt3E,KAAKsmC,OAAOgxC,eAAeptC,SACpEstC,IAAcA,EAAUt1E,QAG7BlC,KAAKsmC,OAAOikC,MAAMhnE,EAAM,GAAImuE,GAAWpsE,EAAGtF,KAAKsmC,UAGnDtmC,KAAK0rE,aAAe,SAASnoE,EAAM+B,GAC/B,GAAIyqE,GAAa,GAAI2B,GAAWpsE,EAAGtF,KAAKsmC,OACxCypC,GAAWf,MAA4B,EAApBhvE,KAAKg8E,aACxBjM,EAAWzO,OAASh8D,EAAEg8D,OACtByO,EAAWxO,OAASj8D,EAAEi8D,OAEtBvhE,KAAKsmC,OAAOikC,MAAMhnE,EAAMwsE,IAG5B/vE,KAAK2rE,YAAc,SAAUpoE,EAAM+B,GAC/B,GAAIyqE,GAAa,GAAI2B,GAAWpsE,EAAGtF,KAAKsmC,OACxCypC,GAAWf,MAAQ,EACnBe,EAAWzO,OAASh8D,EAAEg8D,OACtByO,EAAWxO,OAASj8D,EAAEi8D,OACtBvhE,KAAKsmC,OAAOikC,MAAMhnE,EAAMwsE,IAG5B/vE,KAAKmtE,SAAW,SAAS30B,GACrBx4C,KAAKw4C,MAAQA,GAGjBx4C,KAAKitE,aAAe,SAASV,EAAI0P,GAC7Bj8E,KAAKkxB,EAAIq7C,EAAGr7C,EACZlxB,KAAK6qD,EAAI0hB,EAAG1hB,EAEZ7qD,KAAKoxE,gBAAiB,CACtB,IAAIzK,GAAW3mE,KAAKsmC,OAAOqgC,QACvBA,GAASC,wBACTD,EAASC,sBAAwB,KAErC,IAAI3+D,GAAOjI,KACP8zE,EAAc,SAASxuE,GACvB,GAAKA,EAAL,CACA,GAAIm6D,EAAUT,WAAa15D,EAAE+lC,OAASpjC,EAAKi0E,aACvC,MAAOj0E,GAAKi0E,cAEhBj0E,GAAKipB,EAAI5rB,EAAE87D,QACXn5D,EAAK4iD,EAAIvlD,EAAE+7D,QACX4a,GAAoBA,EAAiB32E,GACrC2C,EAAK8nE,WAAa,GAAI2B,GAAWpsE,EAAG2C,EAAKq+B,QACzCr+B,EAAKk0E,aAAc,IAGnBC,EAAe,SAAS92E,GACxBsuE,cAAcC,GACdwI,IACAp0E,EAAKA,EAAKuwC,MAAQ,QAAUvwC,EAAKA,EAAKuwC,MAAQ,OAAOlzC,GACrD2C,EAAKuwC,MAAQ,GACyB,MAAlCmuB,EAASC,wBACTD,EAASC,uBAAwB,EACjCD,EAASE,yBAEb5+D,EAAKmpE,gBAAiB,EACtBnpE,EAAKq0E,oBAAsBr0E,EAAKi0E,aAAe,KAC/C52E,GAAK2C,EAAKwzE,aAAa,UAAWn2E,IAGlC+2E,EAAoB,WACpBp0E,EAAKA,EAAKuwC,QAAUvwC,EAAKA,EAAKuwC,SAC9BvwC,EAAKk0E,aAAc,EAGvB,IAAI1c,EAAUlB,SAA+B,YAApBgO,EAAG/B,SAAS9xD,KACjC,MAAO1Q,YAAW,WAAYo0E,EAAa7P,IAG/CtkE,GAAKq0E,oBAAsBxI,EAC3B7rE,EAAKi0E,aAAel1C,EAAM25B,QAAQ3gE,KAAKsmC,OAAO1lC,UAAWkzE,EAAasI,EACtE,IAAIvI,GAAUluC,YAAY02C,EAAmB,KAEjDr8E,KAAKk8E,aAAe,KACpBl8E,KAAKu8E,kBAAoB,WACrB,GAAIrN,GAAO,SAAS5pE,GACZA,GAAKA,EAAEklE,UAA+B,eAAnBllE,EAAEklE,SAAS9xD,OAElC1Y,KAAKsmC,OAAO2xC,IAAI,oBAAqB/I,GACjC5pE,GAAKA,EAAEklE,UACPxjC,EAAMw5B,UAAUl7D,EAAEklE,YACxB5nC,KAAK5iC,KACPgI,YAAWknE,EAAM,IACjBlvE,KAAKsmC,OAAOunB,GAAG,oBAAqBqhB,MAEzC3uE,KAAK86E,EAAa54E,WAErBmB,EAAOq1E,cAAcoC,EAAa54E,UAAW,gBACzC+5E,aAActD,aAAc,GAC5BuD,WAAYvD,aAAezZ,EAAUxB,MAAQ,IAAM,GACnDye,aAAcxD,cAAc,GAC5ByD,aAAczD,aAAc,GAC5B0D,qBAAsB1D,cAAc,KAIxCt5E,EAAQy7E,aAAeA,IAGvBpvB,IAAInsD,OAAO,0BAA0B,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GAChG,YAEA,SAASg9E,GAAYv2C,GAEjBA,EAAOunB,GAAG,QAAS,SAASvoD,GACxB,GAAI0mD,GAAW1mD,EAAEmnE,sBACb7C,EAAUtjC,EAAOsjC,QACjBkT,EAAOlT,EAAQmT,UAAU/wB,EAASqgB,IAAKrgB,EAASsgB,OAAQ,EACxDwQ,KACIx3E,EAAEupE,cACFjF,EAAQoT,WAAWF,GAEnBlT,EAAQqT,WAAWH,GAEvBx3E,EAAE4pE,UAIV5oC,EAAOunB,GAAG,cAAe,SAASvoD,GAG9B,GAAoB,eAFDghC,EAAOqgC,SAASqK,aAAaE,UAAU5rE,GAEvB,CAC/B,GAAI+mE,GAAM/mE,EAAEmnE,sBAAsBJ,IAC9BzC,EAAUtjC,EAAOsjC,OACjBA,GAAQsT,aAAetT,EAAQsT,YAAY7Q,IAC3C/lC,EAAOsjC,QAAQuT,kBAAkB9Q,EAAK/mE,GACrCghC,EAAO6gC,aACR7gC,EAAO9C,QACXl+B,EAAE4pE,UAIV5oC,EAAOunB,GAAG,iBAAkB,SAASvoD,GAGjC,GAAoB,eAFDghC,EAAOqgC,SAASqK,aAAaE,UAAU5rE,GAEvB,CAC/B,GAAI+mE,GAAM/mE,EAAEmnE,sBAAsBJ,IAC9BzC,EAAUtjC,EAAOsjC,QACjBnmE,EAAOmmE,EAAQwT,uBAAuB/Q,GAAK,GAC3CrmC,EAAQviC,EAAKuiC,OAASviC,EAAK45E,UAE/B,IAAIr3C,EAAO,CACPqmC,EAAMrmC,EAAMgE,MAAMqiC,GAClB,IAAIyQ,GAAOlT,EAAQmT,UAAU1Q,EAAKzC,EAAQ0T,QAAQjR,GAAKnqE,OAAQ,EAE3D46E,GACAlT,EAAQoT,WAAWF,IAEnBlT,EAAQ2T,QAAQ,MAAOv3C,GACvBM,EAAOqgC,SAASkH,sBAAsBxB,IAAKrmC,EAAMgE,MAAMqiC,IAAKC,OAAQ,KAG5EhnE,EAAE4pE,UAKdtvE,EAAQi9E,YAAcA,IAItB5wB,IAAInsD,OAAO,2BAA2B,UAAU,UAAU,SAAS,eAAe,iBAAkB,SAAS+uD,EAAUjvD,EAASC,GAChI,YAEA,IAAI29E,GAAW3uB,EAAS,eACpB7nB,EAAQ6nB,EAAS,gBAEjB4uB,EAAa,SAASn3C,GACtBtmC,KAAK09E,QAAUp3C,EACftmC,KAAKid,OAASqpB,OAAQA,GACtBtmC,KAAK29E,aACL39E,KAAKqrE,kBAAkB/kC,EAAOmnB,YAGlC,WACIztD,KAAKqrE,kBAAoB,SAASuS,GAC9B59E,KAAK69E,sBAAsB79E,KAAK89E,iBAChC99E,KAAK89E,gBAAkBF,EACvB59E,KAAK+9E,mBAAmBH,EAAI,IAGhC59E,KAAKg+E,mBAAqB,SAASJ,GAC/B,GAAIthD,GAAIt8B,KAAK29E,SACb,IAAIrhD,EAAEA,EAAEp6B,OAAS,IAAM07E,EAAvB,CAGA,KAAOthD,EAAEA,EAAEp6B,OAAS,IAAMo6B,EAAEA,EAAEp6B,OAAS,IAAMlC,KAAK89E,iBAC9C99E,KAAK69E,sBAAsBvhD,EAAEA,EAAEp6B,OAAS,GAE5ClC,MAAK+9E,mBAAmBH,EAAI,KAGhC59E,KAAK+9E,mBAAqB,SAASH,EAAIhkE,GACnC,GAAKgkE,EAAL,CAEiB,kBAANA,IAAqBA,EAAGK,iBAC/BL,EAAGK,eAAiBL,EACxB,IAAI74E,GAAI/E,KAAK29E,UAAU37E,QAAQ47E,IACrB,GAAN74E,GACA/E,KAAK29E,UAAUnoE,OAAOzQ,EAAG,OAElB6K,IAAPgK,EACA5Z,KAAK29E,UAAUzkE,KAAK0kE,GAEpB59E,KAAK29E,UAAUnoE,OAAOoE,EAAK,EAAGgkE,IAExB,GAAN74E,GAAW64E,EAAGM,QACdN,EAAGM,OAAOl+E,KAAK09E,WAGvB19E,KAAK69E,sBAAwB,SAASD,GAClC,GAAI74E,GAAI/E,KAAK29E,UAAU37E,QAAQ47E,EAC/B,QAAU,GAAN74E,IAEJ/E,KAAK29E,UAAUnoE,OAAOzQ,EAAG,GACzB64E,EAAGO,QAAUP,EAAGO,OAAOn+E,KAAK09E,UACrB,IAGX19E,KAAKo+E,mBAAqB,WACtB,MAAOp+E,MAAK29E,UAAU39E,KAAK29E,UAAUz7E,OAAS,IAGlDlC,KAAKq+E,cAAgB,WACjB,GAAI56E,GAAOzD,KAAKid,MACZqpB,EAAS7iC,EAAK6iC,MAClB,OAAOtmC,MAAK29E,UAAU1kE,IAAI,SAASqjB,GAC/B,MAAOA,GAAE+hD,eAAiB/hD,EAAE+hD,cAAc/3C,EAAQ7iC,IAAS,KAC5D+gC,OAAOoL,SAASjsB,KAAK,MAG5B3jB,KAAKs+E,sBAAwB,SAAS/e,EAAQ5B,EAAWryB,EAAShmC,GAK9D,IAAK,GAJDi5E,GACAC,GAAU,EACV/wB,EAAWztD,KAAK09E,QAAQjwB,SAEnB1oD,EAAI/E,KAAK29E,UAAUz7E,OAAQ6C,QAChCw5E,EAAYv+E,KAAK29E,UAAU54E,GAAGk5E,eAC1Bj+E,KAAKid,MAAOsiD,EAAQ5B,EAAWryB,EAAShmC,KAEzBi5E,EAAU/lB,UAGzBgmB,EADqB,QAArBD,EAAU/lB,SAGA/K,EAASjyB,KAAK+iD,EAAU/lB,QAASx4D,KAAK09E,QAASa,EAAUjwD,KAAMhpB,GAEzEk5E,GAAWl5E,IAAgB,GAAXi6D,GACO,GAAvBgf,EAAUE,WAAoD,GAA/BF,EAAU/lB,QAAQimB,WAEjDz3C,EAAMw5B,UAAUl7D,GAEhBk5E,MAYR,MARKA,KAAsB,GAAXjf,IACZgf,GAAa/lB,QAAS,gBACtBgmB,EAAU/wB,EAASjyB,KAAK,eAAgBx7B,KAAK09E,QAAS/f,IAGtD6gB,GAAWx+E,KAAK09E,QAAQ/M,SACxB3wE,KAAK09E,QAAQ/M,QAAQ,mBAAoB4N,GAEtCC,GAGXx+E,KAAK0pE,aAAe,SAASpkE,EAAGi6D,EAAQj0B,GACpC,GAAIqyB,GAAY6f,EAAQ9f,gBAAgBpyB,EACxCtrC,MAAKs+E,sBAAsB/e,EAAQ5B,EAAWryB,EAAShmC,IAG3DtF,KAAK8oE,YAAc,SAASn3C,GACxB3xB,KAAKs+E,uBAAuB,EAAG3sD,MAGpCpxB,KAAKk9E,EAAWh7E,WAEnB7C,EAAQ69E,WAAaA,IAGrBxxB,IAAInsD,OAAO,aAAa,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACnF,YACA,IAAI6+E,GAAgB,SAASC,EAAIC,GAC7B,MAAOD,GAAGtS,IAAMuS,EAAGvS,KAAOsS,EAAGrS,OAASsS,EAAGtS,QAEzCuS,EAAQ,SAASC,EAAUC,EAAaC,EAAQC,GAChDj/E,KAAKgqC,OACDqiC,IAAKyS,EACLxS,OAAQyS,GAGZ/+E,KAAKiqC,KACDoiC,IAAK2S,EACL1S,OAAQ2S,KAIhB,WACIj/E,KAAKk/E,QAAU,SAASl5C,GACpB,MAAOhmC,MAAKgqC,MAAMqiC,MAAQrmC,EAAMgE,MAAMqiC,KAClCrsE,KAAKiqC,IAAIoiC,MAAQrmC,EAAMiE,IAAIoiC,KAC3BrsE,KAAKgqC,MAAMsiC,SAAWtmC,EAAMgE,MAAMsiC,QAClCtsE,KAAKiqC,IAAIqiC,SAAWtmC,EAAMiE,IAAIqiC,QAEtCtsE,KAAKiN,SAAW,WACZ,MAAQ,WAAajN,KAAKgqC,MAAMqiC,IAAM,IAAMrsE,KAAKgqC,MAAMsiC,OACnD,SAAWtsE,KAAKiqC,IAAIoiC,IAAM,IAAMrsE,KAAKiqC,IAAIqiC,OAAS,KAG1DtsE,KAAKgtB,SAAW,SAASq/C,EAAKC,GAC1B,MAAoC,IAA7BtsE,KAAKuN,QAAQ8+D,EAAKC,IAE7BtsE,KAAKm/E,aAAe,SAASn5C,GACzB,GAAI9V,GACA+Z,EAAMjE,EAAMiE,IACZD,EAAQhE,EAAMgE,KAGlB,OADA9Z,GAAMlwB,KAAKuN,QAAQ08B,EAAIoiC,IAAKpiC,EAAIqiC,QACrB,GAAPp8C,GACAA,EAAMlwB,KAAKuN,QAAQy8B,EAAMqiC,IAAKriC,EAAMsiC,QACzB,GAAPp8C,EACO,EACO,GAAPA,EACA,EAEA,IAEI,GAARA,GACC,GAERA,EAAMlwB,KAAKuN,QAAQy8B,EAAMqiC,IAAKriC,EAAMsiC,SACxB,GAARp8C,GACQ,EACM,GAAPA,EACA,GAEA,IAInBlwB,KAAK0tE,aAAe,SAAShtE,GACzB,MAAOV,MAAKuN,QAAQ7M,EAAE2rE,IAAK3rE,EAAE4rE,SAEjCtsE,KAAKo/E,cAAgB,SAASp5C,GAC1B,MAAyC,IAAlChmC,KAAK0tE,aAAa1nC,EAAMgE,QAA+C,GAAhChqC,KAAK0tE,aAAa1nC,EAAMiE,MAE1EjqC,KAAKq/E,WAAa,SAASr5C,GACvB,GAAI9V,GAAMlwB,KAAKm/E,aAAan5C,EAC5B,QAAgB,GAAR9V,GAAoB,GAAPA,GAAmB,GAAPA,GAErClwB,KAAKs/E,MAAQ,SAASjT,EAAKC,GACvB,MAAOtsE,MAAKiqC,IAAIoiC,KAAOA,GAAOrsE,KAAKiqC,IAAIqiC,QAAUA,GAErDtsE,KAAKu/E,QAAU,SAASlT,EAAKC,GACzB,MAAOtsE,MAAKgqC,MAAMqiC,KAAOA,GAAOrsE,KAAKgqC,MAAMsiC,QAAUA,GAEzDtsE,KAAKiyC,SAAW,SAASo6B,EAAKC,GACR,gBAAPD,IACPrsE,KAAKgqC,MAAMsiC,OAASD,EAAIC,OACxBtsE,KAAKgqC,MAAMqiC,IAAMA,EAAIA,MAErBrsE,KAAKgqC,MAAMqiC,IAAMA,EACjBrsE,KAAKgqC,MAAMsiC,OAASA,IAG5BtsE,KAAKkyC,OAAS,SAASm6B,EAAKC,GACN,gBAAPD,IACPrsE,KAAKiqC,IAAIqiC,OAASD,EAAIC,OACtBtsE,KAAKiqC,IAAIoiC,IAAMA,EAAIA,MAEnBrsE,KAAKiqC,IAAIoiC,IAAMA,EACfrsE,KAAKiqC,IAAIqiC,OAASA,IAG1BtsE,KAAKw/E,OAAS,SAASnT,EAAKC,GACxB,MAAiC,IAA7BtsE,KAAKuN,QAAQ8+D,EAAKC,MACdtsE,KAAKs/E,MAAMjT,EAAKC,KAAWtsE,KAAKu/E,QAAQlT,EAAKC,KAQzDtsE,KAAK+7E,YAAc,SAAS1P,EAAKC,GAC7B,MAAiC,IAA7BtsE,KAAKuN,QAAQ8+D,EAAKC,KACdtsE,KAAKs/E,MAAMjT,EAAKC,IAQ5BtsE,KAAKy/E,UAAY,SAASpT,EAAKC,GAC3B,MAAiC,IAA7BtsE,KAAKuN,QAAQ8+D,EAAKC,KACdtsE,KAAKu/E,QAAQlT,EAAKC,IAQ9BtsE,KAAKuN,QAAU,SAAS8+D,EAAKC,GACzB,MAAKtsE,MAAK2uE,eACFtC,IAAQrsE,KAAKgqC,MAAMqiC,IAKvBA,EAAMrsE,KAAKgqC,MAAMqiC,KACT,EAERA,EAAMrsE,KAAKiqC,IAAIoiC,IACR,EAEPrsE,KAAKgqC,MAAMqiC,MAAQA,EACZC,GAAUtsE,KAAKgqC,MAAMsiC,OAAS,GAAK,EAE1CtsE,KAAKiqC,IAAIoiC,MAAQA,EACVC,GAAUtsE,KAAKiqC,IAAIqiC,OAAS,EAAI,EAEpC,EAhBQA,EAAStsE,KAAKgqC,MAAMsiC,QAAU,EAAKA,EAAStsE,KAAKiqC,IAAIqiC,OAAS,EAAI,GAkBrFtsE,KAAK0/E,aAAe,SAASrT,EAAKC,GAC9B,MAAItsE,MAAKgqC,MAAMqiC,KAAOA,GAAOrsE,KAAKgqC,MAAMsiC,QAAUA,GACtC,EAEDtsE,KAAKuN,QAAQ8+D,EAAKC,IAGjCtsE,KAAK2/E,WAAa,SAAStT,EAAKC,GAC5B,MAAItsE,MAAKiqC,IAAIoiC,KAAOA,GAAOrsE,KAAKiqC,IAAIqiC,QAAUA,EACnC,EAEAtsE,KAAKuN,QAAQ8+D,EAAKC,IAGjCtsE,KAAK4/E,cAAgB,SAASvT,EAAKC,GAC/B,MAAItsE,MAAKiqC,IAAIoiC,KAAOA,GAAOrsE,KAAKiqC,IAAIqiC,QAAUA,EACnC,EACAtsE,KAAKgqC,MAAMqiC,KAAOA,GAAOrsE,KAAKgqC,MAAMsiC,QAAUA,GAC7C,EAEDtsE,KAAKuN,QAAQ8+D,EAAKC,IAGjCtsE,KAAK6/E,SAAW,SAASC,EAAUC,GAC/B,GAAI//E,KAAKiqC,IAAIoiC,IAAM0T,EACf,GAAI91C,IAAOoiC,IAAK0T,EAAU,EAAGzT,OAAQ,OACpC,IAAItsE,KAAKiqC,IAAIoiC,IAAMyT,EACpB,GAAI71C,IAAOoiC,IAAKyT,EAAUxT,OAAQ,EAEtC,IAAItsE,KAAKgqC,MAAMqiC,IAAM0T,EACjB,GAAI/1C,IAASqiC,IAAK0T,EAAU,EAAGzT,OAAQ,OACtC,IAAItsE,KAAKgqC,MAAMqiC,IAAMyT,EACtB,GAAI91C,IAASqiC,IAAKyT,EAAUxT,OAAQ,EAExC,OAAOuS,GAAMmB,WAAWh2C,GAAShqC,KAAKgqC,MAAOC,GAAOjqC,KAAKiqC,MAE7DjqC,KAAK0D,OAAS,SAAS2oE,EAAKC,GACxB,GAAIp8C,GAAMlwB,KAAKuN,QAAQ8+D,EAAKC,EAE5B,IAAW,GAAPp8C,EACA,MAAOlwB,KACN,KAAY,GAARkwB,EACL,GAAI8Z,IAASqiC,IAAKA,EAAKC,OAAQA,OAE/B,IAAIriC,IAAOoiC,IAAKA,EAAKC,OAAQA,EAEjC,OAAOuS,GAAMmB,WAAWh2C,GAAShqC,KAAKgqC,MAAOC,GAAOjqC,KAAKiqC,MAG7DjqC,KAAK+lE,QAAU,WACX,MAAQ/lE,MAAKgqC,MAAMqiC,MAAQrsE,KAAKiqC,IAAIoiC,KAAOrsE,KAAKgqC,MAAMsiC,SAAWtsE,KAAKiqC,IAAIqiC,QAE9EtsE,KAAK2uE,YAAc,WACf,MAAQ3uE,MAAKgqC,MAAMqiC,MAAQrsE,KAAKiqC,IAAIoiC,KAExCrsE,KAAK4gD,MAAQ,WACT,MAAOi+B,GAAMmB,WAAWhgF,KAAKgqC,MAAOhqC,KAAKiqC,MAE7CjqC,KAAKigF,aAAe,WAChB,MAAuB,IAAnBjgF,KAAKiqC,IAAIqiC,OACF,GAAIuS,GAAM7+E,KAAKgqC,MAAMqiC,IAAK,EAAG/0C,KAAKqP,IAAI3mC,KAAKgqC,MAAMqiC,IAAKrsE,KAAKiqC,IAAIoiC,IAAI,GAAI,GAEvE,GAAIwS,GAAM7+E,KAAKgqC,MAAMqiC,IAAK,EAAGrsE,KAAKiqC,IAAIoiC,IAAK,IAE1DrsE,KAAKkgF,cAAgB,SAAStW,GAC1B,GAAIuW,GAAiBvW,EAAQwW,yBAAyBpgF,KAAKgqC,OACvDq2C,EAAezW,EAAQwW,yBAAyBpgF,KAAKiqC,IAEzD,OAAO,IAAI40C,GACPsB,EAAe9T,IAAK8T,EAAe7T,OACnC+T,EAAahU,IAAKgU,EAAa/T,SAGvCtsE,KAAKsgF,OAAS,SAASjU,EAAKC,GACxBtsE,KAAKgqC,MAAMqiC,KAAOA,EAClBrsE,KAAKgqC,MAAMsiC,QAAUA,EACrBtsE,KAAKiqC,IAAIoiC,KAAOA,EAChBrsE,KAAKiqC,IAAIqiC,QAAUA,KAGxB/rE,KAAKs+E,EAAMp8E,WACdo8E,EAAMmB,WAAa,SAASh2C,EAAOC,GAC/B,MAAO,IAAI40C,GAAM70C,EAAMqiC,IAAKriC,EAAMsiC,OAAQriC,EAAIoiC,IAAKpiC,EAAIqiC,SAE3DuS,EAAMH,cAAgBA,EAEtBG,EAAMH,cAAgB,SAASC,EAAIC,GAC/B,MAAOD,GAAGtS,IAAMuS,EAAGvS,KAAOsS,EAAGrS,OAASsS,EAAGtS,QAI7C1sE,EAAQi/E,MAAQA,IAGhB5yB,IAAInsD,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAc,eAAe,wBAAwB,aAAc,SAAS+uD,EAAUjvD,EAASC,GACxJ,YAEA,IAAIm4D,GAAMnJ,EAAS,aACf6W,EAAO7W,EAAS,cAChBsoB,EAAetoB,EAAS,uBAAuBsoB,aAC/C0H,EAAQhwB,EAAS,WAAWgwB,MAC5B0B,EAAY,SAAS3W,GACrB5pE,KAAK4pE,QAAUA,EACf5pE,KAAK60D,IAAM+U,EAAQ4W,cAEnBxgF,KAAK+pE,iBACL/pE,KAAKygF,KAAOzgF,KAAK0gF,cAAgB1gF,KAAK60D,IAAI8rB,aAAa,EAAG,GAC1D3gF,KAAKisC,OAASjsC,KAAK4gF,gBAAkB5gF,KAAK60D,IAAI8rB,aAAa,EAAG,EAE9D,IAAI14E,GAAOjI,IACXA,MAAKygF,KAAK5yB,GAAG,SAAU,SAASvoD,GAC5B2C,EAAKsiE,MAAM,gBACNtiE,EAAK44E,UACN54E,EAAKsiE,MAAM,mBACVtiE,EAAK64E,4BAA8Bx7E,EAAEwyE,IAAIxL,QAAUhnE,EAAEmE,MAAM6iE,SAC5DrkE,EAAK84E,eAAiB,QAG9B/gF,KAAK4gF,gBAAgB/yB,GAAG,SAAU,WACzB5lD,EAAK44E,UACN54E,EAAKsiE,MAAM,uBAIvB,WAEIvS,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAK+lE,QAAU,WACX,MAAQ/lE,MAAK6gF,UACT7gF,KAAKisC,OAAOogC,KAAOrsE,KAAKygF,KAAKpU,KAC7BrsE,KAAKisC,OAAOqgC,QAAUtsE,KAAKygF,KAAKnU,QAGxCtsE,KAAK2uE,YAAc,WACf,OAAI3uE,KAAK+lE,WAIF/lE,KAAKiqE,WAAW0E,eAE3B3uE,KAAKghF,UAAY,WACb,MAAOhhF,MAAKygF,KAAKQ,eAErBjhF,KAAK4tE,mBAAqB,SAASvB,EAAKC,GACpCtsE,KAAKisC,OAAOwjC,YAAYpD,EAAKC,GAEzBtsE,KAAK6gF,WACL7gF,KAAK6gF,UAAW,EAChB7gF,KAAKuqE,MAAM,qBAGnBvqE,KAAKkhF,mBAAqB,WACtB,MAAIlhF,MAAK6gF,SACE7gF,KAAKmhF,mBAELnhF,KAAKisC,OAAOg1C,eAE3BjhF,KAAKmhF,iBAAmB,WACpB,MAAOnhF,MAAKygF,KAAKQ,eAErBjhF,KAAKohF,eAAiB,SAASC,GAC3B,GAAIrhF,KAAK6gF,SAEL,WADA7gF,MAAKshF,aAAathF,KAAKygF,KAAKpU,IAAKrsE,KAAKygF,KAAKnU,OAAS+U,EAIxD,IAAIp1C,GAASjsC,KAAKkhF,qBACdT,EAAOzgF,KAAKmhF,mBAEZI,EAAcvhF,KAAKuhF,aAElBA,IAAiC,IAAlBt1C,EAAOqgC,QACvBtsE,KAAK4tE,mBAAmB3hC,EAAOogC,IAAKpgC,EAAOqgC,OAAS+U,IAEpDE,GAA+B,IAAhBd,EAAKnU,SACpBtsE,KAAKwhF,eAAe,WAChBxhF,KAAKshF,aAAab,EAAKpU,IAAKoU,EAAKnU,OAAS+U,MAItDrhF,KAAKuhF,YAAc,WACf,GAAIt1C,GAASjsC,KAAKisC,OACdw0C,EAAOzgF,KAAKygF,IAChB,OAAQx0C,GAAOogC,IAAMoU,EAAKpU,KAAQpgC,EAAOogC,KAAOoU,EAAKpU,KAAOpgC,EAAOqgC,OAASmU,EAAKnU,QAErFtsE,KAAKiqE,SAAW,WACZ,GAAIh+B,GAASjsC,KAAKisC,OACdw0C,EAAOzgF,KAAKygF,IAEhB,OAAIzgF,MAAK+lE,UACE8Y,EAAMmB,WAAWS,EAAMA,GAE9BzgF,KAAKuhF,cACE1C,EAAMmB,WAAWS,EAAMx0C,GAGvB4yC,EAAMmB,WAAW/zC,EAAQw0C,IAGxCzgF,KAAK+pE,eAAiB,WACb/pE,KAAK6gF,WACN7gF,KAAK6gF,UAAW,EAChB7gF,KAAKuqE,MAAM,qBAGnBvqE,KAAKuoE,UAAY,WACb,GAAIwX,GAAU//E,KAAK60D,IAAIub,YAAc,CACrCpwE,MAAK4tE,mBAAmB,EAAG,GAC3B5tE,KAAKshF,aAAavB,EAAS//E,KAAK60D,IAAIyoB,QAAQyC,GAAS79E,SAEzDlC,KAAKkqE,SACLlqE,KAAKomE,kBAAoB,SAASpgC,EAAOi+B,GACjCA,GACAjkE,KAAK4tE,mBAAmB5nC,EAAMiE,IAAIoiC,IAAKrmC,EAAMiE,IAAIqiC,QACjDtsE,KAAKmxE,SAASnrC,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,UAE3CtsE,KAAK4tE,mBAAmB5nC,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,QACrDtsE,KAAKmxE,SAASnrC,EAAMiE,IAAIoiC,IAAKrmC,EAAMiE,IAAIqiC,SAEvCtsE,KAAKiqE,WAAWlE,YAChB/lE,KAAK6gF,UAAW,GACpB7gF,KAAK+gF,eAAiB,MAG1B/gF,KAAKwhF,eAAiB,SAASC,GAC3B,GAAIhB,GAAOzgF,KAAKygF,IACZzgF,MAAK6gF,UACL7gF,KAAK4tE,mBAAmB6S,EAAKpU,IAAKoU,EAAKnU,QAE3CmV,EAAMlhF,KAAKP,OAEfA,KAAKmxE,SAAW,SAAS9E,EAAKC,GAC1BtsE,KAAKwhF,eAAe,WAChBxhF,KAAKshF,aAAajV,EAAKC,MAG/BtsE,KAAKutE,iBAAmB,SAAS3zD,GAC7B5Z,KAAKwhF,eAAe,WAChBxhF,KAAKkyE,qBAAqBt4D,MAGlC5Z,KAAK0hD,OAAS,SAAS2qB,EAAKC,GACxBtsE,KAAK+pE,iBACL/pE,KAAKshF,aAAajV,EAAKC,IAE3BtsE,KAAK8sE,eAAiB,SAASlzD,GAC3B5Z,KAAK+pE,iBACL/pE,KAAKkyE,qBAAqBt4D,IAE9B5Z,KAAK0hF,SAAW,WACZ1hF,KAAKwhF,eAAexhF,KAAK2hF,eAE7B3hF,KAAK4hF,WAAa,WACd5hF,KAAKwhF,eAAexhF,KAAK6hF,iBAE7B7hF,KAAK8hF,YAAc,WACf9hF,KAAKwhF,eAAexhF,KAAK+hF,kBAE7B/hF,KAAKgiF,WAAa,WACdhiF,KAAKwhF,eAAexhF,KAAKiiF,iBAE7BjiF,KAAKkiF,gBAAkB,WACnBliF,KAAKwhF,eAAexhF,KAAKmiF,sBAE7BniF,KAAKoiF,cAAgB,WACjBpiF,KAAKwhF,eAAexhF,KAAKqiF,oBAE7BriF,KAAKsiF,cAAgB,WACjBtiF,KAAKwhF,eAAexhF,KAAKuiF,oBAE7BviF,KAAKwiF,gBAAkB,WACnBxiF,KAAKwhF,eAAexhF,KAAKyiF,sBAE7BziF,KAAK0iF,gBAAkB,WACnB1iF,KAAKwhF,eAAexhF,KAAK2iF,sBAE7B3iF,KAAK4iF,eAAiB,WAClB5iF,KAAKwhF,eAAexhF,KAAK6iF,qBAE7B7iF,KAAK0uE,aAAe,SAASrC,EAAKC,GAC9B,OAAqB,KAAVA,EAAuB,CAC9B,GAAI7nB,GAAS4nB,GAAOrsE,KAAKygF,IACzBpU,GAAM5nB,EAAO4nB,IACbC,EAAS7nB,EAAO6nB,OAEpB,MAAOtsE,MAAK4pE,QAAQ8E,aAAarC,EAAKC,IAE1CtsE,KAAK8iF,WAAa,WACd9iF,KAAKomE,kBAAkBpmE,KAAK0uE,iBAEhC1uE,KAAK+iF,YAAc,WACf,GAAIt+B,GAASzkD,KAAKghF,YACdh7C,EAAQhmC,KAAK4pE,QAAQoZ,cAAcv+B,EAAO4nB,IAAK5nB,EAAO6nB,OAC1DtsE,MAAKomE,kBAAkBpgC,IAG3BhmC,KAAK4uE,aAAe,SAASvC,EAAK4W,GAC9B,GACIC,GADAC,EAAyB,gBAAP9W,GAAkBA,EAAMrsE,KAAKygF,KAAKpU,IAGpD+W,EAAWpjF,KAAK4pE,QAAQyZ,YAAYF,EAOxC,OANIC,IACAD,EAAWC,EAASp5C,MAAMqiC,IAC1B6W,EAASE,EAASn5C,IAAIoiC,KAEtB6W,EAASC,GAEW,IAApBF,EACO,GAAIpE,GAAMsE,EAAU,EAAGD,EAAQljF,KAAK4pE,QAAQ0T,QAAQ4F,GAAQhhF,QAE5D,GAAI28E,GAAMsE,EAAU,EAAGD,EAAS,EAAG,IAElDljF,KAAKsjF,WAAa,WACdtjF,KAAKomE,kBAAkBpmE,KAAK4uE,iBAEhC5uE,KAAK2hF,aAAe,WAChB3hF,KAAKujF,cAAc,EAAG,IAE1BvjF,KAAK6hF,eAAiB,WAClB7hF,KAAKujF,aAAa,EAAG,IAEzBvjF,KAAKiiF,eAAiB,WAClB,GACInF,GADAr4B,EAASzkD,KAAKygF,KAAKQ,aAGvB,IAAInE,EAAO98E,KAAK4pE,QAAQmT,UAAUt4B,EAAO4nB,IAAK5nB,EAAO6nB,QAAS,GAC1DtsE,KAAKshF,aAAaxE,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,YAC1C,IAAsB,IAAlB7nB,EAAO6nB,OACV7nB,EAAO4nB,IAAM,GACbrsE,KAAKshF,aAAa78B,EAAO4nB,IAAM,EAAGrsE,KAAK60D,IAAIyoB,QAAQ74B,EAAO4nB,IAAM,GAAGnqE,YAGtE,CACD,GAAIshF,GAAUxjF,KAAK4pE,QAAQ6Z,YACvBzjF,MAAK4pE,QAAQ8Z,UAAUj/B,IAAWzkD,KAAK60D,IAAIyoB,QAAQ74B,EAAO4nB,KAAKx1D,MAAM4tC,EAAO6nB,OAAOkX,EAAS/+B,EAAO6nB,QAAQ79D,MAAM,KAAKvM,OAAO,GAAKshF,EAClIxjF,KAAKujF,aAAa,GAAIC,GAEtBxjF,KAAKujF,aAAa,GAAI,KAGlCvjF,KAAK+hF,gBAAkB,WACnB,GACIjF,GADAr4B,EAASzkD,KAAKygF,KAAKQ,aAEvB,IAAInE,EAAO98E,KAAK4pE,QAAQmT,UAAUt4B,EAAO4nB,IAAK5nB,EAAO6nB,OAAQ,GACzDtsE,KAAKshF,aAAaxE,EAAK7yC,IAAIoiC,IAAKyQ,EAAK7yC,IAAIqiC,YAExC,IAAItsE,KAAKygF,KAAKnU,QAAUtsE,KAAK60D,IAAIyoB,QAAQt9E,KAAKygF,KAAKpU,KAAKnqE,OACrDlC,KAAKygF,KAAKpU,IAAMrsE,KAAK60D,IAAIub,YAAc,GACvCpwE,KAAKshF,aAAathF,KAAKygF,KAAKpU,IAAM,EAAG,OAGxC,CACD,GAAImX,GAAUxjF,KAAK4pE,QAAQ6Z,aACvBh/B,EAASzkD,KAAKygF,IACdzgF,MAAK4pE,QAAQ8Z,UAAUj/B,IAAWzkD,KAAK60D,IAAIyoB,QAAQ74B,EAAO4nB,KAAKx1D,MAAM4tC,EAAO6nB,OAAQ7nB,EAAO6nB,OAAOkX,GAAS/0E,MAAM,KAAKvM,OAAO,GAAKshF,EAClIxjF,KAAKujF,aAAa,EAAGC,GAErBxjF,KAAKujF,aAAa,EAAG,KAGjCvjF,KAAKmiF,oBAAsB,WACvB,GAAI9V,GAAMrsE,KAAKygF,KAAKpU,IAChBC,EAAStsE,KAAKygF,KAAKnU,OACnB+D,EAAYrwE,KAAK4pE,QAAQ4G,oBAAoBnE,EAAKC,GAClDqX,EAAsB3jF,KAAK4pE,QAAQga,yBAAyBvT,EAAW,GACvEwT,EAAe7jF,KAAK4pE,QAAQka,eAC5BzX,EAAK,KAAMsX,EAAoBtX,IAC/BsX,EAAoBrX,QAGpByX,EAAeF,EAAal2E,MAAM,OAClCo2E,GAAa,GAAG7hF,QAAUoqE,GAAWtsE,KAAK4pE,QAAQoa,0BAClDL,EAAoBrX,QAAUyX,EAAa,GAAG7hF,QAClDlC,KAAKkyE,qBAAqByR,IAE9B3jF,KAAKqiF,kBAAoB,WACrB,GAAI5B,GAAOzgF,KAAKygF,KACZwD,EAAUjkF,KAAK4pE,QAAQsa,iCAAiCzD,EAAKpU,IAAKoU,EAAKnU,OAC3E,IAAItsE,KAAKygF,KAAKnU,QAAU2X,EAAQ3X,OAAQ,CACpC,GAAIxzB,GAAO94C,KAAK4pE,QAAQ0T,QAAQ2G,EAAQ5X,IACxC,IAAI4X,EAAQ3X,QAAUxzB,EAAK52C,OAAQ,CAC/B,GAAIiiF,GAAUrrC,EAAKhgB,OAAO,OACtBqrD,GAAU,IACVF,EAAQ3X,OAAS6X,IAI7BnkF,KAAKshF,aAAa2C,EAAQ5X,IAAK4X,EAAQ3X,SAE3CtsE,KAAKuiF,kBAAoB,WACrB,GAAIlW,GAAMrsE,KAAK60D,IAAIub,YAAc,EAC7B9D,EAAStsE,KAAK60D,IAAIyoB,QAAQjR,GAAKnqE,MACnClC,MAAKshF,aAAajV,EAAKC,IAE3BtsE,KAAKyiF,oBAAsB,WACvBziF,KAAKshF,aAAa,EAAG,IAEzBthF,KAAKokF,wBAA0B,WAC3B,GAAI/X,GAAMrsE,KAAKygF,KAAKpU,IAChBC,EAAStsE,KAAKygF,KAAKnU,OACnBxzB,EAAO94C,KAAK60D,IAAIyoB,QAAQjR,GACxBgY,EAAgBvrC,EAAKjF,UAAUy4B,EAGnCtsE,MAAK4pE,QAAQ0a,WAAWtxD,UAAY,EACpChzB,KAAK4pE,QAAQ2a,QAAQvxD,UAAY,CACjC,IAAI8pD,GAAO98E,KAAK4pE,QAAQmT,UAAU1Q,EAAKC,EAAQ,EAC/C,OAAIwQ,OACA98E,MAAKshF,aAAaxE,EAAK7yC,IAAIoiC,IAAKyQ,EAAK7yC,IAAIqiC,SAGjCtsE,KAAK4pE,QAAQ0a,WAAW9oD,KAAK6oD,KACrC/X,GAAUtsE,KAAK4pE,QAAQ0a,WAAWtxD,UAClChzB,KAAK4pE,QAAQ0a,WAAWtxD,UAAY,EACpCqxD,EAAgBvrC,EAAKjF,UAAUy4B,IAE/BA,GAAUxzB,EAAK52C,QACflC,KAAKshF,aAAajV,EAAKvzB,EAAK52C,QAC5BlC,KAAK+hF,uBACD1V,EAAMrsE,KAAK60D,IAAIub,YAAc,GAC7BpwE,KAAK2iF,yBAGD3iF,KAAK4pE,QAAQ2a,QAAQ/oD,KAAK6oD,KAClC/X,GAAUtsE,KAAK4pE,QAAQ2a,QAAQvxD,UAC/BhzB,KAAK4pE,QAAQ2a,QAAQvxD,UAAY,OAGrChzB,MAAKshF,aAAajV,EAAKC,MAE3BtsE,KAAKwkF,uBAAyB,WAC1B,GAEI1H,GAFAzQ,EAAMrsE,KAAKygF,KAAKpU,IAChBC,EAAStsE,KAAKygF,KAAKnU,MAEvB,IAAIwQ,EAAO98E,KAAK4pE,QAAQmT,UAAU1Q,EAAKC,GAAS,GAE5C,WADAtsE,MAAKshF,aAAaxE,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,OAIjD,IAAI7+D,GAAMzN,KAAK4pE,QAAQ6a,gBAAgBpY,EAAKC,GAAS,EAC1C,OAAP7+D,IACAA,EAAMzN,KAAK60D,IAAIyoB,QAAQjR,GAAKx4B,UAAU,EAAGy4B,GAG7C,IAAIoY,GAAehf,EAAK1B,cAAcv2D,EAStC,IAPAzN,KAAK4pE,QAAQ0a,WAAWtxD,UAAY,EACpChzB,KAAK4pE,QAAQ2a,QAAQvxD,UAAY,EACrBhzB,KAAK4pE,QAAQ0a,WAAW9oD,KAAKkpD,KACrCpY,GAAUtsE,KAAK4pE,QAAQ0a,WAAWtxD,UAClC0xD,EAAeA,EAAa7tE,MAAM7W,KAAK4pE,QAAQ0a,WAAWtxD,WAC1DhzB,KAAK4pE,QAAQ0a,WAAWtxD,UAAY,GAEpCs5C,GAAU,EAKV,MAJAtsE,MAAKshF,aAAajV,EAAK,GACvBrsE,KAAKiiF,sBACD5V,EAAM,GACNrsE,KAAK6iF,qBAGD7iF,MAAK4pE,QAAQ2a,QAAQ/oD,KAAKkpD,KAClCpY,GAAUtsE,KAAK4pE,QAAQ2a,QAAQvxD,UAC/BhzB,KAAK4pE,QAAQ2a,QAAQvxD,UAAY,GAGrChzB,KAAKshF,aAAajV,EAAKC,IAG3BtsE,KAAK2kF,mBAAqB,SAASN,GAC/B,GAAsB3yD,GAAXvd,EAAQ,EACfywE,EAAe,KACfL,EAAUvkF,KAAK4pE,QAAQ2a,OAG3B,IADAA,EAAQvxD,UAAY,EACRhzB,KAAK4pE,QAAQ2a,QAAQ/oD,KAAK6oD,GAClClwE,EAAQnU,KAAK4pE,QAAQ2a,QAAQvxD,cAC1B,CACH,MAAQtB,EAAK2yD,EAAclwE,KAAWywE,EAAa/1E,KAAK6iB,IACpDvd,GAEJ,IAAIA,EAAQ,EAEP,IADDowE,EAAQvxD,UAAY,GACXtB,EAAK2yD,EAAclwE,MAAYowE,EAAQ11E,KAAK6iB,IAGjD,GAFA6yD,EAAQvxD,UAAY,EACpB7e,IACIywE,EAAa/1E,KAAK6iB,GAAK,CACvB,GAAIvd,EAAQ,EAAG,CACXA,GACA,OAEA,MAAQud,EAAK2yD,EAAclwE,KAAWywE,EAAa/1E,KAAK6iB,IACpDvd,GACJ,IAAIA,EAAQ,EACR,OAQxB,MAFAowE,GAAQvxD,UAAY,EAEb7e,GAGXnU,KAAK6kF,yBAA2B,WAC5B,GAAIxY,GAAMrsE,KAAKygF,KAAKpU,IAChBC,EAAStsE,KAAKygF,KAAKnU,OACnBxzB,EAAO94C,KAAK60D,IAAIyoB,QAAQjR,GACxBgY,EAAgBvrC,EAAKjF,UAAUy4B,GAE/BwQ,EAAO98E,KAAK4pE,QAAQmT,UAAU1Q,EAAKC,EAAQ,EAC/C,IAAIwQ,EACA,MAAO98E,MAAKshF,aAAaxE,EAAK7yC,IAAIoiC,IAAKyQ,EAAK7yC,IAAIqiC,OAEpD,IAAIA,GAAUxzB,EAAK52C,OAAQ,CACvB,GAAI6D,GAAI/F,KAAK60D,IAAIub,WACjB,IACI/D,IACAgY,EAAgBrkF,KAAK60D,IAAIyoB,QAAQjR,SAC5BA,EAAMtmE,GAAK,QAAQ8I,KAAKw1E,GAE5B,QAAOx1E,KAAKw1E,KACbA,EAAgB,IACpB/X,EAAS,EAGb,GAAIn4D,GAAQnU,KAAK2kF,mBAAmBN,EAEpCrkF,MAAKshF,aAAajV,EAAKC,EAASn4D,IAGpCnU,KAAK8kF,wBAA0B,WAC3B,GAGIhI,GAHAzQ,EAAMrsE,KAAKygF,KAAKpU,IAChBC,EAAStsE,KAAKygF,KAAKnU,MAGvB,IAAIwQ,EAAO98E,KAAK4pE,QAAQmT,UAAU1Q,EAAKC,GAAS,GAC5C,MAAOtsE,MAAKshF,aAAaxE,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,OAExD,IAAIxzB,GAAO94C,KAAK4pE,QAAQ0T,QAAQjR,GAAKx4B,UAAU,EAAGy4B,EAClD,IAAe,IAAXA,EAAc,CACd,GACID,IACAvzB,EAAO94C,KAAK60D,IAAIyoB,QAAQjR,SACnBA,EAAM,GAAK,QAAQx9D,KAAKiqC,GAEjCwzB,GAASxzB,EAAK52C,OACT,OAAO2M,KAAKiqC,KACbA,EAAO,IAGf,GAAI4rC,GAAehf,EAAK1B,cAAclrB,GAClC3kC,EAAQnU,KAAK2kF,mBAAmBD,EAEpC,OAAO1kF,MAAKshF,aAAajV,EAAKC,EAASn4D,IAG3CnU,KAAK2iF,oBAAsB,WACnB3iF,KAAK4pE,QAAQmb,iBACb/kF,KAAKokF,0BAELpkF,KAAK6kF,4BAGb7kF,KAAK6iF,mBAAqB,WAClB7iF,KAAK4pE,QAAQmb,iBACb/kF,KAAKwkF,yBAELxkF,KAAK8kF,2BAEb9kF,KAAKujF,aAAe,SAASyB,EAAM11C,GAC/B,GAAI21C,GAAYjlF,KAAK4pE,QAAQwW,yBACzBpgF,KAAKygF,KAAKpU,IACVrsE,KAAKygF,KAAKnU,OAGA,KAAVh9B,IACItvC,KAAK+gF,eACLkE,EAAU3Y,OAAStsE,KAAK+gF,eAExB/gF,KAAK+gF,eAAiBkE,EAAU3Y,OAGxC,IAAI4Y,GAASllF,KAAK4pE,QAAQga,yBAAyBqB,EAAU5Y,IAAM2Y,EAAMC,EAAU3Y,OAEtE,KAAT0Y,GAAwB,IAAV11C,GAAe41C,EAAO7Y,MAAQrsE,KAAKygF,KAAKpU,KAAO6Y,EAAO5Y,SAAWtsE,KAAKygF,KAAKnU,QACrFtsE,KAAK4pE,QAAQub,aAAenlF,KAAK4pE,QAAQub,YAAYD,EAAO7Y,OACxD6Y,EAAO7Y,IAAM,GAAK2Y,EAAO,IACzBE,EAAO7Y,MAGnBrsE,KAAKshF,aAAa4D,EAAO7Y,IAAK6Y,EAAO5Y,OAASh9B,EAAiB,IAAVA,IAEzDtvC,KAAKkyE,qBAAuB,SAASlmB,GACjChsD,KAAKshF,aAAat1B,EAASqgB,IAAKrgB,EAASsgB,SAE7CtsE,KAAKshF,aAAe,SAASjV,EAAKC,EAAQ8Y,GACtC,GAAItI,GAAO98E,KAAK4pE,QAAQmT,UAAU1Q,EAAKC,EAAQ,EAC3CwQ,KACAzQ,EAAMyQ,EAAK9yC,MAAMqiC,IACjBC,EAASwQ,EAAK9yC,MAAMsiC,QAGxBtsE,KAAK8gF,4BAA6B,EAClC9gF,KAAKygF,KAAKhR,YAAYpD,EAAKC,GAC3BtsE,KAAK8gF,4BAA6B,EAE7BsE,IACDplF,KAAK+gF,eAAiB,OAE9B/gF,KAAKqlF,mBAAqB,SAAShZ,EAAKC,EAAQ8Y,GAC5C,GAAIxrE,GAAM5Z,KAAK4pE,QAAQga,yBAAyBvX,EAAKC,EACrDtsE,MAAKshF,aAAa1nE,EAAIyyD,IAAKzyD,EAAI0yD,OAAQ8Y,IAE3CplF,KAAKm+E,OAAS,WACVn+E,KAAKygF,KAAKtC,SACVn+E,KAAKisC,OAAOkyC,SACZn+E,KAAK4pE,QAAU5pE,KAAK60D,IAAM,MAG9B70D,KAAKi0E,kBAAoB,SAASjuC,GAC9BhmC,KAAKomE,kBAAkBpgC,EAAOA,EAAMye,QAAUze,EAAMgE,OACpDhqC,KAAK+gF,eAAiB/6C,EAAMs/C,eAAiBtlF,KAAK+gF,gBAGtD/gF,KAAKszE,gBAAkB,SAASttC,GAC5B,GAAIvgC,GAAIzF,KAAKiqE,UAYb,OAXIjkC,IACAA,EAAMgE,MAAMsiC,OAAS7mE,EAAEukC,MAAMsiC,OAC7BtmC,EAAMgE,MAAMqiC,IAAM5mE,EAAEukC,MAAMqiC,IAC1BrmC,EAAMiE,IAAIqiC,OAAS7mE,EAAEwkC,IAAIqiC,OACzBtmC,EAAMiE,IAAIoiC,IAAM5mE,EAAEwkC,IAAIoiC,KAEtBrmC,EAAQvgC,EAGZugC,EAAMye,OAASzkD,KAAKuhF,cAAgBv7C,EAAMgE,MAAQhE,EAAMiE,IACxDjE,EAAMs/C,cAAgBtlF,KAAK+gF,eACpB/6C,GAEXhmC,KAAKulF,oBAAsB,SAASlxC,GAChC,GAAIrK,GAAQhqC,KAAKghF,WACjB,KACI3sC,EAAKr0C,KACL,IAAIiqC,GAAMjqC,KAAKghF,WACf,OAAOnC,GAAMmB,WAAWh2C,EAAMC,GAChC,MAAM3kC,GACJ,MAAOu5E,GAAMmB,WAAWh2C,EAAMA,GAChC,QACEhqC,KAAKkyE,qBAAqBloC,KAIlChqC,KAAK6wB,OAAS,WACV,GAAI7wB,KAAK0xC,WACL,GAAIjuC,GAAOzD,KAAKwlF,OAAOvsE,IAAI,SAASxT,GAChC,GAAIggF,GAAKhgF,EAAEm7C,OAEX,OADA6kC,GAAGlE,YAAc97E,EAAEg/C,QAAUh/C,EAAEukC,MACxBy7C,QAER,CACH,GAAIhiF,GAAOzD,KAAKiqE,UAChBxmE,GAAK89E,YAAcvhF,KAAKuhF,cAE5B,MAAO99E,IAGXzD,KAAK0lF,SAAW,SAASjiF,GACrB,OAAkBmM,IAAdnM,EAAKumC,MAAoB,CACzB,GAAIhqC,KAAK2lF,UAAW,CAChB3lF,KAAK4lF,cAAcniF,EAAK,GACxB,KAAK,GAAIsB,GAAItB,EAAKvB,OAAQ6C,KAAO,CAC7B,GAAIU,GAAIo5E,EAAMmB,WAAWv8E,EAAKsB,GAAGilC,MAAOvmC,EAAKsB,GAAGklC,IAC5CxmC,GAAKsB,GAAGw8E,cACR97E,EAAEg/C,OAASh/C,EAAEukC,OACjBhqC,KAAKuxC,SAAS9rC,GAAG,GAErB,OAEAhC,EAAOA,EAAK,GAEhBzD,KAAK2lF,WACL3lF,KAAK4lF,cAAcniF,GACvBzD,KAAKomE,kBAAkB3iE,EAAMA,EAAK89E,cAGtCvhF,KAAKk/E,QAAU,SAASz7E,GACpB,IAAKA,EAAKvB,QAAUlC,KAAK0xC,aAAejuC,EAAKvB,QAAUlC,KAAK0xC,WACxD,OAAO,CACX,KAAKjuC,EAAKvB,SAAWlC,KAAKwlF,OACtB,MAAOxlF,MAAKiqE,WAAWiV,QAAQz7E,EAEnC,KAAK,GAAIsB,GAAI/E,KAAKwlF,OAAOtjF,OAAQ6C,KAC7B,IAAK/E,KAAKwlF,OAAOzgF,GAAGm6E,QAAQz7E,EAAKsB,IAC7B,OAAO,CAEf,QAAO,KAGZxE,KAAKggF,EAAU99E,WAElB7C,EAAQ2gF,UAAYA,IAGpBt0B,IAAInsD,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAe,SAAS+uD,EAAUjvD,EAASC,GACpG,YAEA,IAAI+D,GAASirD,EAAS,YAClBg3B,EAAkB,IAClBC,EAAY,SAASntE,GACrB3Y,KAAK+lF,OAASptE,EAEd3Y,KAAKgmF,WACLhmF,KAAKimF,gBACL,KAAK,GAAIz8E,KAAOxJ,MAAK+lF,OAAQ,CAQzB,IAAK,GAPDvtC,GAAQx4C,KAAK+lF,OAAOv8E,GACpB08E,KACAC,EAAa,EACbC,EAAUpmF,KAAKimF,cAAcz8E,IAAQ68E,aAAc,QACnD5xD,EAAO,IAEP6xD,KACKvhF,EAAI,EAAGA,EAAIyzC,EAAMt2C,OAAQ6C,IAAK,CACnC,GAAI0P,GAAO+jC,EAAMzzC,EAKjB,IAJI0P,EAAK4xE,eACLD,EAAQC,aAAe5xE,EAAK4xE,cAC5B5xE,EAAK8xE,kBACL9xD,EAAO,MACO,MAAdhgB,EAAKxF,MAAT,CAGIwF,EAAKxF,gBAAiBlC,UACtB0H,EAAKxF,MAAQwF,EAAKxF,MAAMhC,WAAW4J,MAAM,GAAI,GACjD,IAAI2vE,GAAgB/xE,EAAKxF,MACrBw3E,EAAa,GAAI15E,QAAO,OAASy5E,EAAgB,UAAUhrD,KAAK,KAAKt5B,OAAS,CAC9EsK,OAAMvH,QAAQwP,EAAKmjC,OACM,GAArBnjC,EAAKmjC,MAAM11C,QAA6B,GAAdukF,EAC1BhyE,EAAKmjC,MAAQnjC,EAAKmjC,MAAM,GACjB6uC,EAAa,GAAKhyE,EAAKmjC,MAAM11C,QACpClC,KAAKm4E,YAAY,qDACb1jE,KAAMA,EACNiyE,WAAYD,EAAa,IAE7BhyE,EAAKmjC,MAAQnjC,EAAKmjC,MAAM,KAExBnjC,EAAKkyE,WAAalyE,EAAKmjC,MACvBnjC,EAAKmjC,MAAQ,KACbnjC,EAAKmyE,QAAU5mF,KAAK6mF,cAEI,kBAAdpyE,GAAKmjC,OAAwBnjC,EAAKmyE,UAE5CnyE,EAAKmyE,QADLH,EAAa,EACEzmF,KAAK8mF,YAELryE,EAAKmjC,OAGxB6uC,EAAa,IACT,OAAO53E,KAAK4F,EAAKxF,OACjBu3E,EAAgB/xE,EAAKxF,MAAM8I,QAAQ,cAAe,SAASpK,EAAO6mB,GAC9D,MAAO,MAAQnC,SAASmC,EAAO,IAAM2xD,EAAa,MAGtDM,EAAa,EACbD,EAAgBxmF,KAAK+mF,sBAAsBtyE,EAAKxF,QAE/CwF,EAAKuyE,YAAmC,gBAAdvyE,GAAKmjC,OAChC0uC,EAAeptE,KAAKzE,IAG5B2xE,EAAQD,GAAcphF,EACtBohF,GAAcM,EAEdP,EAAYhtE,KAAKstE,GACZ/xE,EAAKmyE,UACNnyE,EAAKmyE,QAAU,OAGlBV,EAAYhkF,SACbkkF,EAAQ,GAAK,EACbF,EAAYhtE,KAAK,MAGrBotE,EAAexkF,QAAQ,SAAS2S,GAC5BA,EAAKuyE,WAAahnF,KAAKinF,qBAAqBxyE,EAAKxF,MAAOwlB,IACzDz0B,MAEHA,KAAKgmF,QAAQx8E,GAAO,GAAIuD,QAAO,IAAMm5E,EAAYviE,KAAK,OAAS,QAAS8Q,MAIhF,WACIz0B,KAAKknF,kBAAoB,SAAS1mF,GAC9BqlF,EAAsB,EAAJrlF,GAGtBR,KAAK8mF,YAAc,SAASr5E,GACxB,GAAI05E,GAASnnF,KAAKgnF,WAAWxrD,KAAK/tB,GAAKoJ,MAAM,GACzCwC,EAAQrZ,KAAK43C,MAAM3mC,MAAMjR,KAAMmnF,EACnC,IAAqB,gBAAV9tE,GACP,QAASX,KAAMW,EAAO5P,MAAOgE,GAGjC,KAAK,GADD25E,MACKriF,EAAI,EAAGgB,EAAIsT,EAAMnX,OAAQ6C,EAAIgB,EAAGhB,IACjCoiF,EAAOpiF,KACPqiF,EAAOA,EAAOllF,SACVwW,KAAMW,EAAMtU,GACZ0E,MAAO09E,EAAOpiF,IAG1B,OAAOqiF,IAGXpnF,KAAK6mF,aAAe,SAASp5E,GACzB,IAAKA,EACD,QACJ,IAAI05E,GAASnnF,KAAKgnF,WAAWxrD,KAAK/tB,EAClC,KAAK05E,EACD,MAAO,MAGX,KAAK,GAFDC,MACA/tE,EAAQrZ,KAAK2mF,WACR5hF,EAAI,EAAGgB,EAAIsT,EAAMnX,OAAQ6C,EAAIgB,EAAGhB,IACjCoiF,EAAOpiF,EAAI,KACXqiF,EAAOA,EAAOllF,SACVwW,KAAMW,EAAMtU,GACZ0E,MAAO09E,EAAOpiF,EAAI,IAG9B,OAAOqiF,IAGXpnF,KAAK+mF,sBAAwB,SAASjS,GAKlC,MAJQA,GAAI/8D,QACR,0CACA,SAASmZ,EAAG25B,GAAI,MAAOA,GAAI,MAAQ35B,KAK3ClxB,KAAKinF,qBAAuB,SAASnS,EAAKrgD,GACtC,IAA2B,GAAvBqgD,EAAI9yE,QAAQ,OAAc,CAC1B,GAAI81C,GAAQ,EACRuvC,GAAY,EACZC,IACJxS,GAAI/8D,QAAQ,uCAAwC,SAChDvX,EAAGg8B,EAAK+qD,EAAWC,EAAYC,EAAQtzE,GAmBvC,MAjBIkzE,GACAA,EAAsB,KAAVI,EACLA,EACPJ,GAAY,EACLG,GACH1vC,GAASwvC,EAAYxvC,QACrBwvC,EAAYr9C,IAAM91B,EAAM,EACxBmzE,EAAYxvC,OAAS,GAEzBA,KACOyvC,IACPzvC,IACwB,GAApByvC,EAAUrlF,SACVolF,EAAYxvC,MAAQA,EACpBwvC,EAAYt9C,MAAQ71B,IAGrB3T,IAGY,MAAnB8mF,EAAYr9C,KAAe,QAAQp7B,KAAKimE,EAAI78C,OAAOqvD,EAAYr9C,QAC/D6qC,EAAMA,EAAIjhC,UAAU,EAAGyzC,EAAYt9C,OAAS8qC,EAAI78C,OAAOqvD,EAAYr9C,MAK3E,MAHqB,KAAjB6qC,EAAI9iD,OAAO,KAAW8iD,EAAM,IAAMA,GACJ,KAA9BA,EAAI9iD,OAAO8iD,EAAI5yE,OAAS,KAAW4yE,GAAO,KAEvC,GAAI/nE,QAAO+nE,GAAMrgD,GAAM,IAAI1c,QAAQ,IAAK,MAEnD/X,KAAK0nF,cAAgB,SAAS5uC,EAAM6uC,GAChC,GAAIA,GAAmC,gBAAdA,GAAwB,CAC7C,GAAI7vC,GAAQ6vC,EAAW9wE,MAAM,EAC7B8wE,GAAa7vC,EAAM,GACA,SAAf6vC,IACA7vC,EAAM3a,QACNwqD,EAAa7vC,EAAM3a,aAGvB,IAAI2a,KAER,IAAI8vC,GAAeD,GAAc,QAC7BnvC,EAAQx4C,KAAK+lF,OAAO6B,EACnBpvC,KACDovC,EAAe,QACfpvC,EAAQx4C,KAAK+lF,OAAO6B,GAExB,IAAIxB,GAAUpmF,KAAKimF,cAAc2B,GAC7Bp9B,EAAKxqD,KAAKgmF,QAAQ4B,EACtBp9B,GAAGx3B,UAAY,CAQf,KANA,GAAIrlB,GAAOy5E,KACPp0D,EAAY,EACZ60D,EAAgB,EAEhBjwC,GAASl/B,KAAM,KAAMjP,MAAO,IAEzBkE,EAAQ68C,EAAGhvB,KAAKsd,IAAO,CAC1B,GAAIpgC,GAAO0tE,EAAQC,aACf5xE,EAAO,KACPhL,EAAQkE,EAAM,GACdwG,EAAQq2C,EAAGx3B,SAEf,IAAI7e,EAAQ1K,EAAMvH,OAAS8wB,EAAW,CAClC,GAAI80D,GAAUhvC,EAAKjF,UAAU7gB,EAAW7e,EAAQ1K,EAAMvH,OAClD01C,GAAMl/B,MAAQA,EACdk/B,EAAMnuC,OAASq+E,GAEXlwC,EAAMl/B,MACN0uE,EAAOluE,KAAK0+B,GAChBA,GAASl/B,KAAMA,EAAMjP,MAAOq+E,IAIpC,IAAK,GAAI/iF,GAAI,EAAGA,EAAI4I,EAAMzL,OAAO,EAAG6C,IAChC,OAAqB6K,KAAjBjC,EAAM5I,EAAI,GAAd,CAGA0P,EAAO+jC,EAAM4tC,EAAQrhF,IAGjB2T,EADAjE,EAAKmyE,QACEnyE,EAAKmyE,QAAQn9E,EAAOm+E,EAAc9vC,GAElCrjC,EAAKmjC,MAEZnjC,EAAKka,OAEDi5D,EADoB,gBAAbnzE,GAAKka,KACGla,EAAKka,KAELla,EAAKka,KAAKi5D,EAAc9vC,GAG3CU,EAAQx4C,KAAK+lF,OAAO6B,GACfpvC,IACDx4C,KAAKm4E,YAAY,sBAAuByP,GACxCA,EAAe,QACfpvC,EAAQx4C,KAAK+lF,OAAO6B,IAExBxB,EAAUpmF,KAAKimF,cAAc2B,GAC7B50D,EAAY7e,EACZq2C,EAAKxqD,KAAKgmF,QAAQ4B,GAClBp9B,EAAGx3B,UAAY7e,EAEnB,OAGJ,GAAI1K,EACA,GAAoB,gBAATiP,GACDjE,IAAuB,IAAfA,EAAKszE,OAAoBnwC,EAAMl/B,OAASA,GAG9Ck/B,EAAMl/B,MACN0uE,EAAOluE,KAAK0+B,GAChBA,GAASl/B,KAAMA,EAAMjP,MAAOA,IAJ5BmuC,EAAMnuC,OAASA,MAMhB,IAAIiP,EAAM,CACTk/B,EAAMl/B,MACN0uE,EAAOluE,KAAK0+B,GAChBA,GAASl/B,KAAM,KAAMjP,MAAO,GAC5B,KAAK,GAAI1E,GAAI,EAAGA,EAAI2T,EAAKxW,OAAQ6C,IAC7BqiF,EAAOluE,KAAKR,EAAK3T,IAI7B,GAAIiuB,GAAa8lB,EAAK52C,OAClB,KAIJ,IAFA8wB,EAAY7e,EAER0zE,IAAkBhC,EAAiB,CAOnC,IANIgC,EAAgB,EAAI/uC,EAAK52C,QACzBlC,KAAKm4E,YAAY,uCACbwP,WAAYA,EACZ7uC,KAAMA,IAGP9lB,EAAY8lB,EAAK52C,QAChB01C,EAAMl/B,MACN0uE,EAAOluE,KAAK0+B,GAChBA,GACInuC,MAAOqvC,EAAKjF,UAAU7gB,EAAWA,GAAa,KAC9Cta,KAAM,WAGdkvE,GAAe,QACf9vC,IACA,QAWR,MAPIF,GAAMl/B,MACN0uE,EAAOluE,KAAK0+B,GAEZE,EAAM51C,OAAS,GACX41C,EAAM,KAAO8vC,GACb9vC,EAAMzb,QAAQ,OAAQurD,IAG1BR,OAASA,EACT5uC,MAAQV,EAAM51C,OAAS41C,EAAQ8vC,IAIvC5nF,KAAKm4E,YAAcv0E,EAAOu0E,cAE3B53E,KAAKulF,EAAUrjF,WAElB7C,EAAQkmF,UAAYA,IAGpB75B,IAAInsD,OAAO,iCAAiC,UAAU,UAAU,SAAS,gBAAiB,SAAS+uD,EAAUjvD,EAASC,GACtH,YAEA,IAAI6lE,GAAO7W,EAAS,eAEhBm5B,EAAqB,WAErBhoF,KAAKioF,QACDj+C,QACI4N,MAAQ,aACR3oC,MAAQ,OAERo3E,aAAe,YAK3B,WAEIrmF,KAAKkoF,SAAW,SAASvvE,EAAOwvE,GAC5B,GAAKA,EAKL,IAAK,GAAI3+E,KAAOmP,GAAO,CAEnB,IAAK,GADD6/B,GAAQ7/B,EAAMnP,GACTzE,EAAI,EAAGA,EAAIyzC,EAAMt2C,OAAQ6C,IAAK,CACnC,GAAI0P,GAAO+jC,EAAMzzC,IACb0P,EAAKka,MAAQla,EAAKmyE,WACM,gBAAbnyE,GAAKka,MACsB,IAA9Bla,EAAKka,KAAK3sB,QAAQmmF,KAClB1zE,EAAKka,KAAOw5D,EAAS1zE,EAAKka,MAE9Bla,EAAK2zE,WAAgD,IAAnC3zE,EAAK2zE,UAAUpmF,QAAQmmF,KACzC1zE,EAAK2zE,UAAYD,EAAS1zE,EAAK2zE,YAG3CpoF,KAAKioF,OAAOE,EAAS3+E,GAAOgvC,MAjB5B,KAAK,GAAIhvC,KAAOmP,GACZ3Y,KAAKioF,OAAOz+E,GAAOmP,EAAMnP,IAoBrCxJ,KAAKqoF,SAAW,WACZ,MAAOroF,MAAKioF,QAGhBjoF,KAAKsoF,WAAa,SAAUC,EAAgBJ,EAAQK,EAAazC,EAAQ93C,GACrE,GAAIq6C,GAAsC,kBAAlBC,IAClB,GAAIA,IAAiBF,WACrBE,CACN,IAAIxC,EACA,IAAK,GAAIhhF,GAAI,EAAGA,EAAIghF,EAAO7jF,OAAQ6C,IAC/BghF,EAAOhhF,GAAKojF,EAASpC,EAAOhhF,OAC7B,CACHghF,IACA,KAAK,GAAIv8E,KAAO8+E,GACZvC,EAAO7sE,KAAKivE,EAAS3+E,GAK7B,GAFAxJ,KAAKkoF,SAASI,EAAYH,GAEtBK,EAEA,IAAK,GADDN,GAAW17E,MAAM/J,UAAUwrC,EAAS,OAAS,WACxClpC,EAAI,EAAGA,EAAIghF,EAAO7jF,OAAQ6C,IAC/BmjF,EAASj3E,MAAMjR,KAAKioF,OAAOlC,EAAOhhF,IAAK2gE,EAAKnB,SAASikB,GAGxDxoF,MAAKyoF,UACNzoF,KAAKyoF,YACTzoF,KAAKyoF,QAAQvvE,KAAKivE,IAGtBnoF,KAAK0oF,UAAY,WACb,MAAO1oF,MAAKyoF,QAGhB,IAAIjuC,GAAY,SAASotC,EAAc9vC,GAGnC,OAFoB,SAAhB8vC,GAA2B9vC,EAAM51C,SACjC41C,EAAMzb,QAAQr8B,KAAKooF,UAAWR,GAC3B5nF,KAAKooF,WAEZ/tC,EAAW,SAASutC,EAAc9vC,GAElC,MADAA,GAAM3a,QACC2a,EAAM3a,SAAW,QAG5Bn9B,MAAK2oF,eAAiB,WAGlB,QAASC,GAAap/E,GAClB,GAAIgvC,GAAQ7/B,EAAMnP,EAClBgvC,GAAMqwC,WAAY,CAClB,KAAK,GAAI9jF,GAAI,EAAGA,EAAIyzC,EAAMt2C,OAAQ6C,IAAK,CACnC,GAAI0P,GAAO+jC,EAAMzzC,GACb+jF,EAAW,IACXt8E,OAAMvH,QAAQwP,KACdq0E,EAAWr0E,EACXA,OAECA,EAAKxF,OAASwF,EAAKu1B,QACpBv1B,EAAKxF,MAAQwF,EAAKu1B,MACbv1B,EAAKka,OACNla,EAAKka,SACTla,EAAKka,KAAKzV,MACNmtE,aAAc5xE,EAAKmjC,QAEnBA,MAAOnjC,EAAKmjC,MAAQ,OACpB3oC,MAAOwF,EAAKw1B,KAAOx1B,EAAKu1B,MACxBrb,KAAM,QAEVla,EAAKmjC,MAAQnjC,EAAKmjC,MAAQ,SAC1BnjC,EAAKyE,MAAO,EAEhB,IAAIyV,GAAOla,EAAKka,MAAQla,EAAKyE,IAC7B,IAAIyV,GAAQniB,MAAMvH,QAAQ0pB,GAAO,CAC7B,GAAIo6D,GAAYt0E,EAAKs0E,SAChBA,KACDA,EAAYt0E,EAAKmjC,MACO,gBAAbmxC,KACPA,EAAYA,EAAU,IAAM,IAC5BpwE,EAAMowE,KACNA,GAAa1oF,MAErBsY,EAAMowE,GAAap6D,EACnBla,EAAKka,KAAOo6D,EACZH,EAAaG,OACE,OAARp6D,IACPla,EAAKka,KAAO0rB,EAShB,IANI5lC,EAAKyE,OACLzE,EAAK2zE,UAAY3zE,EAAKka,MAAQla,EAAKyE,KACnCzE,EAAKka,KAAO6rB,QACL/lC,GAAKyE,MAGZzE,EAAKkE,MACL,IAAK,GAAIlT,KAAKgP,GAAKkE,MACXA,EAAMlT,GACFkT,EAAMlT,GAAGyT,MACTP,EAAMlT,GAAGyT,KAAKjI,MAAM0H,EAAMlT,GAAIgP,EAAKkE,MAAMlT,IAE7CkT,EAAMlT,GAAKgP,EAAKkE,MAAMlT,EAIlC,IAAIujF,GAA6B,gBAARv0E,GACnBA,EACuB,gBAAhBA,GAAKghD,QACZhhD,EAAKghD,QACL,EAKN,IAJIuzB,IACAF,EAAWnwE,EAAMqwE,IAGjBF,EAAU,CACV,GAAIx6D,IAAQvpB,EAAG,GAAGqU,OAAO0vE,EACrBr0E,GAAKw0E,WACL36D,EAAOA,EAAKkW,OAAO,SAAStT,GAAI,OAAQA,EAAEvC,QAC9C6pB,EAAMhjC,OAAOvE,MAAMunC,EAAOlqB,GAC1BvpB,IAGA0P,EAAKy0E,aACLz0E,EAAKmjC,MAAQ53C,KAAKmpF,oBACd10E,EAAKy0E,WAAYz0E,EAAK4xE,cAAgB,OAAQ5xE,EAAK8xE,uBAEhD9xE,GAAK4xE,eAhFxB,GAAIhmF,GAAK,EACLsY,EAAQ3Y,KAAKioF,MAmFjBrmF,QAAOC,KAAK8W,GAAO7W,QAAQ8mF,EAAc5oF,OAG7CA,KAAKmpF,oBAAsB,SAASlwE,EAAKotE,EAAc/2B,EAAY85B,GAC/D,GAAIjwE,GAAWvX,OAAOoC,OAAO,KAc7B,OAbApC,QAAOC,KAAKoX,GAAKnX,QAAQ,SAASslC,GAC9B,GAAIvhC,GAAIoT,EAAImuB,EACRkoB,KACAzpD,EAAIA,EAAE6wB,cAEV,KAAK,GADD4lB,GAAOz2C,EAAE4I,MAAM26E,GAAa,KACvBrkF,EAAIu3C,EAAKp6C,OAAQ6C,KACtBoU,EAASmjC,EAAKv3C,IAAMqiC,IAExBxlC,OAAO0wD,eAAen5C,KACtBA,EAASo5C,UAAY,MAEzBvyD,KAAKqpF,aAAeznF,OAAOC,KAAKsX,GAChCF,EAAM,KACCq2C,EACD,SAAS7lD,GAAQ,MAAO0P,GAAS1P,EAAMitB,gBAAkB2vD,GACzD,SAAS58E,GAAQ,MAAO0P,GAAS1P,IAAU48E,IAGrDrmF,KAAKspF,YAAc,WACf,MAAOtpF,MAAKupF,aAGjBhpF,KAAKynF,EAAmBvlF,WAE3B7C,EAAQooF,mBAAqBA,IAG7B/7B,IAAInsD,OAAO,sBAAsB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GAC5F,YAEA,IAAI2pF,GAAY,WACbxpF,KAAKypF,iBAGR,WAEIzpF,KAAK4rB,IAAM,SAAUroB,EAAM0gC,EAAQr8B,GAC/B,WAAQgI,IACN,IAAK5P,MAAKypF,YACNzpF,KAAKypF,cACT,KAAKzpF,MAAKypF,YAAYlmF,GAClBvD,KAAKypF,YAAYlmF,MAEvBvD,KAAKypF,YAAYlmF,GAAM0gC,GAAUr8B,GAGrC5H,KAAK0pF,cAAgB,SAAUC,GAC3B,IAAK,GAAIngF,KAAOmgF,GACZ,IAAK,GAAI1lD,KAAU0lD,GAAWngF,GAC1BxJ,KAAK4rB,IAAIpiB,EAAKy6B,EAAQ0lD,EAAWngF,GAAKy6B,KAKlDjkC,KAAK6rB,OAAS,SAAUtoB,GAChBvD,KAAKypF,aAAezpF,KAAKypF,YAAYlmF,UAC9BvD,MAAKypF,YAAYlmF,IAIhCvD,KAAK4pF,QAAU,SAAUjnF,EAAM6hC,GAC3B,GAAoB,kBAAT7hC,GACP,GAAIgnF,IAAa,GAAIhnF,IAAOknF,cAAcrlD,OAE1C,IAAImlD,GAAahnF,EAAKknF,cAAcrlD,EAExCxkC,MAAK0pF,cAAcC,IAGvB3pF,KAAK6pF,cAAgB,SAAUrlD,GAC3B,GAAKA,EAEE,CAEH,IAAK,GADD9V,MACK3pB,EAAI,EAAGA,EAAIy/B,EAAOtiC,OAAQ6C,IAC3B/E,KAAKypF,YAAYjlD,EAAOz/B,MACxB2pB,EAAI8V,EAAOz/B,IAAM/E,KAAKypF,YAAYjlD,EAAOz/B,IAGjD,OAAO2pB,GARP,MAAO1uB,MAAKypF,eAYrBlpF,KAAKipF,EAAU/mF,WAElB7C,EAAQ4pF,UAAYA,IAGpBv9B,IAAInsD,OAAO,sBAAsB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GAC5F,YACA,IAAIiqF,GAAgB,SAASlgB,EAASmgB,EAAYC,GAC9ChqF,KAAKiqF,SAAWrgB,EAChB5pE,KAAKkqF,KAAOH,EACZ/pF,KAAKmqF,WAAavgB,EAAQwgB,UAAUL,EAEpC,IAAInyC,GAAQgyB,EAAQygB,WAAWN,EAAYC,EAC3ChqF,MAAKsqF,YAAc1yC,EAAQA,EAAMzjC,OAAS,IAG9C,WACInU,KAAKuqF,aAAe,WAGhB,IAFAvqF,KAAKsqF,aAAe,EAEbtqF,KAAKsqF,YAAc,GAAG,CAEzB,GADAtqF,KAAKkqF,MAAQ,EACTlqF,KAAKkqF,KAAO,EAEZ,MADAlqF,MAAKkqF,KAAO,EACL,IAGXlqF,MAAKmqF,WAAanqF,KAAKiqF,SAASG,UAAUpqF,KAAKkqF,MAC/ClqF,KAAKsqF,YAActqF,KAAKmqF,WAAWjoF,OAAS,EAGhD,MAAOlC,MAAKmqF,WAAWnqF,KAAKsqF,cAEhCtqF,KAAKwqF,YAAc,WACfxqF,KAAKsqF,aAAe,CAEpB,KADA,GAAIG,GACGzqF,KAAKsqF,aAAetqF,KAAKmqF,WAAWjoF,QAAQ,CAI/C,GAHAlC,KAAKkqF,MAAQ,EACRO,IACDA,EAAWzqF,KAAKiqF,SAAS7Z,aACzBpwE,KAAKkqF,MAAQO,EAEb,MADAzqF,MAAKkqF,KAAOO,EAAW,EAChB,IAGXzqF,MAAKmqF,WAAanqF,KAAKiqF,SAASG,UAAUpqF,KAAKkqF,MAC/ClqF,KAAKsqF,YAAc,EAGvB,MAAOtqF,MAAKmqF,WAAWnqF,KAAKsqF,cAEhCtqF,KAAK0qF,gBAAkB,WACnB,MAAO1qF,MAAKmqF,WAAWnqF,KAAKsqF,cAEhCtqF,KAAK2qF,mBAAqB,WACtB,MAAO3qF,MAAKkqF,MAEhBlqF,KAAK4qF,sBAAwB,WACzB,GAAIC,GAAY7qF,KAAKmqF,WACjBW,EAAa9qF,KAAKsqF,YAClBhe,EAASue,EAAUC,GAAY9gD,KACnC,QAAep6B,KAAX08D,EACA,MAAOA,EAGX,KADAA,EAAS,EACFwe,EAAa,GAChBA,GAAc,EACdxe,GAAUue,EAAUC,GAAYrhF,MAAMvH,MAG1C,OAAOoqE,IAEXtsE,KAAK+qF,wBAA0B,WAC3B,OAAQ1e,IAAKrsE,KAAKkqF,KAAM5d,OAAQtsE,KAAK4qF,4BAG1CrqF,KAAKupF,EAAcrnF,WAEtB7C,EAAQkqF,cAAgBA,IAGxB79B,IAAInsD,OAAO,6BAA6B,UAAU,UAAU,SAAS,cAAc,qBAAqB,qBAAqB,gBAAiB,SAAS+uD,EAAUjvD,EAASC,GAC1K,YAEA,IAUI40C,GAVAujB,EAAMnJ,EAAS,iBACf26B,EAAY36B,EAAS,gBAAgB26B,UACrCM,EAAgBj7B,EAAS,wBAAwBi7B,cACjDpkB,EAAO7W,EAAS,kBAEhBm8B,GACC,OAAQ,eAAgB,wBACzBC,GACC,OAAQ,eAAgB,uBAAwB,WAGjDC,KACAC,EAAc,SAAS7kD,GACvB,GAAIjmC,IAAM,CAMV,IALIimC,EAAO8kD,cACP/qF,EAAKimC,EAAO1E,UAAUztB,MAClB+2E,EAAax5C,YAAcpL,EAAO8kD,YAAY15C,aAC9Cw5C,GAAgBx5C,WAAYpL,EAAO8kD,YAAY15C,cAEnDw5C,EAAa7qF,GACb,MAAOo0C,GAAUy2C,EAAa7qF,EAClCo0C,GAAUy2C,EAAa7qF,IACnBgrF,qBAAsB,EACtBC,iBAAkB,EAClBC,oBAAqB,GACrBC,sBAAuB,EACvBC,kBAAmB,EACnBC,uBAAwB,GACxBC,qBAAsB,KAI1BC,EAAa,SAAShqD,EAAWmH,EAAU8iD,EAASC,GACpD,GAAIC,GAAUnqD,EAAUqI,IAAIoiC,IAAMzqC,EAAUoI,MAAMqiC,GAClD,QACI16C,KAAMk6D,EAAU9iD,EAAW+iD,EAC3BlqD,WACQ,EACAA,EAAUoI,MAAMsiC,OAAS,EACzByf,EACAnqD,EAAUqI,IAAIqiC,QAAUyf,EAAU,EAAI,MAKlDC,EAAkB,WAClBhsF,KAAK4rB,IAAI,SAAU,YAAa,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAASj4C,GACrE,GAAI8yB,GAASne,EAAO2lD,oBAChBnzC,EAAO8wB,EAAQ/U,IAAIyoB,QAAQ74B,EAAO4nB,IACtC,IAAY,KAAR16C,EAAa,CACbw5D,EAAY7kD,EACZ,IAAI1E,GAAY0E,EAAOsmC,oBACnB7jC,EAAW6gC,EAAQ/U,IAAIwgB,aAAazzC,EACxC,IAAiB,KAAbmH,GAAgC,MAAbA,GAAoBzC,EAAO4lD,2BAC9C,MAAON,GAAWhqD,EAAWmH,EAAU,IAAK,IACzC,IAAIijD,EAAgBG,gBAAgB7lD,EAAQsjC,GAC/C,MAAI,WAAW/6D,KAAKiqC,EAAK2L,EAAO6nB,UAAYhmC,EAAO0mC,mBAC/Cgf,EAAgBI,iBAAiB9lD,EAAQsjC,EAAS,MAE9Cj4C,KAAM,KACNiQ,WAAY,EAAG,MAGnBoqD,EAAgBK,kBAAkB/lD,EAAQsjC,EAAS,MAE/Cj4C,KAAM,IACNiQ,WAAY,EAAG,SAIxB,IAAY,KAARjQ,EAAa,CACpBw5D,EAAY7kD,EACZ,IAAIgmD,GAAYxzC,EAAKjF,UAAU4Q,EAAO6nB,OAAQ7nB,EAAO6nB,OAAS,EAC9D,IAAiB,KAAbggB,EAAkB,CAClB,GAAIC,GAAW3iB,EAAQ4iB,oBAAoB,KAAMlgB,OAAQ7nB,EAAO6nB,OAAS,EAAGD,IAAK5nB,EAAO4nB,KACxF,IAAiB,OAAbkgB,GAAqBP,EAAgBS,sBAAsBhoC,EAAQ3L,EAAMnnB,GAEzE,MADAq6D,GAAgBU,0BAEZ/6D,KAAM,GACNiQ,WAAY,EAAG,SAIxB,CAAA,GAAY,MAARjQ,GAAwB,QAARA,EAAgB,CACvCw5D,EAAY7kD,EACZ,IAAIwlD,GAAU,EACVE,GAAgBW,uBAAuBloC,EAAQ3L,KAC/CgzC,EAAUpmB,EAAKxB,aAAa,IAAKzvB,EAAQ+2C,uBACzCQ,EAAgBY,4BAEpB,IAAIN,GAAYxzC,EAAKjF,UAAU4Q,EAAO6nB,OAAQ7nB,EAAO6nB,OAAS,EAC9D,IAAkB,MAAdggB,EAAmB,CACnB,GAAIO,GAAejjB,EAAQkjB,qBAAqBzgB,IAAK5nB,EAAO4nB,IAAKC,OAAQ7nB,EAAO6nB,OAAO,GAAI,IAC3F,KAAKugB,EACA,MAAO,KACZ,IAAIE,GAAc/sF,KAAKgtF,WAAWpjB,EAAQ0T,QAAQuP,EAAaxgB,UAC5D,CAAA,IAAIyf,EAIP,WADAE,GAAgBY,2BAFhB,IAAIG,GAAc/sF,KAAKgtF,WAAWl0C,GAKtC,GAAInoB,GAASo8D,EAAcnjB,EAAQqjB,cAEnC,QACIt7D,KAAM,KAAOhB,EAAS,KAAOo8D,EAAcjB,EAC3ClqD,WAAY,EAAGjR,EAAOzuB,OAAQ,EAAGyuB,EAAOzuB,SAG5C8pF,EAAgBY,+BAIxB5sF,KAAK4rB,IAAI,SAAU,WAAY,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAAS5jC,GACpE,GAAI+C,GAAW6gC,EAAQ/U,IAAIwgB,aAAarvC,EACxC,KAAKA,EAAM2oC,eAA6B,KAAZ5lC,EAAiB,CACzCoiD,EAAY7kD,EAGZ,IAAiB,KAFNsjC,EAAQ/U,IAAIyoB,QAAQt3C,EAAMgE,MAAMqiC,KACtBx4B,UAAU7N,EAAMiE,IAAIqiC,OAAQtmC,EAAMiE,IAAIqiC,OAAS,GAGhE,MADAtmC,GAAMiE,IAAIqiC,SACHtmC,CAEPyO,GAAQ+2C,2BAKpBxrF,KAAK4rB,IAAI,SAAU,YAAa,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAASj4C,GACrE,GAAY,KAARA,EAAa,CACbw5D,EAAY7kD,EACZ,IAAI1E,GAAY0E,EAAOsmC,oBACnB7jC,EAAW6gC,EAAQ/U,IAAIwgB,aAAazzC,EACxC,IAAiB,KAAbmH,GAAmBzC,EAAO4lD,2BAC1B,MAAON,GAAWhqD,EAAWmH,EAAU,IAAK,IACzC,IAAIijD,EAAgBG,gBAAgB7lD,EAAQsjC,GAE/C,MADAoiB,GAAgBI,iBAAiB9lD,EAAQsjC,EAAS,MAE9Cj4C,KAAM,KACNiQ,WAAY,EAAG,QAGpB,IAAY,KAARjQ,EAAa,CACpBw5D,EAAY7kD,EACZ,IAAIme,GAASne,EAAO2lD,oBAChBnzC,EAAO8wB,EAAQ/U,IAAIyoB,QAAQ74B,EAAO4nB,KAClCigB,EAAYxzC,EAAKjF,UAAU4Q,EAAO6nB,OAAQ7nB,EAAO6nB,OAAS,EAC9D,IAAiB,KAAbggB,EAAkB,CAClB,GAAIC,GAAW3iB,EAAQ4iB,oBAAoB,KAAMlgB,OAAQ7nB,EAAO6nB,OAAS,EAAGD,IAAK5nB,EAAO4nB,KACxF,IAAiB,OAAbkgB,GAAqBP,EAAgBS,sBAAsBhoC,EAAQ3L,EAAMnnB,GAEzE,MADAq6D,GAAgBU,0BAEZ/6D,KAAM,GACNiQ,WAAY,EAAG,QAOnC5hC,KAAK4rB,IAAI,SAAU,WAAY,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAAS5jC,GACpE,GAAI+C,GAAW6gC,EAAQ/U,IAAIwgB,aAAarvC,EACxC,KAAKA,EAAM2oC,eAA6B,KAAZ5lC,EAAiB,CACzCoiD,EAAY7kD,EAGZ,IAAiB,KAFNsjC,EAAQ/U,IAAIyoB,QAAQt3C,EAAMgE,MAAMqiC,KACtBx4B,UAAU7N,EAAMgE,MAAMsiC,OAAS,EAAGtmC,EAAMgE,MAAMsiC,OAAS,GAGxE,MADAtmC,GAAMiE,IAAIqiC,SACHtmC,KAKnBhmC,KAAK4rB,IAAI,WAAY,YAAa,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAASj4C,GACvE,GAAY,KAARA,EAAa,CACbw5D,EAAY7kD,EACZ,IAAI1E,GAAY0E,EAAOsmC,oBACnB7jC,EAAW6gC,EAAQ/U,IAAIwgB,aAAazzC,EACxC,IAAiB,KAAbmH,GAAmBzC,EAAO4lD,2BAC1B,MAAON,GAAWhqD,EAAWmH,EAAU,IAAK,IACzC,IAAIijD,EAAgBG,gBAAgB7lD,EAAQsjC,GAE/C,MADAoiB,GAAgBI,iBAAiB9lD,EAAQsjC,EAAS,MAE9Cj4C,KAAM,KACNiQ,WAAY,EAAG,QAGpB,IAAY,KAARjQ,EAAa,CACpBw5D,EAAY7kD,EACZ,IAAIme,GAASne,EAAO2lD,oBAChBnzC,EAAO8wB,EAAQ/U,IAAIyoB,QAAQ74B,EAAO4nB,KAClCigB,EAAYxzC,EAAKjF,UAAU4Q,EAAO6nB,OAAQ7nB,EAAO6nB,OAAS,EAC9D,IAAiB,KAAbggB,EAAkB,CAClB,GAAIC,GAAW3iB,EAAQ4iB,oBAAoB,KAAMlgB,OAAQ7nB,EAAO6nB,OAAS,EAAGD,IAAK5nB,EAAO4nB,KACxF,IAAiB,OAAbkgB,GAAqBP,EAAgBS,sBAAsBhoC,EAAQ3L,EAAMnnB,GAEzE,MADAq6D,GAAgBU,0BAEZ/6D,KAAM,GACNiQ,WAAY,EAAG,QAOnC5hC,KAAK4rB,IAAI,WAAY,WAAY,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAAS5jC,GACtE,GAAI+C,GAAW6gC,EAAQ/U,IAAIwgB,aAAarvC,EACxC,KAAKA,EAAM2oC,eAA6B,KAAZ5lC,EAAiB,CACzCoiD,EAAY7kD,EAGZ,IAAiB,KAFNsjC,EAAQ/U,IAAIyoB,QAAQt3C,EAAMgE,MAAMqiC,KACtBx4B,UAAU7N,EAAMgE,MAAMsiC,OAAS,EAAGtmC,EAAMgE,MAAMsiC,OAAS,GAGxE,MADAtmC,GAAMiE,IAAIqiC,SACHtmC,KAKnBhmC,KAAK4rB,IAAI,iBAAkB,YAAa,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAASj4C,GAC7E,GAAY,KAARA,GAAuB,KAARA,EAAa,CAC5B,GAAI3xB,KAAKktF,mBAA4D,GAAxCltF,KAAKktF,iBAAiBlrF,QAAQ2vB,GACvD,MACJw5D,GAAY7kD,EACZ,IAAIxT,GAAQnB,EACRiQ,EAAY0E,EAAOsmC,oBACnB7jC,EAAW6gC,EAAQ/U,IAAIwgB,aAAazzC,EACxC,IAAiB,KAAbmH,GAAgC,MAAbA,GAAgC,KAAZA,GAAmBzC,EAAO4lD,2BACjE,MAAON,GAAWhqD,EAAWmH,EAAUjW,EAAOA,EAC3C,KAAKiW,EAAU,CAClB,GAAI0b,GAASne,EAAO2lD,oBAChBnzC,EAAO8wB,EAAQ/U,IAAIyoB,QAAQ74B,EAAO4nB,KAClC8gB,EAAWr0C,EAAKjF,UAAU4Q,EAAO6nB,OAAO,EAAG7nB,EAAO6nB,QAClDggB,EAAYxzC,EAAKjF,UAAU4Q,EAAO6nB,OAAQ7nB,EAAO6nB,OAAS,GAE1D10B,EAAQgyB,EAAQygB,WAAW5lC,EAAO4nB,IAAK5nB,EAAO6nB,QAC9C8gB,EAAaxjB,EAAQygB,WAAW5lC,EAAO4nB,IAAK5nB,EAAO6nB,OAAS,EAChE,IAAgB,MAAZ6gB,GAAoBv1C,GAAS,SAAS/oC,KAAK+oC,EAAMl/B,MACjD,MAAO,KAEX,IAGI20E,GAHAC,EAAe11C,GAAS,gBAAgB/oC,KAAK+oC,EAAMl/B,MACnD60E,GAAeH,GAAc,gBAAgBv+E,KAAKu+E,EAAW10E,KAGjE,IAAI4zE,GAAax5D,GACbu6D,EAAOC,IAAiBC,IACZ,cAAc1+E,KAAKu+E,EAAW10E,QACtC20E,GAAO,OACR,CACH,GAAIC,IAAiBC,EACjB,MAAO,KACX,IAAID,GAAgBC,EAChB,MAAO,KACX,IAAIC,GAAS5jB,EAAQ6jB,MAAMlJ,OAC3BiJ,GAAOx6D,UAAY,CACnB,IAAI06D,GAAeF,EAAO3+E,KAAKs+E,EAC/BK,GAAOx6D,UAAY,CACnB,IAAI26D,GAAcH,EAAO3+E,KAAKs+E,EAC9B,IAAIO,GAAgBC,EAChB,MAAO,KACX,IAAIrB,IAAc,gBAAgBz9E,KAAKy9E,GACnC,MAAO,KACXe,IAAO,EAEX,OACI17D,KAAM07D,EAAOv6D,EAAQA,EAAQ,GAC7B8O,WAAY,EAAE,QAM9B5hC,KAAK4rB,IAAI,iBAAkB,WAAY,SAAS4sB,EAAOvU,EAAQqC,EAAQsjC,EAAS5jC,GAC5E,GAAI+C,GAAW6gC,EAAQ/U,IAAIwgB,aAAarvC,EACxC,KAAKA,EAAM2oC,gBAA8B,KAAZ5lC,GAA+B,KAAZA,GAAkB,CAC9DoiD,EAAY7kD,EAGZ,IAFWsjC,EAAQ/U,IAAIyoB,QAAQt3C,EAAMgE,MAAMqiC,KACtBx4B,UAAU7N,EAAMgE,MAAMsiC,OAAS,EAAGtmC,EAAMgE,MAAMsiC,OAAS,IAC3DvjC,EAEb,MADA/C,GAAMiE,IAAIqiC,SACHtmC,KAQvBgmD,GAAgBG,gBAAkB,SAAS7lD,EAAQsjC,GAC/C,GAAInlB,GAASne,EAAO2lD,oBAChB2B,EAAW,GAAI9D,GAAclgB,EAASnlB,EAAO4nB,IAAK5nB,EAAO6nB,OAC7D,KAAKtsE,KAAK6tF,gBAAgBD,EAASlD,mBAAqB,OAAQM,GAAwB,CACpF,GAAI8C,GAAY,GAAIhE,GAAclgB,EAASnlB,EAAO4nB,IAAK5nB,EAAO6nB,OAAS,EACvE,KAAKtsE,KAAK6tF,gBAAgBC,EAAUpD,mBAAqB,OAAQM,GAC7D,OAAO,EAGf,MADA4C,GAASpD,cACFoD,EAASjD,uBAAyBlmC,EAAO4nB,KAC5CrsE,KAAK6tF,gBAAgBD,EAASlD,mBAAqB,OAAQO,IAGnEe,EAAgB6B,gBAAkB,SAASj2C,EAAOv+B,GAC9C,MAAOA,GAAMrX,QAAQ41C,EAAMl/B,MAAQk/B,IAAU,GAGjDo0C,EAAgBI,iBAAmB,SAAS9lD,EAAQsjC,EAASmkB,GACzD,GAAItpC,GAASne,EAAO2lD,oBAChBnzC,EAAO8wB,EAAQ/U,IAAIyoB,QAAQ74B,EAAO4nB,IACjCrsE,MAAKysF,sBAAsBhoC,EAAQ3L,EAAMrE,EAAQ82C,oBAAoB,MACtE92C,EAAQ42C,qBAAuB,GACnC52C,EAAQ62C,gBAAkB7mC,EAAO4nB,IACjC53B,EAAQ82C,oBAAsBwC,EAAUj1C,EAAK7gB,OAAOwsB,EAAO6nB,QAC3D73B,EAAQ42C,wBAGZW,EAAgBK,kBAAoB,SAAS/lD,EAAQsjC,EAASmkB,GAC1D,GAAItpC,GAASne,EAAO2lD,oBAChBnzC,EAAO8wB,EAAQ/U,IAAIyoB,QAAQ74B,EAAO4nB,IACjCrsE,MAAK2sF,uBAAuBloC,EAAQ3L,KACrCrE,EAAQ+2C,sBAAwB,GACpC/2C,EAAQg3C,iBAAmBhnC,EAAO4nB,IAClC53B,EAAQi3C,uBAAyB5yC,EAAK7gB,OAAO,EAAGwsB,EAAO6nB,QAAUyhB,EACjEt5C,EAAQk3C,qBAAuB7yC,EAAK7gB,OAAOwsB,EAAO6nB,QAClD73B,EAAQ+2C,yBAGZQ,EAAgBS,sBAAwB,SAAShoC,EAAQ3L,EAAMi1C,GAC3D,MAAOt5C,GAAQ42C,qBAAuB,GAClC5mC,EAAO4nB,MAAQ53B,EAAQ62C,iBACvByC,IAAYt5C,EAAQ82C,oBAAoB,IACxCzyC,EAAK7gB,OAAOwsB,EAAO6nB,UAAY73B,EAAQ82C,qBAG/CS,EAAgBW,uBAAyB,SAASloC,EAAQ3L,GACtD,MAAOrE,GAAQ+2C,sBAAwB,GACnC/mC,EAAO4nB,MAAQ53B,EAAQg3C,kBACvB3yC,EAAK7gB,OAAOwsB,EAAO6nB,UAAY73B,EAAQk3C,sBACvC7yC,EAAK7gB,OAAO,EAAGwsB,EAAO6nB,SAAW73B,EAAQi3C,wBAGjDM,EAAgBU,uBAAyB,WACrCj4C,EAAQ82C,oBAAsB92C,EAAQ82C,oBAAoBtzD,OAAO,GACjEwc,EAAQ42C,wBAGZW,EAAgBY,0BAA4B,WACpCn4C,IACAA,EAAQ+2C,sBAAwB,EAChC/2C,EAAQg3C,kBAAoB,IAMpCzzB,EAAIN,SAASs0B,EAAiBxC,GAE9B5pF,EAAQosF,gBAAkBA,IAG1B//B,IAAInsD,OAAO,eAAe,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACrF,YACAD,GAAQouF,YA0CR,SAA4BC,GAExB,IAAK,GAAI1qF,KAAQ0qF,GACbruF,EAAQouF,SAASzqF,GAAQ0qF,EAAK1qF,GAAMwU,QAFxB,SAE2C,WA1C3Dm2E,EAAI,4sFACJC,GAAI,uhFACJC,GAAI,o8EACJC,GAAI,0DACJC,GAAI,8QACJC,GAAI;qnEACJC,EAAI,izCACJC,GAAI,4tCACJC,GAAI,qsBACJC,GAAI,0CACJC,EAAI,4hBACJC,GAAI,8TACJC,GAAI,6DACJC,GAAI,+MACJC,EAAI,40BACJC,GAAI,wEACJC,GAAI,mSACJC,GAAI,+RACJC,GAAI,mDACJC,GAAI,2CACJC,GAAI,wCACJC,GAAI,+xBACJC,EAAI,0kCACJC,GAAI,mWACJC,GAAI,yFACJC,GAAI,4KACJC,GAAI,43BACJC,EAAI,gDACJC,GAAI,wCACJC,GAAI,OACJC,GAAI,OACJC,EAAI,0mFACJC,GAAI,qBACJC,GAAI,iFACJC,GAAI,YACJC,GAAI,YACJC,GAAI,ikFAWRrkC,IAAInsD,OAAO,iBAAiB,UAAU,UAAU,SAAS,gBAAgB,gCAAgC,4BAA4B,cAAc,eAAe,qBAAqB,aAAc,SAAS+uD,EAAUjvD,EAASC,GACjO,YAEA,IAAIimF,GAAYj3B,EAAS,gBAAgBi3B,UACrCkC,EAAqBn5B,EAAS,0BAA0Bm5B,mBACxDgE,EAAkBn9B,EAAS,sBAAsBm9B,gBACjDtrE,EAAUmuC,EAAS,cACnB6W,EAAO7W,EAAS,eAChBi7B,EAAgBj7B,EAAS,qBAAqBi7B,cAC9CjL,EAAQhwB,EAAS,YAAYgwB,MAE7B0R,EAAO,WACPvwF,KAAKuoF,eAAiBP,IAG1B,WACIhoF,KAAKwwF,kBAAoB,GAAIxE,GAE7BhsF,KAAKukF,QAAU,GAAIx3E,QAAO,KACpB2T,EAAQstE,SAASE,EACjBxtE,EAAQstE,SAASS,GAAK/tE,EAAQstE,SAASU,GACvChuE,EAAQstE,SAASa,GACjBnuE,EAAQstE,SAASsB,GAAK,SAAU,KAGtCtvF,KAAKskF,WAAa,GAAIv3E,QAAO,SACvB2T,EAAQstE,SAASE,EACjBxtE,EAAQstE,SAASS,GAAK/tE,EAAQstE,SAASU,GACvChuE,EAAQstE,SAASa,GACjBnuE,EAAQstE,SAASsB,GAAK,eAAgB,KAG5CtvF,KAAKywF,aAAe,WAKhB,MAJKzwF,MAAK0wF,aACN1wF,KAAK2wF,gBAAkB3wF,KAAK2wF,iBAAmB,GAAI3wF,MAAKuoF,eAAevoF,KAAK4wF,sBAC5E5wF,KAAK0wF,WAAa,GAAI5K,GAAU9lF,KAAK2wF,gBAAgBtI,aAElDroF,KAAK0wF,YAGhB1wF,KAAKktF,iBAAmB,GACxBltF,KAAK6wF,aAAe,GAEpB7wF,KAAK8wF,mBAAqB,SAASt4C,EAAOoxB,EAASkV,EAAUE,GA6FzD,QAAS+R,GAAK9+B,GACV,IAAK,GAAIltD,GAAI+5E,EAAU/5E,GAAKi6E,EAAQj6E,IAChCktD,EAAI4C,EAAIyoB,QAAQv4E,GAAIA,GA9F5B,GAAI8vD,GAAM+U,EAAQ/U,IAEdm8B,GAAmB,EACnBC,GAAe,EACfC,EAAY35E,EAAAA,EACZisE,EAAU5Z,EAAQ6Z,aAClB0N,GAAkB,CAEtB,IAAKnxF,KAAKktF,iBAkCH,CACH,GAAI1gF,MAAMvH,QAAQjF,KAAKktF,kBACnB,GAAIkE,GAAcpxF,KAAKktF,iBAAiBj0E,IAAIysD,EAAKd,cAAcjhD,KAAK,KAChEupE,EAAmBltF,KAAKktF,iBAAiB,OAE7C,IAAIkE,GAAc1rB,EAAKd,aAAa5kE,KAAKktF,kBACrCA,EAAmBltF,KAAKktF,gBAEhCkE,GAAc,GAAIrkF,QAAO,aAAeqkF,EAAc,OAEtDD,EAAkBvnB,EAAQynB,gBAE1B,IAAIC,GAAY,SAASx4C,EAAM/zC,GAC3B,GAAIvE,GAAIs4C,EAAKnrC,MAAMyjF,EACnB,IAAK5wF,EAAL,CACA,GAAIwpC,GAAQxpC,EAAE,GAAG0B,OAAQ+nC,EAAMzpC,EAAE,GAAG0B,MAC/BqvF,GAAkBz4C,EAAM9O,EAAOC,IAAyB,KAAjBzpC,EAAE,GAAGypC,EAAM,IACnDA,IACJ4qB,EAAI28B,aAAazsF,EAAGilC,EAAOC,KAE3BwnD,EAAmBvE,EAAmB,IACtCwE,EAAU,SAAS54C,EAAM/zC,GACpBisF,IAAoB,KAAKniF,KAAKiqC,KAC3By4C,EAAkBz4C,EAAMo4C,EAAWA,GACnCr8B,EAAI88B,cAActlB,IAAKtnE,EAAGunE,OAAQ4kB,GAAYO,GAE9C58B,EAAI88B,cAActlB,IAAKtnE,EAAGunE,OAAQ4kB,GAAYhE,KAGtD0E,EAAa,SAAS94C,EAAM/zC,GAC5B,MAAOqsF,GAAYviF,KAAKiqC,IAGxBy4C,EAAoB,SAASz4C,EAAM+4C,EAAQC,GAE3C,IADA,GAAIC,GAAS,EACNF,KAAmC,KAAvB/4C,EAAK9mB,OAAO6/D,IAC3BE,GACJ,IAAIA,EAASvO,GAAW,EACpB,OAAO,CAEX,KADA,GAAIuO,GAAS,EACkB,KAAxBj5C,EAAK9mB,OAAO8/D,MACfC,GACJ,OAAIvO,GAAU,EACHuO,EAASvO,GAAWA,EAAU,EAE9BuO,EAASvO,GAAW,OA/EX,CACxB,IAAKxjF,KAAK6wF,aACN,OAAO,CACX,IAAI3D,GAAmBltF,KAAK6wF,aAAa7mD,MACrCgoD,EAAiBhyF,KAAK6wF,aAAa5mD,IACnCmnD,EAAc,GAAIrkF,QAAO,aAAe24D,EAAKd,aAAasoB,GAAoB,KAC9E+E,EAAY,GAAIllF,QAAO,MAAQ24D,EAAKd,aAAaotB,GAAkB,UAEnEN,EAAU,SAAS54C,EAAM/zC,GACrB6sF,EAAW94C,EAAM/zC,IAEhBisF,IAAoB,KAAKniF,KAAKiqC,KAC/B+b,EAAI88B,cAActlB,IAAKtnE,EAAGunE,OAAQxzB,EAAK52C,QAAS8vF,GAChDn9B,EAAI88B,cAActlB,IAAKtnE,EAAGunE,OAAQ4kB,GAAYhE,KAIlDoE,EAAY,SAASx4C,EAAM/zC,GAC3B,GAAIvE,IACAA,EAAIs4C,EAAKnrC,MAAMskF,KACfp9B,EAAI28B,aAAazsF,EAAG+zC,EAAK52C,OAAS1B,EAAE,GAAG0B,OAAQ42C,EAAK52C,SACpD1B,EAAIs4C,EAAKnrC,MAAMyjF,KACfv8B,EAAI28B,aAAazsF,EAAGvE,EAAE,GAAG0B,OAAQ1B,EAAE,GAAG0B,SAG1C0vF,EAAa,SAAS94C,EAAMuzB,GAC5B,GAAI+kB,EAAYviF,KAAKiqC,GACjB,OAAO,CAEX,KAAK,GADDsuC,GAASxd,EAAQwgB,UAAU/d,GACtBtnE,EAAI,EAAGA,EAAIqiF,EAAOllF,OAAQ6C,IAC/B,GAAuB,YAAnBqiF,EAAOriF,GAAG2T,KACV,OAAO,GA2DvB,GAAIw5E,GAAiB36E,EAAAA,CACrBw5E,GAAK,SAASj4C,EAAM/zC,GAChB,GAAI4rB,GAASmoB,EAAKhgB,OAAO,OACT,IAAZnI,GACIA,EAASugE,IACTA,EAAYvgE,GACZsgE,IAAiBW,EAAW94C,EAAM/zC,KAClCksF,GAAe,IACZiB,EAAiBp5C,EAAK52C,SAC7BgwF,EAAiBp5C,EAAK52C,UAI1BgvF,GAAa35E,EAAAA,IACb25E,EAAYgB,EACZlB,GAAmB,EACnBC,GAAe,GAGfE,GAAmBD,EAAY1N,GAAW,IAC1C0N,EAAY55D,KAAKxC,MAAMo8D,EAAY1N,GAAWA,GAElDuN,EAAKE,EAAeK,EAAYI,IAGpC1xF,KAAKmyF,mBAAqB,SAAS35C,EAAOoxB,EAAS5jC,EAAOye,GACtD,GAAIitC,GAAU1xF,KAAK6wF,YACnB,IAAKa,EAAL,EAEKA,EAAQ1nD,OAAS0nD,EAAQ,KAC1BA,EAAUA,EAAQ,GAEtB,IAKI5S,GAAUsT,EALVxE,EAAW,GAAI9D,GAAclgB,EAASnlB,EAAO4nB,IAAK5nB,EAAO6nB,QACzD10B,EAAQg2C,EAASlD,kBAGjB2H,GADMzoB,EAAQhoC,UACCgoC,EAAQhoC,UAAU0xC,kBAGrC,IAAI17B,GAAS,UAAU/oC,KAAK+oC,EAAMl/B,MAAO,CAErC,IADA,GAAI45E,GAAYC,EACT36C,GAAS,UAAU/oC,KAAK+oC,EAAMl/B,OAAO,CACxC,GAAI3T,GAAI6yC,EAAMnuC,MAAMzH,QAAQ0vF,EAAQ1nD,MACpC,KAAU,GAANjlC,EAAS,CACT,GAAIsnE,GAAMuhB,EAASjD,qBACfre,EAASshB,EAAShD,wBAA0B7lF,CAChDutF,GAAa,GAAIzT,GAAMxS,EAAKC,EAAQD,EAAKC,EAASolB,EAAQ1nD,MAAM9nC,OAChE,OAEJ01C,EAAQg2C,EAASrD,eAKrB,IAFA,GAAIqD,GAAW,GAAI9D,GAAclgB,EAASnlB,EAAO4nB,IAAK5nB,EAAO6nB,QACzD10B,EAAQg2C,EAASlD,kBACd9yC,GAAS,UAAU/oC,KAAK+oC,EAAMl/B,OAAO,CACxC,GAAI3T,GAAI6yC,EAAMnuC,MAAMzH,QAAQ0vF,EAAQznD,IACpC,KAAU,GAANllC,EAAS,CACT,GAAIsnE,GAAMuhB,EAASjD,qBACfre,EAASshB,EAAShD,wBAA0B7lF,CAChDwtF,GAAW,GAAI1T,GAAMxS,EAAKC,EAAQD,EAAKC,EAASolB,EAAQznD,IAAI/nC,OAC5D,OAEJ01C,EAAQg2C,EAASpD,cAEjB+H,GACA3oB,EAAQ/9C,OAAO0mE,GACfD,IACA1oB,EAAQ/9C,OAAOymE,GACfxT,EAAWwT,EAAWtoD,MAAMqiC,IAC5B+lB,GAAWV,EAAQ1nD,MAAM9nC,YAG7BkwF,GAAUV,EAAQ1nD,MAAM9nC,OACxB48E,EAAW94C,EAAMgE,MAAMqiC,IACvBzC,EAAQlY,OAAO1rB,EAAMiE,IAAKynD,EAAQznD,KAClC2/B,EAAQlY,OAAO1rB,EAAMgE,MAAO0nD,EAAQ1nD,MAEpCqoD,GAAaroD,MAAMqiC,KAAOyS,IAC1BuT,EAAaroD,MAAMsiC,QAAU8lB,GAC7BC,EAAapoD,IAAIoiC,KAAOyS,IACxBuT,EAAapoD,IAAIqiC,QAAU8lB,GAC/BxoB,EAAQhoC,UAAUqyC,kBAAkBoe,KAGxCryF,KAAKwyF,kBAAoB,SAASh6C,EAAOM,EAAM25C,GAC3C,MAAOzyF,MAAKgtF,WAAWl0C,IAG3B94C,KAAK0yF,aAAe,SAASl6C,EAAOM,EAAM1jB,GACtC,OAAO,GAGXp1B,KAAK2yF,YAAc,SAASn6C,EAAOqc,EAAKwX,KAGxCrsE,KAAKgtF,WAAa,SAASl0C,GACvB,MAAOA,GAAKnrC,MAAM,QAAQ,IAG9B3N,KAAK4yF,aAAe,SAAShpB,GACzB,MAAO,OAGX5pE,KAAK6yF,oBAAsB,SAAUzM,GACjCpmF,KAAKyoF,WACLzoF,KAAK8yF,SACL,KAAK,GAAI/tF,KAAKqhF,GACNA,EAAQrhF,KACR/E,KAAKyoF,QAAQvvE,KAAKnU,GAClB/E,KAAK8yF,OAAO/tF,GAAK,GAAIqhF,GAAQrhF,GAOrC,KAAK,GAHDguF,IAAe,qBAAsB,qBAAsB,oBAC3D,eAAgB,cAAe,kBAAmB,kBAE7ChuF,EAAI,EAAGA,EAAIguF,EAAY7wF,OAAQ6C,KACnC,SAASiuF,GACR,GAAIC,GAAeF,EAAYhuF,GAC3B0yE,EAAiBub,EAAMC,EAC3BD,GAAMD,EAAYhuF,IAAM,WACpB,MAAO/E,MAAKkzF,WAAWD,EAAchxF,UAAWw1E,KAEpDz3E,OAIVA,KAAKkzF,WAAa,SAASC,EAAQ7kE,EAAMmpD,GACrC,GAAIj/B,GAAQlqB,EAAK,EACG,iBAATkqB,KACPA,EAAQA,EAAM,GAClB,KAAK,GAAIzzC,GAAI,EAAGA,EAAI/E,KAAKyoF,QAAQvmF,OAAQ6C,IACrC,GAAK/E,KAAK8yF,OAAO9yF,KAAKyoF,QAAQ1jF,IAA9B,CAEA,GAAI0J,GAAQ+pC,EAAM/pC,MAAMzO,KAAKyoF,QAAQ1jF,GACrC,KAAK0J,EAAM,IAAMA,EAAM,GAAI,CACvB6f,EAAK,GAAK7f,EAAM,EAChB,IAAI9L,GAAO3C,KAAK8yF,OAAO9yF,KAAKyoF,QAAQ1jF,GACpC,OAAOpC,GAAKwwF,GAAQliF,MAAMtO,EAAM2rB,IAGxC,GAAII,GAAM+oD,EAAexmE,MAAMjR,KAAMsuB,EACrC,OAAOmpD,GAAiB/oD,MAAM9e,IAGlC5P,KAAKozF,gBAAkB,SAAS56C,EAAOvU,EAAQqC,EAAQsjC,EAASypB,GAC5D,GAAIrzF,KAAKszF,WAAY,CACjB,GAAI3J,GAAa3pF,KAAKszF,WAAWzJ,eACjC,KAAK,GAAIrgF,KAAOmgF,GACZ,GAAIA,EAAWngF,GAAKy6B,GAAS,CACzB,GAAIvV,GAAMi7D,EAAWngF,GAAKy6B,GAAQhzB,MAAMjR,KAAMiC,UAC9C,IAAIysB,EACA,MAAOA,MAO3B1uB,KAAKspF,YAAc,SAASr7C,GACxB,IAAKjuC,KAAKuzF,mBAAoB,CAC1B,GAAI56E,GAAQ3Y,KAAK0wF,WAAW/3E,MACxB46E,IACJ,KAAK,GAAI9+E,KAAQkE,GAEb,IAAK,GADD66E,GAAU76E,EAAMlE,GACXhP,EAAI,EAAGM,EAAIytF,EAAQtxF,OAAQuD,EAAIM,EAAGN,IACvC,GAAgC,gBAArB+tF,GAAQ/tF,GAAGmyC,MACd,0BAA0B/oC,KAAK2kF,EAAQ/tF,GAAGmyC,QAC1C27C,EAAmBr6E,KAAKs6E,EAAQ/tF,GAAGwJ,WAEtC,IAAgC,gBAArBukF,GAAQ/tF,GAAGmyC,MACvB,IAAK,GAAI/xC,GAAI,EAAG4tF,EAAUD,EAAQ/tF,GAAGmyC,MAAM11C,OAAQ2D,EAAI4tF,EAAS5tF,IAC5D,GAAI,0BAA0BgJ,KAAK2kF,EAAQ/tF,GAAGmyC,MAAM/xC,IAAK,CACrD,GAAI4O,GAAO++E,EAAQ/tF,GAAGwJ,MAAMtB,MAAM,YAAY9H,EAC9C0tF,GAAmBr6E,KAAKzE,EAAKwjB,OAAO,EAAGxjB,EAAKvS,OAAS,IAMzElC,KAAKuzF,mBAAqBA,EAE9B,MAAKtlD,GAEEslD,EAAmBn6E,OAAOpZ,KAAKqpF,kBAD3BrpF,KAAKqpF,cAIpBrpF,KAAK0zF,mBAAqB,WAGtB,MAFK1zF,MAAK2wF,iBACN3wF,KAAKywF,eACFzwF,KAAKqpF,aAAerpF,KAAK2wF,gBAAgBtH,kBAGpDrpF,KAAK2zF,eAAiB,SAASn7C,EAAOoxB,EAAShwD,EAAKuuE,GAEhD,OADenoF,KAAKqpF,cAAgBrpF,KAAK0zF,sBACzBz6E,IAAI,SAASuZ,GACzB,OACIjvB,KAAMivB,EACN/oB,MAAO+oB,EACPohE,MAAO,EACPnmE,KAAM,cAKlBztB,KAAK6zF,IAAM,kBACZtzF,KAAKgwF,EAAK9tF,WAEb7C,EAAQ2wF,KAAOA,IAGftkC,IAAInsD,OAAO,mBAAmB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACzF,YA+BAD,GAAQk0F,WAAa,SAASC,EAAUp/D,EAAOq/D,GAE3C,GAAI3nB,GAAM13C,EAAMqV,MAAMqiC,IAClB0S,EAAcpqD,EAAMqV,MAAMsiC,OAC1BxzB,EAAOi7C,EAAS1nB,IAAQ,EAC5B,QAAQ13C,EAAMsP,QACV,IAAK,SAED,GAAqB,IADTtP,EAAMqlB,MACR93C,OACN6xF,EAAS1nB,GAAOvzB,EAAKjF,UAAU,EAAGkrC,GAAepqD,EAAMqlB,MAAM,GAAKlB,EAAKjF,UAAUkrC,OAC9E,CACH,GAAIzwD,IAAQ+9C,EAAK,GAAGjzD,OAAOub,EAAMqlB,MACjC+5C,GAASv+E,OAAOvE,MAAM8iF,EAAUzlE,GAChCylE,EAAS1nB,GAAOvzB,EAAKjF,UAAU,EAAGkrC,GAAegV,EAAS1nB,GAC1D0nB,EAAS1nB,EAAM13C,EAAMqlB,MAAM93C,OAAS,IAAM42C,EAAKjF,UAAUkrC,GAE7D,KACJ,KAAK,SACD,GAAIE,GAAYtqD,EAAMsV,IAAIqiC,OACtB0S,EAASrqD,EAAMsV,IAAIoiC,GACnBA,KAAQ2S,EACR+U,EAAS1nB,GAAOvzB,EAAKjF,UAAU,EAAGkrC,GAAejmC,EAAKjF,UAAUorC,GAEhE8U,EAASv+E,OACL62D,EAAK2S,EAAS3S,EAAM,EACpBvzB,EAAKjF,UAAU,EAAGkrC,GAAegV,EAAS/U,GAAQnrC,UAAUorC,QAQhFhzB,IAAInsD,OAAO,cAAc,UAAU,UAAU,SAAS,cAAc,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GAC1H,YAEA,IAAIm4D,GAAMnJ,EAAS,aACfsoB,EAAetoB,EAAS,uBAAuBsoB,aAE/C8c,EAASr0F,EAAQq0F,OAAS,SAASp/B,EAAKwX,EAAKC,GAC7CtsE,KAAKk0F,UAAYl0F,KAAKwB,SAASohC,KAAK5iC,MACpCA,KAAKk+E,OAAOrpB,OAES,KAAVyX,EACPtsE,KAAKyvE,YAAYpD,EAAIA,IAAKA,EAAIC,QAE9BtsE,KAAKyvE,YAAYpD,EAAKC,KAG9B,WAqBI,QAAS6nB,GAAeC,EAAQC,EAAQC,GACpC,GAAIC,GAAcD,EAAqBF,EAAO9nB,QAAU+nB,EAAO/nB,OAAS8nB,EAAO9nB,OAAS+nB,EAAO/nB,MAC/F,OAAQ8nB,GAAO/nB,IAAMgoB,EAAOhoB,KAAS+nB,EAAO/nB,KAAOgoB,EAAOhoB,KAAOkoB,EAGrE,QAASC,GAAqB7/D,EAAO8/D,EAAOC,GACxC,GAAIC,GAAgC,UAAhBhgE,EAAMsP,OACtB2wD,GAAiBD,EAAgB,GAAK,IAAMhgE,EAAMsV,IAAIoiC,IAAS13C,EAAMqV,MAAMqiC,KAC3EwoB,GAAiBF,EAAgB,GAAK,IAAMhgE,EAAMsV,IAAIqiC,OAAS33C,EAAMqV,MAAMsiC,QAC3EwoB,EAAangE,EAAMqV,MACnB+qD,EAAWJ,EAAgBG,EAAangE,EAAMsV,GAClD,OAAIkqD,GAAeM,EAAOK,EAAYJ,IAE9BroB,IAAKooB,EAAMpoB,IACXC,OAAQmoB,EAAMnoB,QAGlB6nB,EAAeY,EAAUN,GAAQC,IAE7BroB,IAAKooB,EAAMpoB,IAAMuoB,EACjBtoB,OAAQmoB,EAAMnoB,QAAUmoB,EAAMpoB,KAAO0oB,EAAS1oB,IAAMwoB,EAAgB,KAKxExoB,IAAKyoB,EAAWzoB,IAChBC,OAAQwoB,EAAWxoB,QA7C3BtU,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAKihF,YAAc,WACf,MAAOjhF,MAAKg1F,wBAAwBh1F,KAAKqsE,IAAKrsE,KAAKssE,SAEvDtsE,KAAKwgF,YAAc,WACf,MAAOxgF,MAAKknC,UAEhBlnC,KAAKi1F,cAAe,EACpBj1F,KAAKwB,SAAW,SAASmzB,GACrB,KAAIA,EAAMqV,MAAMqiC,KAAO13C,EAAMsV,IAAIoiC,KAAO13C,EAAMqV,MAAMqiC,KAAOrsE,KAAKqsE,KAG5D13C,EAAMqV,MAAMqiC,IAAMrsE,KAAKqsE,KAA3B,CAGA,GAAIooB,GAAQD,EAAqB7/D,GAAQ03C,IAAKrsE,KAAKqsE,IAAKC,OAAQtsE,KAAKssE,QAAStsE,KAAKi1F,aACnFj1F,MAAKyvE,YAAYglB,EAAMpoB,IAAKooB,EAAMnoB,QAAQ,KAgC9CtsE,KAAKyvE,YAAc,SAASpD,EAAKC,EAAQ4oB,GACrC,GAAIt7E,EAUJ,IARIA,EADAs7E,GAEI7oB,IAAKA,EACLC,OAAQA,GAGNtsE,KAAKg1F,wBAAwB3oB,EAAKC,GAGxCtsE,KAAKqsE,KAAOzyD,EAAIyyD,KAAOrsE,KAAKssE,QAAU1yD,EAAI0yD,OAA9C,CAGA,GAAIwL,IACAzL,IAAKrsE,KAAKqsE,IACVC,OAAQtsE,KAAKssE,OAGjBtsE,MAAKqsE,IAAMzyD,EAAIyyD,IACfrsE,KAAKssE,OAAS1yD,EAAI0yD,OAClBtsE,KAAK2wE,QAAQ,UACTmH,IAAKA,EACLruE,MAAOmQ,MAGf5Z,KAAKm+E,OAAS,WACVn+E,KAAKknC,SAASqD,oBAAoB,SAAUvqC,KAAKk0F,YAErDl0F,KAAKk+E,OAAS,SAASrpB,GACnB70D,KAAKknC,SAAW2tB,GAAO70D,KAAKknC,SAC5BlnC,KAAKknC,SAAS2mB,GAAG,SAAU7tD,KAAKk0F,YAEpCl0F,KAAKg1F,wBAA0B,SAAS3oB,EAAKC,GACzC,GAAI1yD,KAkBJ,OAhBIyyD,IAAOrsE,KAAKknC,SAASkpC,aACrBx2D,EAAIyyD,IAAM/0C,KAAKqP,IAAI,EAAG3mC,KAAKknC,SAASkpC,YAAc,GAClDx2D,EAAI0yD,OAAStsE,KAAKknC,SAASo2C,QAAQ1jE,EAAIyyD,KAAKnqE,QAEvCmqE,EAAM,GACXzyD,EAAIyyD,IAAM,EACVzyD,EAAI0yD,OAAS,IAGb1yD,EAAIyyD,IAAMA,EACVzyD,EAAI0yD,OAASh1C,KAAKoP,IAAI1mC,KAAKknC,SAASo2C,QAAQ1jE,EAAIyyD,KAAKnqE,OAAQo1B,KAAKqP,IAAI,EAAG2lC,KAGzEA,EAAS,IACT1yD,EAAI0yD,OAAS,GAEV1yD,KAGZrZ,KAAK0zF,EAAOxxF,aAIfwpD,IAAInsD,OAAO,gBAAgB,UAAU,UAAU,SAAS,cAAc,kBAAkB,wBAAwB,YAAY,cAAe,SAAS+uD,EAAUjvD,EAASC,GACvK,YAEA,IAAIm4D,GAAMnJ,EAAS,aACfilC,EAAajlC,EAAS,iBAAiBilC,WACvC3c,EAAetoB,EAAS,uBAAuBsoB,aAC/C0H,EAAQhwB,EAAS,WAAWgwB,MAC5BoV,EAASplC,EAAS,YAAYolC,OAE9BkB,EAAW,SAASC,GACpBp1F,KAAKq1F,QAAU,IACY,IAAvBD,EAAYlzF,OACZlC,KAAKq1F,QAAU,IACR7oF,MAAMvH,QAAQmwF,GACrBp1F,KAAKs1F,mBAAmBjpB,IAAK,EAAGC,OAAQ,GAAI8oB,GAE5Cp1F,KAAK0xD,QAAQ2a,IAAK,EAAGC,OAAO,GAAI8oB,KAIxC,WAEIp9B,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAKg/C,SAAW,SAASrtB,GACrB,GAAIhY,GAAM3Z,KAAKowE,YAAc,CAC7BpwE,MAAK6rB,OAAO,GAAIgzD,GAAM,EAAG,EAAGllE,EAAK3Z,KAAKs9E,QAAQ3jE,GAAKzX,SACnDlC,KAAK0xD,QAAQ2a,IAAK,EAAGC,OAAQ,GAAI36C,IAErC3xB,KAAKsjC,SAAW,WACZ,MAAOtjC,MAAKu1F,cAAc5xE,KAAK3jB,KAAKw1F,wBAExCx1F,KAAK2gF,aAAe,SAAStU,EAAKC,GAC9B,MAAO,IAAI2nB,GAAOj0F,KAAMqsE,EAAKC,IAED,IAA5B,MAAM79D,MAAM,KAAKvM,OACjBlC,KAAKy1F,OAAS,SAAS9jE,GACnB,MAAOA,GAAK5Z,QAAQ,WAAY,MAAMtJ,MAAM,OAGhDzO,KAAKy1F,OAAS,SAAS9jE,GACnB,MAAOA,GAAKljB,MAAM,eAK1BzO,KAAK01F,eAAiB,SAAS/jE,GAC3B,GAAIhkB,GAAQgkB,EAAKhkB,MAAM,oBACvB3N,MAAK21F,aAAehoF,EAAQA,EAAM,GAAK,KACvC3N,KAAK2wE,QAAQ,sBAEjB3wE,KAAKw1F,oBAAsB,WACvB,OAAQx1F,KAAK41F,cACX,IAAK,UACH,MAAO,MACT,KAAK,OACH,MAAO,IACT,SACE,MAAO51F,MAAK21F,cAAgB,OAIpC31F,KAAK21F,aAAe,GACpB31F,KAAK41F,aAAe,OACpB51F,KAAK61F,eAAiB,SAASC,GACvB91F,KAAK41F,eAAiBE,IAG1B91F,KAAK41F,aAAeE,EACpB91F,KAAK2wE,QAAQ,uBAEjB3wE,KAAK+1F,eAAiB,WAClB,MAAO/1F,MAAK41F,cAEhB51F,KAAKg2F,UAAY,SAASrkE,GACtB,MAAgB,QAARA,GAA0B,MAARA,GAAwB,MAARA,GAE9C3xB,KAAKs9E,QAAU,SAASjR,GACpB,MAAOrsE,MAAKq1F,OAAOhpB,IAAQ,IAE/BrsE,KAAKi2F,SAAW,SAASnW,EAAUC,GAC/B,MAAO//E,MAAKq1F,OAAOx+E,MAAMipE,EAAUC,EAAU,IAEjD//E,KAAKu1F,YAAc,WACf,MAAOv1F,MAAKi2F,SAAS,EAAGj2F,KAAKowE,cAEjCpwE,KAAKowE,UAAY,WACb,MAAOpwE,MAAKq1F,OAAOnzF,QAEvBlC,KAAKq1E,aAAe,SAASrvC,GACzB,MAAOhmC,MAAKk2F,iBAAiBlwD,GAAOriB,KAAK3jB,KAAKw1F,wBAElDx1F,KAAKk2F,iBAAmB,SAASlwD,GAC7B,GAAIgU,EACJ,IAAIhU,EAAMgE,MAAMqiC,MAAQrmC,EAAMiE,IAAIoiC,IAC9BryB,GAASh6C,KAAKs9E,QAAQt3C,EAAMgE,MAAMqiC,KAAKx4B,UAAU7N,EAAMgE,MAAMsiC,OAAQtmC,EAAMiE,IAAIqiC,aAC5E,CACHtyB,EAAQh6C,KAAKi2F,SAASjwD,EAAMgE,MAAMqiC,IAAKrmC,EAAMiE,IAAIoiC,KACjDryB,EAAM,IAAMA,EAAM,IAAM,IAAInG,UAAU7N,EAAMgE,MAAMsiC,OAClD,IAAIvmE,GAAIi0C,EAAM93C,OAAS,CACnB8jC,GAAMiE,IAAIoiC,IAAMrmC,EAAMgE,MAAMqiC,KAAOtmE,IACnCi0C,EAAMj0C,GAAKi0C,EAAMj0C,GAAG8tC,UAAU,EAAG7N,EAAMiE,IAAIqiC,SAEnD,MAAOtyB,IAEXh6C,KAAKm2F,YAAc,SAAS9pB,EAAKryB,GAE7B,MADA54C,SAAQC,KAAK,sFACNrB,KAAKo2F,gBAAgB/pB,EAAKryB,IAErCh6C,KAAKq2F,YAAc,SAASvW,EAAUC,GAElC,MADA3+E,SAAQC,KAAK,sFACNrB,KAAKs2F,gBAAgBxW,EAAUC,IAE1C//E,KAAKu2F,cAAgB,SAASvqC,GAE1B,MADA5qD,SAAQC,KAAK,mGACNrB,KAAKs1F,kBAAkBtpC,GAAW,GAAI,MAEjDhsD,KAAK0xD,OAAS,SAAS1F,EAAUr6B,GAI7B,MAHI3xB,MAAKowE,aAAe,GACpBpwE,KAAK01F,eAAe/jE,GAEjB3xB,KAAKs1F,kBAAkBtpC,EAAUhsD,KAAKy1F,OAAO9jE,KAExD3xB,KAAK2xF,aAAe,SAAS3lC,EAAUr6B,GACnC,GAAIqY,GAAQhqC,KAAKw2F,WAAWxqC,EAASqgB,IAAKrgB,EAASsgB,QAC/CriC,EAAMjqC,KAAK4Z,IAAIoyC,EAASqgB,IAAKrgB,EAASsgB,OAAS36C,EAAKzvB,OASxD,OAPAlC,MAAK8zF,YACD9pD,MAAOA,EACPC,IAAKA,EACLhG,OAAQ,SACR+V,OAAQroB,KACT,GAEI3xB,KAAKy2F,SAASxsD,IAGzBjqC,KAAKw2F,WAAa,SAASnqB,EAAKC,GAC5B,GAAIpqE,GAASlC,KAAKowE,gBACNxgE,KAARy8D,EACAA,EAAMnqE,EACCmqE,EAAM,EACbA,EAAM,EACCA,GAAOnqE,IACdmqE,EAAMnqE,EAAS,EACfoqE,MAAS18D,GAEb,IAAIkpC,GAAO94C,KAAKs9E,QAAQjR,EAIxB,YAHcz8D,IAAV08D,IACAA,EAASxzB,EAAK52C,QAClBoqE,EAASh1C,KAAKoP,IAAIpP,KAAKqP,IAAI2lC,EAAQ,GAAIxzB,EAAK52C,SACpCmqE,IAAKA,EAAKC,OAAQA,IAG9BtsE,KAAKy2F,SAAW,SAAS78E,GACrB,OAAQyyD,IAAKzyD,EAAIyyD,IAAKC,OAAQ1yD,EAAI0yD,SAGtCtsE,KAAK4Z,IAAM,SAASyyD,EAAKC,GACrB,OAAQD,IAAKA,EAAKC,OAAQA,IAG9BtsE,KAAK02F,cAAgB,SAAS1qC,GAC1B,GAAI9pD,GAASlC,KAAKowE,WAQlB,OAPIpkB,GAASqgB,KAAOnqE,GAChB8pD,EAASqgB,IAAM/0C,KAAKqP,IAAI,EAAGzkC,EAAS,GACpC8pD,EAASsgB,OAAStsE,KAAKs9E,QAAQp7E,EAAS,GAAGA,SAE3C8pD,EAASqgB,IAAM/0C,KAAKqP,IAAI,EAAGqlB,EAASqgB,KACpCrgB,EAASsgB,OAASh1C,KAAKoP,IAAIpP,KAAKqP,IAAIqlB,EAASsgB,OAAQ,GAAItsE,KAAKs9E,QAAQtxB,EAASqgB,KAAKnqE,SAEjF8pD,GAEXhsD,KAAKo2F,gBAAkB,SAAS/pB,EAAKryB,GACjCqyB,EAAM/0C,KAAKoP,IAAIpP,KAAKqP,IAAI0lC,EAAK,GAAIrsE,KAAKowE,YACtC,IAAI9D,GAAS,CACTD,GAAMrsE,KAAKowE,aACXp2B,EAAQA,EAAM5gC,QAAQ,KACtBkzD,EAAS,IAETtyB,GAAS,IAAI5gC,OAAO4gC,GACpBqyB,IACAC,EAAStsE,KAAKq1F,OAAOhpB,GAAKnqE,QAE9BlC,KAAKs1F,mBAAmBjpB,IAAKA,EAAKC,OAAQA,GAAStyB,IAEvDh6C,KAAKs1F,kBAAoB,SAAStpC,EAAUhS,GACxC,GAAIhQ,GAAQhqC,KAAKw2F,WAAWxqC,EAASqgB,IAAKrgB,EAASsgB,QAC/CriC,GACAoiC,IAAKriC,EAAMqiC,IAAMryB,EAAM93C,OAAS,EAChCoqE,QAAyB,GAAhBtyB,EAAM93C,OAAc8nC,EAAMsiC,OAAS,GAAKtyB,EAAMA,EAAM93C,OAAS,GAAGA,OAU7E,OAPAlC,MAAK8zF,YACD9pD,MAAOA,EACPC,IAAKA,EACLhG,OAAQ,SACR+V,MAAOA,IAGJh6C,KAAKy2F,SAASxsD,IAEzBjqC,KAAK6rB,OAAS,SAASma,GACnB,GAAIgE,GAAQhqC,KAAKw2F,WAAWxwD,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,QACrDriC,EAAMjqC,KAAKw2F,WAAWxwD,EAAMiE,IAAIoiC,IAAKrmC,EAAMiE,IAAIqiC,OAOnD,OANAtsE,MAAK8zF,YACD9pD,MAAOA,EACPC,IAAKA,EACLhG,OAAQ,SACR+V,MAAOh6C,KAAKk2F,kBAAkBlsD,MAAOA,EAAOC,IAAKA,MAE9CjqC,KAAKy2F,SAASzsD,IAEzBhqC,KAAKwxF,aAAe,SAASnlB,EAAK0S,EAAaE,GAC3C,GAAIj1C,GAAQhqC,KAAKw2F,WAAWnqB,EAAK0S,GAC7B90C,EAAMjqC,KAAKw2F,WAAWnqB,EAAK4S,EAS/B,OAPAj/E,MAAK8zF,YACD9pD,MAAOA,EACPC,IAAKA,EACLhG,OAAQ,SACR+V,MAAOh6C,KAAKk2F,kBAAkBlsD,MAAOA,EAAOC,IAAKA,MAClD,GAEIjqC,KAAKy2F,SAASzsD,IAEzBhqC,KAAKs2F,gBAAkB,SAASxW,EAAUC,GACtCD,EAAWxoD,KAAKoP,IAAIpP,KAAKqP,IAAI,EAAGm5C,GAAW9/E,KAAKowE,YAAc,GAC9D2P,EAAWzoD,KAAKoP,IAAIpP,KAAKqP,IAAI,EAAGo5C,GAAW//E,KAAKowE,YAAc,EAC9D,IAAIumB,GAAqB5W,GAAW//E,KAAKowE,YAAc,GAAK0P,EAAW,EACnE8W,EAAqB7W,EAAW//E,KAAKowE,YAAc,EACnD0O,EAAa6X,EAAqB7W,EAAW,EAAqBA,EAClE+W,EAAaF,EAAqB32F,KAAKs9E,QAAQwB,GAAU58E,OAAS,EAClE88E,EAAa4X,EAAqB7W,EAAU,EAAsBA,EAClE+W,EAAaF,EAAqB,EAAgC52F,KAAKs9E,QAAQ0B,GAAQ98E,OACvF8jC,EAAQ,GAAI64C,GAAMC,EAAU+X,EAAU7X,EAAQ8X,GAC9CC,EAAe/2F,KAAKq1F,OAAOx+E,MAAMipE,EAAUC,EAAU,EAQzD,OANA//E,MAAK8zF,YACD9pD,MAAOhE,EAAMgE,MACbC,IAAKjE,EAAMiE,IACXhG,OAAQ,SACR+V,MAAOh6C,KAAKk2F,iBAAiBlwD,KAE1B+wD,GAEX/2F,KAAKg3F,cAAgB,SAAS3qB,GACtBA,EAAMrsE,KAAKowE,YAAc,GAAK/D,GAAO,GACrCrsE,KAAK8zF,YACD9pD,MAAOhqC,KAAK4Z,IAAIyyD,EAAKrsE,KAAKs9E,QAAQjR,GAAKnqE,QACvC+nC,IAAKjqC,KAAK4Z,IAAIyyD,EAAM,EAAG,GACvBpoC,OAAQ,SACR+V,OAAQ,GAAI,OAIxBh6C,KAAK+X,QAAU,SAASiuB,EAAOrU,GAG3B,GAFMqU,YAAiB64C,KACnB74C,EAAQ64C,EAAMmB,WAAWh6C,EAAMgE,MAAOhE,EAAMiE,MAC5B,IAAhBtY,EAAKzvB,QAAgB8jC,EAAM+/B,UAC3B,MAAO//B,GAAMgE,KACjB,IAAIrY,GAAQ3xB,KAAKq1E,aAAarvC,GAC1B,MAAOA,GAAMiE,GAEjBjqC,MAAK6rB,OAAOma,EASZ,OAPIrU,GACM3xB,KAAK0xD,OAAO1rB,EAAMgE,MAAOrY,GAGzBqU,EAAMgE,OAKpBhqC,KAAKi3F,YAAc,SAASC,GACxB,IAAK,GAAInyF,GAAE,EAAGA,EAAEmyF,EAAOh1F,OAAQ6C,IAC3B/E,KAAK8zF,WAAWoD,EAAOnyF,KAG/B/E,KAAKm3F,aAAe,SAASD,GACzB,IAAK,GAAInyF,GAAEmyF,EAAOh1F,OAAO,EAAG6C,GAAG,EAAGA,IAC9B/E,KAAKo3F,YAAYF,EAAOnyF,KAGhC/E,KAAK8zF,WAAa,SAASn/D,EAAOq/D,GAC9B,GAAIqD,GAA2B,UAAhB1iE,EAAMsP,QACjBozD,EAAW1iE,EAAMqlB,MAAM93C,QAAU,IAAMyyB,EAAMqlB,MAAM,IAChD6kC,EAAMH,cAAc/pD,EAAMqV,MAAOrV,EAAMsV,QAI1CotD,GAAY1iE,EAAMqlB,MAAM93C,OAAS,KACjClC,KAAKs3F,yBAAyB3iE,EAAO,KACzCm/D,EAAW9zF,KAAKq1F,OAAQ1gE,EAAOq/D,GAC/Bh0F,KAAK2wE,QAAQ,SAAUh8C,KAG3B30B,KAAKs3F,yBAA2B,SAAS3iE,EAAO4iE,GAM5C,IALA,GAAIv9C,GAAQrlB,EAAMqlB,MACdj0C,EAAIi0C,EAAM93C,OACVmqE,EAAM13C,EAAMqV,MAAMqiC,IAClBC,EAAS33C,EAAMqV,MAAMsiC,OACrB5c,EAAO,EAAG31C,EAAK,IAChB,CACC21C,EAAO31C,EACPA,GAAMw9E,EAAM,CACZ,IAAIC,GAAQx9C,EAAMnjC,MAAM64C,EAAM31C,EAC9B,IAAIA,EAAKhU,EAAG,CACR4uB,EAAMqlB,MAAQw9C,EACd7iE,EAAMqV,MAAMqiC,IAAMA,EAAM3c,EACxB/6B,EAAMqV,MAAMsiC,OAASA,CACrB,OAEJkrB,EAAMt+E,KAAK,IACXlZ,KAAK8zF,YACD9pD,MAAOhqC,KAAK4Z,IAAIyyD,EAAM3c,EAAM4c,GAC5BriC,IAAKjqC,KAAK4Z,IAAIyyD,EAAMtyD,EAAIuyD,EAAS,GACjCroC,OAAQtP,EAAMsP,OACd+V,MAAOw9C,IACR,KAGXx3F,KAAKo3F,YAAc,SAASziE,GACxB30B,KAAK8zF,YACD9pD,MAAOhqC,KAAKy2F,SAAS9hE,EAAMqV,OAC3BC,IAAKjqC,KAAKy2F,SAAS9hE,EAAMsV,KACzBhG,OAAyB,UAAhBtP,EAAMsP,OAAqB,SAAW,SAC/C+V,MAAOrlB,EAAMqlB,MAAMnjC,WAG3B7W,KAAKy3F,gBAAkB,SAAStjF,EAAO2qE,GAGnC,IAAK,GAFD9kC,GAAQh6C,KAAKq1F,QAAUr1F,KAAKu1F,cAC5BmC,EAAgB13F,KAAKw1F,sBAAsBtzF,OACtC6C,EAAI+5E,GAAY,EAAG/4E,EAAIi0C,EAAM93C,OAAQ6C,EAAIgB,EAAGhB,IAEjD,IADAoP,GAAS6lC,EAAMj1C,GAAG7C,OAASw1F,GACf,EACR,OAAQrrB,IAAKtnE,EAAGunE,OAAQn4D,EAAQ6lC,EAAMj1C,GAAG7C,OAASw1F,EAE1D,QAAQrrB,IAAKtmE,EAAE,EAAGumE,OAAQtyB,EAAMj0C,EAAE,GAAG7D,SAEzClC,KAAK23F,gBAAkB,SAAS/9E,EAAKklE,GAKjC,IAAK,GAJD9kC,GAAQh6C,KAAKq1F,QAAUr1F,KAAKu1F,cAC5BmC,EAAgB13F,KAAKw1F,sBAAsBtzF,OAC3CiS,EAAQ,EACRk4D,EAAM/0C,KAAKoP,IAAI9sB,EAAIyyD,IAAKryB,EAAM93C,QACzB6C,EAAI+5E,GAAY,EAAG/5E,EAAIsnE,IAAOtnE,EACnCoP,GAAS6lC,EAAMj1C,GAAG7C,OAASw1F,CAE/B,OAAOvjF,GAAQyF,EAAI0yD,UAGxB/rE,KAAK40F,EAAS1yF,WAEjB7C,EAAQu1F,SAAWA,IAGnBlpC,IAAInsD,OAAO,4BAA4B,UAAU,UAAU,SAAS,cAAc,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GACxI,YAEA,IAAIm4D,GAAMnJ,EAAS,aACfsoB,EAAetoB,EAAS,uBAAuBsoB,aAE/CygB,EAAsB,SAASC,EAAWvxD,GAC1CtmC,KAAK83F,SAAU,EACf93F,KAAKg6C,SACLh6C,KAAK+lF,UACL/lF,KAAK+3F,YAAc,EACnB/3F,KAAK63F,UAAYA,CAEjB,IAAI5vF,GAAOjI,IAEXA,MAAKg4F,QAAU,WACX,GAAK/vF,EAAK6vF,QAAV,CAQA,IANA,GAAIG,GAAc,GAAItrF,MAClBorF,EAAc9vF,EAAK8vF,YACnBG,GAAW,EACXrjC,EAAM5sD,EAAK4sD,IAEXsjC,EAAYJ,EACT9vF,EAAK+xC,MAAM+9C,IACdA,GAEJ,IAAIp+E,GAAMk7C,EAAIub,YACVgoB,EAAiB,CAErB,KADAnwF,EAAK6vF,SAAU,EACRC,EAAcp+E,GAAK,CACtB1R,EAAKowF,aAAaN,GAClBG,EAAUH,CACV,IACIA,UACK9vF,EAAK+xC,MAAM+9C,GAEpB,MADAK,EACsB,GAAM,GAAO,GAAIzrF,MAASsrF,EAAe,GAAI,CAC/DhwF,EAAK6vF,QAAU9vF,WAAWC,EAAK+vF,QAAS,GACxC,QAGR/vF,EAAK8vF,YAAcA,EAEfI,GAAaD,GACbjwF,EAAKqwF,gBAAgBH,EAAWD,OAI5C,WAEIlgC,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAKu4F,aAAe,SAASV,GACzB73F,KAAK63F,UAAYA,EACjB73F,KAAKg6C,SACLh6C,KAAK+lF,UAEL/lF,KAAKgqC,MAAM,IAEfhqC,KAAKw4F,YAAc,SAAS3jC,GACxB70D,KAAK60D,IAAMA,EACX70D,KAAKg6C,SACLh6C,KAAK+lF,UAEL/lF,KAAKkvE,QAETlvE,KAAKs4F,gBAAkB,SAASxY,EAAUC,GACtC,GAAIt8E,IACAinC,MAAOo1C,EACPjiD,KAAMkiD,EAEV//E,MAAK2wE,QAAQ,UAAWltE,KAAMA,KAElCzD,KAAKgqC,MAAQ,SAAS80C,GAClB9+E,KAAK+3F,YAAczgE,KAAKoP,IAAIo4C,GAAY,EAAG9+E,KAAK+3F,YAAa/3F,KAAK60D,IAAIub,aACtEpwE,KAAKg6C,MAAMxkC,OAAOxV,KAAK+3F,YAAa/3F,KAAKg6C,MAAM93C,QAC/ClC,KAAK+lF,OAAOvwE,OAAOxV,KAAK+3F,YAAa/3F,KAAK+lF,OAAO7jF,QAEjDlC,KAAKkvE,OACLlvE,KAAK83F,QAAU9vF,WAAWhI,KAAKg4F,QAAS,MAG5Ch4F,KAAKy4F,cAAgB,WACZz4F,KAAK83F,UACN93F,KAAK83F,QAAU9vF,WAAWhI,KAAKg4F,QAAS,OAGhDh4F,KAAK04F,gBAAkB,SAAS/jE,GAC5B,GAAImqD,GAAWnqD,EAAMqV,MAAMqiC,IACvB1yD,EAAMgb,EAAMsV,IAAIoiC,IAAMyS,CAE1B,IAAY,IAARnlE,EACA3Z,KAAKg6C,MAAM8kC,GAAY,SACpB,IAAoB,UAAhBnqD,EAAMsP,OACbjkC,KAAKg6C,MAAMxkC,OAAOspE,EAAUnlE,EAAM,EAAG,MACrC3Z,KAAK+lF,OAAOvwE,OAAOspE,EAAUnlE,EAAM,EAAG,UACnC,CACH,GAAI2U,GAAO9hB,MAAMmN,EAAM,EACvB2U,GAAK+N,QAAQyiD,EAAU,GACvB9+E,KAAKg6C,MAAMxkC,OAAOvE,MAAMjR,KAAKg6C,MAAO1rB,GACpCtuB,KAAK+lF,OAAOvwE,OAAOvE,MAAMjR,KAAK+lF,OAAQz3D,GAG1CtuB,KAAK+3F,YAAczgE,KAAKoP,IAAIo4C,EAAU9+E,KAAK+3F,YAAa/3F,KAAK60D,IAAIub,aAEjEpwE,KAAKkvE,QAETlvE,KAAKkvE,KAAO,WACJlvE,KAAK83F,SACLjyD,aAAa7lC,KAAK83F,SACtB93F,KAAK83F,SAAU,GAEnB93F,KAAKoqF,UAAY,SAAS/d,GACtB,MAAOrsE,MAAKg6C,MAAMqyB,IAAQrsE,KAAKq4F,aAAahsB,IAEhDrsE,KAAK24F,SAAW,SAAStsB,GAGrB,MAFIrsE,MAAK+3F,aAAe1rB,GACpBrsE,KAAKq4F,aAAahsB,GACfrsE,KAAK+lF,OAAO1Z,IAAQ,SAG/BrsE,KAAKq4F,aAAe,SAAShsB,GACzB,GAAIvzB,GAAO94C,KAAK60D,IAAIyoB,QAAQjR,GACxB7zB,EAAQx4C,KAAK+lF,OAAO1Z,EAAM,GAE1B5oE,EAAOzD,KAAK63F,UAAUnQ,cAAc5uC,EAAMN,EAAO6zB,EAWrD,OATIrsE,MAAK+lF,OAAO1Z,GAAO,IAAO5oE,EAAK+0C,MAAQ,IACvCx4C,KAAK+lF,OAAO1Z,GAAO5oE,EAAK+0C,MACxBx4C,KAAKg6C,MAAMqyB,EAAM,GAAK,KAClBrsE,KAAK+3F,YAAc1rB,EAAM,IACzBrsE,KAAK+3F,YAAc1rB,EAAM,IACtBrsE,KAAK+3F,aAAe1rB,IAC3BrsE,KAAK+3F,YAAc1rB,EAAM,GAGtBrsE,KAAKg6C,MAAMqyB,GAAO5oE,EAAK2jF,UAGnC7mF,KAAKq3F,EAAoBn1F,WAE5B7C,EAAQg4F,oBAAsBA,IAG9B3rC,IAAInsD,OAAO,wBAAwB,UAAU,UAAU,SAAS,eAAe,cAAc,aAAc,SAAS+uD,EAAUjvD,EAASC,GACvI,YAEA,IAAI6lE,GAAO7W,EAAS,cAEhBgwB,GADMhwB,EAAS,aACPA,EAAS,WAAWgwB,OAE5B+Z,EAAkB,SAAS7zB,EAAQ8zB,EAAOngF,GAC1C1Y,KAAK84F,UAAU/zB,GACf/kE,KAAK64F,MAAQA,EACb74F,KAAK0Y,KAAOA,GAAQ,SAGxB,WACI1Y,KAAK+4F,WAAa,IAElB/4F,KAAK84F,UAAY,SAAS/zB,GAClB/kE,KAAK+kE,OAAO,IAAMA,EAAO,KAE7B/kE,KAAK+kE,OAASA,EACd/kE,KAAKkgC,WAGTlgC,KAAKg5F,OAAS,SAAS/uC,EAAMgvC,EAAarvB,EAAShmE,GAC/C,GAAK5D,KAAK+kE,OAIV,IAAK,GAFD/6B,GAAQpmC,EAAOk8E,SAAU71C,EAAMrmC,EAAOm8E,QAEjCh7E,EAAIilC,EAAOjlC,GAAKklC,EAAKllC,IAAK,CAC/B,GAAIygF,GAASxlF,KAAKkgC,MAAMn7B,EACV,OAAVygF,IACAA,EAAS9f,EAAKZ,gBAAgB8E,EAAQ0T,QAAQv4E,GAAI/E,KAAK+kE,QACnDygB,EAAOtjF,OAASlC,KAAK+4F,aACrBvT,EAASA,EAAO3uE,MAAM,EAAG7W,KAAK+4F,aAClCvT,EAASA,EAAOvsE,IAAI,SAAStL,GACzB,MAAO,IAAIkxE,GAAM95E,EAAG4I,EAAMq3D,OAAQjgE,EAAG4I,EAAMq3D,OAASr3D,EAAMzL,UAE9DlC,KAAKkgC,MAAMn7B,GAAKygF,EAAOtjF,OAASsjF,EAAS,GAG7C,KAAK,GAAI75D,GAAI65D,EAAOtjF,OAAQypB,KACxBstE,EAAYC,qBACRjvC,EAAMu7B,EAAO75D,GAAGu0D,cAActW,GAAU5pE,KAAK64F,MAAOj1F,OAKrErD,KAAKq4F,EAAgBn2F,WAExB7C,EAAQg5F,gBAAkBA,IAG1B3sC,IAAInsD,OAAO,8BAA8B,UAAU,UAAU,SAAS,aAAc,SAAS+uD,EAAUjvD,EAASC,GAChH,YAGA,SAASs5F,GAASC,EAAUC,GACxBr5F,KAAKo5F,SAAWA,EACZ5sF,MAAMvH,QAAQo0F,GACdr5F,KAAKq5F,MAAQA,EAEbA,EAAQr5F,KAAKq5F,OAAUA,EAG3B,IAAIx7D,GAAOw7D,EAAMA,EAAMn3F,OAAS,EAChClC,MAAKgmC,MAAQ,GAAI64C,GAAMwa,EAAM,GAAGrvD,MAAMqiC,IAAKgtB,EAAM,GAAGrvD,MAAMsiC,OACnCzuC,EAAKoM,IAAIoiC,IAAKxuC,EAAKoM,IAAIqiC,QAC9CtsE,KAAKgqC,MAAQhqC,KAAKgmC,MAAMgE,MACxBhqC,KAAKiqC,IAAQjqC,KAAKgmC,MAAMiE,IAExBjqC,KAAKq5F,MAAMv3F,QAAQ,SAASg7E,GACxBA,EAAKwc,YAAYt5F,OAClBA,MAjBP,GAAI6+E,GAAQhwB,EAAS,YAAYgwB,OAoBjC,WACI7+E,KAAKu5F,SAAW,SAASp8D,GACrBn9B,KAAKgqC,MAAMqiC,KAAOlvC,EAClBn9B,KAAKiqC,IAAIoiC,KAAOlvC,EAChBn9B,KAAKq5F,MAAMv3F,QAAQ,SAASg7E,GACxBA,EAAK9yC,MAAMqiC,KAAOlvC,EAClB2/C,EAAK7yC,IAAIoiC,KAAOlvC,KAIxBn9B,KAAKu9E,QAAU,SAAST,GACpB,GAAIA,EAAK0c,QAAS,CACd,GAAI1c,EAAK9yC,MAAMqiC,IAAMrsE,KAAK8+E,UAAYhC,EAAKkC,OAASh/E,KAAKg/E,OACrD,KAAM,IAAIj+E,OAAM,4DAEpBf,MAAKq5F,MAAMngF,KAAK4jE,GAChB98E,KAAKq5F,MAAMtoE,KAAK,SAASlrB,EAAGyG,GACxB,OAAQzG,EAAEmgC,MAAM25C,WAAWrzE,EAAE09B,MAAMqiC,IAAK//D,EAAE09B,MAAMsiC,UAEhDtsE,KAAKgmC,MAAM25C,WAAW7C,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,QAAU,GAC3DtsE,KAAKiqC,IAAIoiC,IAAMyQ,EAAK7yC,IAAIoiC,IACxBrsE,KAAKiqC,IAAIqiC,OAAUwQ,EAAK7yC,IAAIqiC,QACrBtsE,KAAKgmC,MAAM05C,aAAa5C,EAAK7yC,IAAIoiC,IAAKyQ,EAAK7yC,IAAIqiC,QAAU,IAChEtsE,KAAKgqC,MAAMqiC,IAAMyQ,EAAK9yC,MAAMqiC,IAC5BrsE,KAAKgqC,MAAMsiC,OAASwQ,EAAK9yC,MAAMsiC,YAEhC,IAAIwQ,EAAK9yC,MAAMqiC,KAAOrsE,KAAKiqC,IAAIoiC,IAClCrsE,KAAKq5F,MAAMngF,KAAK4jE,GAChB98E,KAAKiqC,IAAIoiC,IAAMyQ,EAAK7yC,IAAIoiC,IACxBrsE,KAAKiqC,IAAIqiC,OAASwQ,EAAK7yC,IAAIqiC,WACxB,CAAA,GAAIwQ,EAAK7yC,IAAIoiC,KAAOrsE,KAAKgqC,MAAMqiC,IAKlC,KAAM,IAAItrE,OAAM,iEAJhBf,MAAKq5F,MAAMh9D,QAAQygD,GACnB98E,KAAKgqC,MAAMqiC,IAAMyQ,EAAK9yC,MAAMqiC,IAC5BrsE,KAAKgqC,MAAMsiC,OAASwQ,EAAK9yC,MAAMsiC,OAInCwQ,EAAKsG,SAAWpjF,MAGpBA,KAAKy5F,YAAc,SAASptB,GACxB,MAAOA,IAAOrsE,KAAKgqC,MAAMqiC,KAAOA,GAAOrsE,KAAKiqC,IAAIoiC,KAGpDrsE,KAAK0yB,KAAO,SAAS9qB,EAAUo3E,EAAQC,GACnC,GAEInC,GACA5sD,EAAKg/C,EAHLwqB,EAAU,EACVL,EAAQr5F,KAAKq5F,MAEFM,GAAW,CAEZ,OAAV3a,IACAA,EAASh/E,KAAKiqC,IAAIoiC,IAClB4S,EAAYj/E,KAAKiqC,IAAIqiC,OAGzB,KAAK,GAAIvnE,GAAI,EAAGA,EAAIs0F,EAAMn3F,OAAQ6C,IAAK,CAInC,GAHA+3E,EAAOuc,EAAMt0F,IAGD,IADZmrB,EAAM4sD,EAAK92C,MAAM05C,aAAaV,EAAQC,IAGlC,WADAr3E,GAAS,KAAMo3E,EAAQC,EAAWya,EAASC,EAM/C,IAFAzqB,EAAOtnE,EAAS,KAAMk1E,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,OAAQotB,EAASC,IAClEzqB,GAAQA,GAAQtnE,EAASk1E,EAAK8c,YAAa9c,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,OAAQotB,KAC1D,IAARxpE,EACR,MAEJypE,IAAY7c,EAAK0c,QACjBE,EAAU5c,EAAK7yC,IAAIqiC,OAEvB1kE,EAAS,KAAMo3E,EAAQC,EAAWya,EAASC,IAG/C35F,KAAK65F,cAAgB,SAASxtB,EAAKC,GAE/B,IAAK,GADDwQ,GAAM5sD,EACDnrB,EAAI,EAAGA,EAAI/E,KAAKq5F,MAAMn3F,OAAQ6C,IAAK,CAGxC,GAFA+3E,EAAO98E,KAAKq5F,MAAMt0F,IAEN,IADZmrB,EAAM4sD,EAAK92C,MAAM25C,WAAWtT,EAAKC,IAE7B,OACIwQ,KAAMA,EACNgd,KAAM,QAEP,IAAY,IAAR5pE,EACP,OACI4sD,KAAMA,EACNgd,KAAM,UAIlB,MAAO,OAGX95F,KAAK+5F,eAAiB,SAAS1tB,EAAKC,EAAQ3yD,GACxC,GACImjE,GAAMuc,EADN3qE,EAAM1uB,KAAK65F,cAAcxtB,EAAKC,EAElC,IAAI59C,EAEA,GADAouD,EAAOpuD,EAAIouD,KACK,UAAZpuD,EAAIorE,MACDhd,EAAK9yC,MAAMsiC,QAAUA,GACrBwQ,EAAK9yC,MAAMqiC,KAAOA,EAErBp1C,OAAO71B,SAAW61B,OAAO71B,QAAQkG,IAAI+kE,EAAKC,EAAQwQ,OAC/C,IAAIA,EAAK9yC,MAAMqiC,KAAOA,EAAK,CAC9BgtB,EAAQr5F,KAAKq5F,KACb,IAAIt0F,GAAIs0F,EAAMr3F,QAAQ86E,EAItB,KAHU,IAAN/3E,IACA/E,KAAKgqC,MAAMsiC,QAAU3yD,GAEpB5U,EAAGA,EAAIs0F,EAAMn3F,OAAQ6C,IAAK,CAG3B,GAFA+3E,EAAOuc,EAAMt0F,GACb+3E,EAAK9yC,MAAMsiC,QAAU3yD,GAChBmjE,EAAK0c,QACN,MAEJ1c,GAAK7yC,IAAIqiC,QAAU3yD,EAEvB3Z,KAAKiqC,IAAIqiC,QAAU3yD,IAK/B3Z,KAAKyO,MAAQ,SAAS49D,EAAKC,GACvB,GAAI1yD,GAAM5Z,KAAK65F,cAAcxtB,EAAKC,EAElC,KAAK1yD,GAAmB,UAAZA,EAAIkgF,KACZ,MAAO,KAEX,IAAIhd,GAAOljE,EAAIkjE,KACXuc,EAAQr5F,KAAKq5F,MACbD,EAAWp5F,KAAKo5F,SAEhBr0F,EAAIs0F,EAAMr3F,QAAQ86E,GAClBkd,EAAaX,EAAMt0F,EAAI,EAC3B/E,MAAKiqC,IAAIoiC,IAAM2tB,EAAW/vD,IAAIoiC,IAC9BrsE,KAAKiqC,IAAIqiC,OAAS0tB,EAAW/vD,IAAIqiC,OACjC+sB,EAAQA,EAAM7jF,OAAOzQ,EAAGs0F,EAAMn3F,OAAS6C,EAEvC,IAAIk1F,GAAc,GAAId,GAASC,EAAUC,EAEzC,OADAD,GAAS5jF,OAAO4jF,EAASp3F,QAAQhC,MAAQ,EAAG,EAAGi6F,GACxCA,GAGXj6F,KAAK+nF,MAAQ,SAASmS,GAElB,IAAK,GADDb,GAAQa,EAAab,MAChBt0F,EAAI,EAAGA,EAAIs0F,EAAMn3F,OAAQ6C,IAC9B/E,KAAKu9E,QAAQ8b,EAAMt0F,GAEvB,IAAIq0F,GAAWp5F,KAAKo5F,QACpBA,GAAS5jF,OAAO4jF,EAASp3F,QAAQk4F,GAAe,IAGpDl6F,KAAKiN,SAAW,WACZ,GAAIyhB,IAAO1uB,KAAKgmC,MAAM/4B,WAAa,MAMnC,OAJAjN,MAAKq5F,MAAMv3F,QAAQ,SAASg7E,GACxBpuD,EAAIxV,KAAK,KAAO4jE,EAAK7vE,cAEzByhB,EAAIxV,KAAK,KACFwV,EAAI/K,KAAK,OAGpB3jB,KAAKm6F,cAAgB,SAASniE,GAG1B,IAAK,GAFDoiE,GAAoB,EAEfr1F,EAAI,EAAGA,EAAI/E,KAAKq5F,MAAMn3F,OAAQ6C,IAAK,CACxC,GAAI+3E,GAAO98E,KAAKq5F,MAAMt0F,EAGtB,KADAizB,GAAO8kD,EAAK9yC,MAAMsiC,OAAS8tB,GACjB,EACN,OACI/tB,IAAKyQ,EAAK9yC,MAAMqiC,IAChBC,OAAQwQ,EAAK9yC,MAAMsiC,OAASt0C,EAKpC,KADAA,GAAO8kD,EAAK8c,YAAY13F,QACd,EACN,MAAO46E,GAAK9yC,KAGhBowD,GAAoBtd,EAAK7yC,IAAIqiC,OAGjC,OACID,IAAKrsE,KAAKiqC,IAAIoiC,IACdC,OAAQtsE,KAAKiqC,IAAIqiC,OAASt0C,MAGnCz3B,KAAK44F,EAAS12F,WAEjB7C,EAAQu5F,SAAWA,IAGnBltC,IAAInsD,OAAO,kBAAkB,UAAU,UAAU,SAAS,aAAc,SAAS+uD,EAAUjvD,EAASC,GACpG,YACA,IAAIg/E,GAAQhwB,EAAS,WAAWgwB,MAC5BH,EAAgBG,EAAMH,cAEtB2b,EAAY,WACZr6F,KAAKwlF,YAGT,WACIxlF,KAAK0+E,cAAgBA,EAErB1+E,KAAKs6F,WAAa,SAAS1gF,EAAK2gF,EAActvD,GAG1C,IAAK,GAFDqR,GAAOt8C,KAAKwlF,OAEPzgF,EAAIkmC,GAAc,EAAGlmC,EAAIu3C,EAAKp6C,OAAQ6C,IAAK,CAChD,GAAIihC,GAAQsW,EAAKv3C,GACbipE,EAAS0Q,EAAc9kE,EAAKosB,EAAMiE,IACtC,MAAI+jC,EAAS,GAAb,CAEA,GAAID,GAAW2Q,EAAc9kE,EAAKosB,EAAMgE,MACxC,OAAe,KAAXgkC,EACOusB,GAA6B,IAAbxsB,GAAkBhpE,EAAE,EAAIA,EAC/CgpE,EAAW,GAAmB,IAAbA,IAAmBwsB,EAC7Bx1F,GAEHA,EAAE,GAEd,OAAQA,EAAI,GAGhB/E,KAAK4rB,IAAM,SAASoa,GAChB,GAAIu0D,IAAgBv0D,EAAM+/B,UACtB96B,EAAajrC,KAAKs6F,WAAWt0D,EAAMgE,MAAOuwD,EAC1CtvD,GAAa,IACbA,GAAcA,EAAa,EAE/B,IAAIC,GAAWlrC,KAAKs6F,WAAWt0D,EAAMiE,IAAKswD,EAActvD,EAMxD,OAJIC,GAAW,EACXA,GAAYA,EAAW,EAEvBA,IACGlrC,KAAKwlF,OAAOhwE,OAAOy1B,EAAYC,EAAWD,EAAYjF,IAGjEhmC,KAAKw6F,QAAU,SAASl+C,GAEpB,IAAK,GADDmV,MACK1sD,EAAIu3C,EAAKp6C,OAAQ6C,KACtB0sD,EAAQv4C,KAAKjI,MAAMwgD,EAASzxD,KAAK4rB,IAAI0wB,EAAKv3C,IAE9C,OAAO0sD,IAGXzxD,KAAKy6F,eAAiB,SAAS7gF,GAC3B,GAAI7U,GAAI/E,KAAKs6F,WAAW1gF,EAExB,IAAI7U,GAAK,EACL,MAAO/E,MAAKwlF,OAAOhwE,OAAOzQ,EAAG,IAErC/E,KAAK+nF,MAAQ,WACT,GAAIt2B,MACAnV,EAAOt8C,KAAKwlF,MAEhBlpC,GAAOA,EAAKvrB,KAAK,SAASlrB,EAAGyG,GACzB,MAAOoyE,GAAc74E,EAAEmkC,MAAO19B,EAAE09B,QAIpC,KAAK,GADehE,GAAhBrX,EAAO2tB,EAAK,GACPv3C,EAAI,EAAGA,EAAIu3C,EAAKp6C,OAAQ6C,IAAK,CAClCihC,EAAQrX,EACRA,EAAO2tB,EAAKv3C,EACZ,IAAImrB,GAAMwuD,EAAc14C,EAAMiE,IAAKtb,EAAKqb,MACpC9Z,GAAM,IAGC,GAAPA,GAAa8V,EAAM+/B,WAAcp3C,EAAKo3C,aAGtC2Y,EAAc14C,EAAMiE,IAAKtb,EAAKsb,KAAO,IACrCjE,EAAMiE,IAAIoiC,IAAM19C,EAAKsb,IAAIoiC,IACzBrmC,EAAMiE,IAAIqiC,OAAS39C,EAAKsb,IAAIqiC,QAGhChwB,EAAK9mC,OAAOzQ,EAAG,GACf0sD,EAAQv4C,KAAKyV,GACbA,EAAOqX,EACPjhC,KAKJ,MAFA/E,MAAKwlF,OAASlpC,EAEPmV,GAGXzxD,KAAKgtB,SAAW,SAASq/C,EAAKC,GAC1B,MAAOtsE,MAAKs6F,YAAYjuB,IAAKA,EAAKC,OAAQA,KAAY,GAG1DtsE,KAAK06F,cAAgB,SAAS9gF,GAC1B,MAAO5Z,MAAKs6F,WAAW1gF,IAAQ,GAGnC5Z,KAAK26F,aAAe,SAAS/gF,GACzB,GAAI7U,GAAI/E,KAAKs6F,WAAW1gF,EACxB,IAAI7U,GAAK,EACL,MAAO/E,MAAKwlF,OAAOzgF,IAI3B/E,KAAK6/E,SAAW,SAASf,EAAUE,GAC/B,GAAI1iC,GAAOt8C,KAAKwlF,MAChB,IAAIlpC,EAAK,GAAGtS,MAAMqiC,IAAM2S,GAAU1iC,EAAKA,EAAKp6C,OAAS,GAAG8nC,MAAMqiC,IAAMyS,EAChE,QAEJ,IAAI7zC,GAAajrC,KAAKs6F,YAAYjuB,IAAKyS,EAAUxS,OAAQ,GACrDrhC,GAAa,IACbA,GAAcA,EAAa,EAC/B,IAAIC,GAAWlrC,KAAKs6F,YAAYjuB,IAAK2S,EAAQ1S,OAAQ,GAAIrhC,EACrDC,GAAW,IACXA,GAAYA,EAAW,EAG3B,KAAK,GADD0vD,MACK71F,EAAIkmC,EAAYlmC,EAAImmC,EAAUnmC,IACnC61F,EAAQ1hF,KAAKojC,EAAKv3C,GAEtB,OAAO61F,IAGX56F,KAAK66F,UAAY,WACb,MAAO76F,MAAKwlF,OAAOhwE,OAAO,EAAGxV,KAAKwlF,OAAOtjF,SAG7ClC,KAAKk+E,OAAS,SAAStU,GACf5pE,KAAK4pE,SACL5pE,KAAKm+E,SAETn+E,KAAK4pE,QAAUA,EACf5pE,KAAKwB,SAAWxB,KAAKk0F,UAAUtxD,KAAK5iC,MAEpCA,KAAK4pE,QAAQ/b,GAAG,SAAU7tD,KAAKwB,WAGnCxB,KAAKm+E,OAAS,WACLn+E,KAAK4pE,UAEV5pE,KAAK4pE,QAAQrJ,eAAe,SAAUvgE,KAAKwB,UAC3CxB,KAAK4pE,QAAU,OAGnB5pE,KAAKk0F,UAAY,SAASv/D,GACtB,GAAoB,UAAhBA,EAAMsP,OACN,GAAI+F,GAAQrV,EAAMqV,MACdC,EAAMtV,EAAMsV,QAEhB,IAAIA,GAAMtV,EAAMqV,MACZA,EAAQrV,EAAMsV,GAStB,KAAK,GAPD60C,GAAW90C,EAAMqiC,IACjB2S,EAAS/0C,EAAIoiC,IACbyuB,EAAU9b,EAASF,EAEnBsT,GAAWpoD,EAAMsiC,OAASriC,EAAIqiC,OAC9BkZ,EAASxlF,KAAKwlF,OAETzgF,EAAI,EAAGS,EAAIggF,EAAOtjF,OAAQ6C,EAAIS,EAAGT,IAAK,CAC3C,GAAIU,GAAI+/E,EAAOzgF,EACf,MAAIU,EAAEwkC,IAAIoiC,IAAMyS,GAAhB,CAEA,GAAIr5E,EAAEukC,MAAMqiC,IAAMyS,EACd,KASJ,IAPIr5E,EAAEukC,MAAMqiC,KAAOyS,GAAYr5E,EAAEukC,MAAMsiC,QAAUtiC,EAAMsiC,SAC/C7mE,EAAEukC,MAAMsiC,QAAUtiC,EAAMsiC,QAAUtsE,KAAKi1F,eAEvCxvF,EAAEukC,MAAMsiC,QAAU8lB,EAClB3sF,EAAEukC,MAAMqiC,KAAOyuB,IAGnBr1F,EAAEwkC,IAAIoiC,KAAOyS,GAAYr5E,EAAEwkC,IAAIqiC,QAAUtiC,EAAMsiC,OAAQ,CACvD,GAAI7mE,EAAEwkC,IAAIqiC,QAAUtiC,EAAMsiC,QAAUtsE,KAAKi1F,aACrC,QAEAxvF,GAAEwkC,IAAIqiC,QAAUtiC,EAAMsiC,QAAU8lB,EAAU,GAAKrtF,EAAIS,EAAI,GACnDC,EAAEwkC,IAAIqiC,OAAS7mE,EAAEukC,MAAMsiC,QAAU7mE,EAAEwkC,IAAIqiC,QAAUkZ,EAAOzgF,EAAE,GAAGilC,MAAMsiC,SACnE7mE,EAAEwkC,IAAIqiC,QAAU8lB,GAExB3sF,EAAEwkC,IAAIqiC,QAAU8lB,EAChB3sF,EAAEwkC,IAAIoiC,KAAOyuB,IAIrB,GAAe,GAAXA,GAAgB/1F,EAAIS,EACpB,KAAOT,EAAIS,EAAGT,IAAK,CACf,GAAIU,GAAI+/E,EAAOzgF,EACfU,GAAEukC,MAAMqiC,KAAOyuB,EACfr1F,EAAEwkC,IAAIoiC,KAAOyuB,MAK1Bv6F,KAAK85F,EAAU53F,WAElB7C,EAAQy6F,UAAYA,IAGpBpuC,IAAInsD,OAAO,yBAAyB,UAAU,UAAU,SAAS,YAAY,iBAAiB,eAAgB,SAAS+uD,EAAUjvD,EAASC,GAC1I,YAkFA,SAASk7F,GAAatG,EAAOxoD,GACzBwoD,EAAMpoB,KAAOpgC,EAAOogC,IACH,GAAbooB,EAAMpoB,MACNooB,EAAMnoB,QAAUrgC,EAAOqgC,QAE/B,QAAS0uB,GAAah1D,EAAOiG,GACzB8uD,EAAa/0D,EAAMgE,MAAOiC,GAC1B8uD,EAAa/0D,EAAMiE,IAAKgC,GAE5B,QAASgvD,GAAaxG,EAAOxoD,GACR,GAAbwoD,EAAMpoB,MACNooB,EAAMnoB,QAAUrgC,EAAOqgC,QAC3BmoB,EAAMpoB,KAAOpgC,EAAOogC,IAExB,QAAS6uB,GAAal1D,EAAOiG,GACzBgvD,EAAaj1D,EAAMgE,MAAOiC,GAC1BgvD,EAAaj1D,EAAMiE,IAAKgC,GAhG5B,GACIouD,IADQxrC,EAAS,YAAYgwB,MACjBhwB,EAAS,iBAAiBwrC,WACtCriC,EAAMnJ,EAAS,cACfssC,EAAOv7F,EAAQu7F,KAAO,SAASn1D,EAAO4zD,GACtC55F,KAAKojF,SAAW,KAChBpjF,KAAK45F,YAAcA,EACnB55F,KAAKgmC,MAAQA,EACbhmC,KAAKgqC,MAAQhE,EAAMgE,MACnBhqC,KAAKiqC,IAAMjE,EAAMiE,IAEjBjqC,KAAKw5F,QAAUxzD,EAAMgE,MAAMqiC,KAAOrmC,EAAMiE,IAAIoiC,IAC5CrsE,KAAKo7F,SAAWp7F,KAAKwlF,UAGzBxtB,GAAIN,SAASyjC,EAAMd,GAEnB,WAEIr6F,KAAKiN,SAAW,WACZ,MAAO,IAAMjN,KAAK45F,YAAc,KAAO55F,KAAKgmC,MAAM/4B,YAGtDjN,KAAKs5F,YAAc,SAASlW,GACxBpjF,KAAKojF,SAAWA,EAChBpjF,KAAKo7F,SAASt5F,QAAQ,SAASg7E,GAC3BA,EAAKwc,YAAYlW,MAIzBpjF,KAAK4gD,MAAQ,WACT,GAAI5a,GAAQhmC,KAAKgmC,MAAM4a,QACnBk8B,EAAO,GAAIqe,GAAKn1D,EAAOhmC,KAAK45F,YAKhC,OAJA55F,MAAKo7F,SAASt5F,QAAQ,SAASu5F,GAC3Bve,EAAKse,SAASliF,KAAKmiF,EAAQz6C,WAE/Bk8B,EAAKwe,iBAAmBt7F,KAAKs7F,iBACtBxe,GAGX98E,KAAKu7F,WAAa,SAASze,GACvB,IAAI98E,KAAKgmC,MAAMk5C,QAAQpC,GAAvB,CAGA,IAAK98E,KAAKgmC,MAAMo5C,cAActC,GAC1B,KAAM,IAAI/7E,OAAM,+CAAiD+7E,EAAK92C,MAAQhmC,KAAKgmC,MACvFg1D,GAAale,EAAM98E,KAAKgqC,MAGxB,KAAK,GADDqiC,GAAMyQ,EAAK9yC,MAAMqiC,IAAKC,EAASwQ,EAAK9yC,MAAMsiC,OACrCvnE,EAAI,EAAGmrB,GAAO,EAAGnrB,EAAI/E,KAAKo7F,SAASl5F,QAE7B,IADXguB,EAAMlwB,KAAKo7F,SAASr2F,GAAGihC,MAAMz4B,QAAQ8+D,EAAKC,IADMvnE,KAKpD,GAAIy2F,GAAax7F,KAAKo7F,SAASr2F,EAE/B,IAAW,GAAPmrB,EACA,MAAOsrE,GAAWD,WAAWze,EAEjC,KAAK,GADDzQ,GAAMyQ,EAAK92C,MAAMiE,IAAIoiC,IAAKC,EAASwQ,EAAK92C,MAAMiE,IAAIqiC,OAC7C3gD,EAAI5mB,EAAGmrB,GAAO,EAAGvE,EAAI3rB,KAAKo7F,SAASl5F,QAE7B,IADXguB,EAAMlwB,KAAKo7F,SAASzvE,GAAGqa,MAAMz4B,QAAQ8+D,EAAKC,IADM3gD,KAKrC3rB,KAAKo7F,SAASzvE,EAE7B,IAAW,GAAPuE,EACA,KAAM,IAAInvB,OAAM,+CAAiD+7E,EAAK92C,MAAQhmC,KAAKgmC,MAEnEhmC,MAAKo7F,SAAS5lF,OAAOzQ,EAAG4mB,EAAI5mB,EAAG+3E,EAGnD,OAFAA,GAAKwc,YAAYt5F,KAAKojF,UAEftG,IAGX98E,KAAKk7F,aAAe,SAASl1D,GACzB,MAAOk1D,GAAal1D,EAAOhmC,KAAKgqC,SAGrCzpC,KAAK46F,EAAK14F,aAuBbwpD,IAAInsD,OAAO,4BAA4B,UAAU,UAAU,SAAS,YAAY,6BAA6B,wBAAwB,sBAAuB,SAAS+uD,EAAUjvD,EAASC,GACxL,YAOA,SAAS47F,KACLz7F,KAAK+8E,UAAY,SAAS1Q,EAAKC,EAAQovB,GACnC,GAAItY,GAAWpjF,KAAKqjF,YAAYhX,EAChC,KAAK+W,EACD,MAAO,KAGX,KAAK,GADDiW,GAAQjW,EAASiW,MACZt0F,EAAI,EAAGA,EAAIs0F,EAAMn3F,OAAQ6C,IAAK,CACnC,GAAI+3E,GAAOuc,EAAMt0F,EACjB,IAAI+3E,EAAK92C,MAAMhZ,SAASq/C,EAAKC,GAAS,CAClC,GAAY,GAARovB,GAAa5e,EAAK92C,MAAMs5C,MAAMjT,EAAKC,GACnC,QACG,KAAa,GAATovB,GAAc5e,EAAK92C,MAAMu5C,QAAQlT,EAAKC,GAC7C,QAEJ,OAAOwQ,MAInB98E,KAAK27F,gBAAkB,SAAS31D,GAC5B,GAAIgE,GAAQhE,EAAMgE,MACdC,EAAMjE,EAAMiE,IACZ2xD,EAAY57F,KAAK67F,UACjBC,IAEJ9xD,GAAMsiC,QAAU,EAChBriC,EAAIqiC,QAAU,CAEd,KAAK,GAAIvnE,GAAI,EAAGA,EAAI62F,EAAU15F,OAAQ6C,IAAK,CACvC,GAAImrB,GAAM0rE,EAAU72F,GAAGihC,MAAMm5C,aAAan5C,EAC1C,IAAW,GAAP9V,EAAJ,CAGK,IAAY,GAARA,EACL,KAIJ,KAAK,GADDmpE,GAAQuC,EAAU72F,GAAGs0F,MAChB1tE,EAAI,EAAGA,EAAI0tE,EAAMn3F,OAAQypB,IAAK,CACnC,GAAImxD,GAAOuc,EAAM1tE,EAEjB,KAAY,IADZuE,EAAM4sD,EAAK92C,MAAMm5C,aAAan5C,IAE1B,KACG,IAAW,GAAP9V,EAAJ,CAGP,GAAW,IAAPA,EACA,KAEJ4rE,GAAW5iF,KAAK4jE,MAMxB,MAHA9yC,GAAMsiC,QAAU,EAChBriC,EAAIqiC,QAAU,EAEPwvB,GAGX97F,KAAK+7F,oBAAsB,SAASvW,GAChC,GAAIh5E,MAAMvH,QAAQugF,GAAS,CACvB,GAAI6T,KACJ7T,GAAO1jF,QAAQ,SAASkkC,GACpBqzD,EAAQA,EAAMjgF,OAAOpZ,KAAK27F,gBAAgB31D,KAC3ChmC,UAEH,IAAIq5F,GAAQr5F,KAAK27F,gBAAgBnW,EAErC,OAAO6T,IAEXr5F,KAAKg8F,YAAc,WAIf,IAAK,GAHD3C,MACAuC,EAAY57F,KAAK67F,UAEZ92F,EAAI,EAAGA,EAAI62F,EAAU15F,OAAQ6C,IAClC,IAAK,GAAI4mB,GAAI,EAAGA,EAAIiwE,EAAU72F,GAAGs0F,MAAMn3F,OAAQypB,IAC3C0tE,EAAMngF,KAAK0iF,EAAU72F,GAAGs0F,MAAM1tE,GAEtC,OAAO0tE,IAEXr5F,KAAKykF,gBAAkB,SAASpY,EAAKC,EAAQhxC,EAAM8nD,GAE/C,KADAA,EAAWA,GAAYpjF,KAAKqjF,YAAYhX,IAEpC,MAAO,KAMX,KAAK,GADD5+D,GAAKqvE,EAHLmf,GACAhyD,KAAOqiC,OAAQ,IAGVvnE,EAAI,EAAGA,EAAIq+E,EAASiW,MAAMn3F,OAAQ6C,IAAK,CAC5C+3E,EAAOsG,EAASiW,MAAMt0F,EACtB,IAAImrB,GAAM4sD,EAAK92C,MAAM25C,WAAWtT,EAAKC,EACrC,KAAY,GAARp8C,EAAW,CACXziB,EAAMzN,KACDs9E,QAAQR,EAAK9yC,MAAMqiC,KACnBx4B,UAAUooD,EAAShyD,IAAIqiC,OAAQwQ,EAAK9yC,MAAMsiC,OAC/C,OAEC,GAAY,IAARp8C,EACL,MAAO,KAEX+rE,GAAWnf,EAKf,MAHKrvE,KACDA,EAAMzN,KAAKs9E,QAAQR,EAAK9yC,MAAMqiC,KAAKx4B,UAAUooD,EAAShyD,IAAIqiC,UAEjD,GAAThxC,EACO7tB,EAAIomC,UAAU,EAAGy4B,EAAS2vB,EAAShyD,IAAIqiC,QACjC,GAARhxC,EACE7tB,EAAIomC,UAAUy4B,EAAS2vB,EAAShyD,IAAIqiC,QAEpC7+D,GAGfzN,KAAKqjF,YAAc,SAAS6Y,EAAQC,GAChC,GAAI/C,GAAWp5F,KAAK67F,UAChB92F,EAAI,CAKR,KAJIo3F,IACAp3F,EAAIq0F,EAASp3F,QAAQm6F,KACf,GAANp3F,IACAA,EAAI,GACHA,EAAGA,EAAIq0F,EAASl3F,OAAQ6C,IAAK,CAC9B,GAAIq+E,GAAWgW,EAASr0F,EACxB,IAAIq+E,EAASp5C,MAAMqiC,KAAO6vB,GAAU9Y,EAASn5C,IAAIoiC,KAAO6vB,EACpD,MAAO9Y,EACJ,IAAIA,EAASn5C,IAAIoiC,IAAM6vB,EAC1B,MAAO,MAGf,MAAO,OAEXl8F,KAAKo8F,gBAAkB,SAASF,EAAQC,GACpC,GAAI/C,GAAWp5F,KAAK67F,UAChB92F,EAAI,CAKR,KAJIo3F,IACAp3F,EAAIq0F,EAASp3F,QAAQm6F,KACf,GAANp3F,IACAA,EAAI,GACHA,EAAGA,EAAIq0F,EAASl3F,OAAQ6C,IAAK,CAC9B,GAAIq+E,GAAWgW,EAASr0F,EACxB,IAAIq+E,EAASn5C,IAAIoiC,KAAO6vB,EACpB,MAAO9Y,GAGf,MAAO,OAGXpjF,KAAKq8F,kBAAoB,SAAS3xD,EAAO7M,GAErC,IAAK,GADDu7D,GAAWp5F,KAAK67F,UAAWpR,EAAW5sD,EAAK6M,EAAM,EAC5C3lC,EAAI,EAAGA,EAAIq0F,EAASl3F,OAAQ6C,IAAK,CACtC,GAAIq+E,GAAWgW,EAASr0F,GACpBklC,EAAMm5C,EAASn5C,IAAIoiC,IACnBriC,EAAQo5C,EAASp5C,MAAMqiC,GAC3B,IAAIpiC,GAAOpM,EAAM,CACTmM,EAAQnM,IACJmM,GAASU,EACT+/C,GAAY5sD,EAAKmM,EAEjBygD,EAAW,EAEnB,OACOxgD,GAAOS,IAEV+/C,GADAzgD,GAASU,EACIT,EAAID,EAEJC,EAAIS,EAAM,GAGnC,MAAO+/C,IAGXzqF,KAAKs8F,aAAe,SAASlZ,GAKzB,MAJApjF,MAAK67F,UAAU3iF,KAAKkqE,GACpBpjF,KAAK67F,UAAU9qE,KAAK,SAASlrB,EAAGyG,GAC5B,MAAOzG,GAAEmkC,MAAMqiC,IAAM//D,EAAE09B,MAAMqiC,MAE1B+W,GAEXpjF,KAAKu9E,QAAU,SAASqc,EAAa5zD,GACjC,GAEI82C,GAFAsc,EAAWp5F,KAAK67F,UAChBU,GAAQ,CAGR3C,aAAuBuB,GACvBre,EAAO8c,GAEP9c,EAAO,GAAIqe,GAAKn1D,EAAO4zD,GACvB9c,EAAKwe,iBAAmBt1D,EAAMs1D,kBAElCt7F,KAAKw8F,qBAAqB1f,EAAK92C,MAE/B,IAAI84C,GAAWhC,EAAK9yC,MAAMqiC,IACtB0S,EAAcjC,EAAK9yC,MAAMsiC,OACzB0S,EAASlC,EAAK7yC,IAAIoiC,IAClB4S,EAAYnC,EAAK7yC,IAAIqiC,MACzB,MAAMwS,EAAWE,GACbF,GAAYE,GAAUD,GAAeE,EAAY,GACjD,KAAM,IAAIl+E,OAAM,kDAEpB,IAAI07F,GAAYz8F,KAAK+8E,UAAU+B,EAAUC,EAAa,GAClD2d,EAAU18F,KAAK+8E,UAAUiC,EAAQC,GAAY,EACjD,IAAIwd,GAAaC,GAAWD,EACxB,MAAOA,GAAUlB,WAAWze,EAE5B2f,KAAcA,EAAUz2D,MAAMu5C,QAAQT,EAAUC,IAChD/+E,KAAKg9E,WAAWyf,GAEhBC,IAAYA,EAAQ12D,MAAMs5C,MAAMN,EAAQC,IACxCj/E,KAAKg9E,WAAW0f,EACpB,IAAIrD,GAAQr5F,KAAK27F,gBAAgB7e,EAAK92C,MAClCqzD,GAAMn3F,OAAS,IACflC,KAAK28F,YAAYtD,GACjBA,EAAMv3F,QAAQ,SAASu5F,GACnBve,EAAKye,WAAWF,KAIxB,KAAK,GAAIt2F,GAAI,EAAGA,EAAIq0F,EAASl3F,OAAQ6C,IAAK,CACtC,GAAIq+E,GAAWgW,EAASr0F,EACxB,IAAIi6E,GAAUoE,EAASp5C,MAAMqiC,IAAK,CAC9B+W,EAAS7F,QAAQT,GACjByf,GAAQ,CACR,OACG,GAAIzd,GAAYsE,EAASn5C,IAAIoiC,IAAK,CAGrC,GAFA+W,EAAS7F,QAAQT,GACjByf,GAAQ,GACHzf,EAAK0c,QAAS,CACf,GAAIU,GAAed,EAASr0F,EAAI,EAChC,IAAIm1F,GAAgBA,EAAalwD,MAAMqiC,KAAO2S,EAAQ,CAClDoE,EAAS2E,MAAMmS,EACf,QAGR,MACG,GAAIlb,GAAUoE,EAASp5C,MAAMqiC,IAChC,MAcR,MAVKkwB,KACDnZ,EAAWpjF,KAAKs8F,aAAa,GAAInD,GAASn5F,KAAK67F,UAAW/e,KAE1D98E,KAAK48F,aACL58F,KAAK68F,gBAAgBzZ,EAASp5C,MAAMqiC,IAAK+W,EAASp5C,MAAMqiC,KAExDrsE,KAAK88F,sBAAsB1Z,EAASp5C,MAAMqiC,IAAK+W,EAASp5C,MAAMqiC,KAClErsE,KAAK+8F,WAAY,EACjB/8F,KAAK2wE,QAAQ,cAAgBltE,KAAMq5E,EAAM74C,OAAQ,QAE1C64C,GAGX98E,KAAKg9F,SAAW,SAAS3D,GACrBA,EAAMv3F,QAAQ,SAASg7E,GACnB98E,KAAKu9E,QAAQT,IACd98E,OAGPA,KAAKg9E,WAAa,SAASF,GACvB,GAAIsG,GAAWtG,EAAKsG,SAChBtE,EAAWsE,EAASp5C,MAAMqiC,IAC1B2S,EAASoE,EAASn5C,IAAIoiC,IAEtBuvB,EAAY57F,KAAK67F,UACjBxC,EAAQjW,EAASiW,KACrB,IAAoB,GAAhBA,EAAMn3F,OACN05F,EAAUpmF,OAAOomF,EAAU55F,QAAQohF,GAAW,OAElD,IAAIA,EAASp9C,MAAMs5C,MAAMxC,EAAK7yC,IAAIoiC,IAAKyQ,EAAK7yC,IAAIqiC,QAC5C+sB,EAAMj5E,MACNgjE,EAASn5C,IAAIoiC,IAAMgtB,EAAMA,EAAMn3F,OAAS,GAAG+nC,IAAIoiC,IAC/C+W,EAASn5C,IAAIqiC,OAAS+sB,EAAMA,EAAMn3F,OAAS,GAAG+nC,IAAIqiC,WAEtD,IAAI8W,EAASp9C,MAAMu5C,QAAQzC,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,QAClD+sB,EAAMl8D,QACNimD,EAASp5C,MAAMqiC,IAAMgtB,EAAM,GAAGrvD,MAAMqiC,IACpC+W,EAASp5C,MAAMsiC,OAAS+sB,EAAM,GAAGrvD,MAAMsiC,WAE3C,IAAIwQ,EAAK0c,QACLH,EAAM7jF,OAAO6jF,EAAMr3F,QAAQ86E,GAAO,OAEtC,CACI,GAAImd,GAAc7W,EAAS30E,MAAMquE,EAAK9yC,MAAMqiC,IAAKyQ,EAAK9yC,MAAMsiC,OAC5D+sB,GAAQY,EAAYZ,MACpBA,EAAMl8D,QACN88D,EAAYjwD,MAAMqiC,IAAMgtB,EAAM,GAAGrvD,MAAMqiC,IACvC4tB,EAAYjwD,MAAMsiC,OAAS+sB,EAAM,GAAGrvD,MAAMsiC,OAGzCtsE,KAAKi9F,YACFj9F,KAAK48F,aACL58F,KAAK68F,gBAAgB/d,EAAUE,GAE/Bh/E,KAAK88F,sBAAsBhe,EAAUE,IAE7Ch/E,KAAK+8F,WAAY,EACjB/8F,KAAK2wE,QAAQ,cAAgBltE,KAAMq5E,EAAM74C,OAAQ,YAGrDjkC,KAAK28F,YAAc,SAAStD,GAExB,IAAK,GADD6D,MACKn4F,EAAI,EAAGA,EAAIs0F,EAAMn3F,OAAQ6C,IAC9Bm4F,EAAWhkF,KAAKmgF,EAAMt0F,GAG1Bm4F,GAAWp7F,QAAQ,SAASg7E,GACxB98E,KAAKg9E,WAAWF,IACjB98E,MACHA,KAAK+8F,WAAY,GAGrB/8F,KAAKi9E,WAAa,SAASH,GACvB98E,KAAKg9E,WAAWF,GAChBA,EAAKse,SAASt5F,QAAQ,SAASu5F,GAC3Bve,EAAKoe,aAAaG,GAClBr7F,KAAKu9E,QAAQ8d,IACdr7F,MACC88E,EAAKwe,iBAAmB,GACxBt7F,KAAKm9F,QAAQrgB,EAAK9yC,MAAMqiC,IAAI,EAAGyQ,EAAK7yC,IAAIoiC,IAAKyQ,EAAKwe,iBAAiB,GAEvExe,EAAKse,aAGTp7F,KAAKo9F,YAAc,SAAS/D,GACxBA,EAAMv3F,QAAQ,SAASg7E,GACnB98E,KAAKi9E,WAAWH,IACjB98E,OAGPA,KAAKq9F,OAAS,SAASx9B,EAAUy9B,GAC7B,GAAIt3D,GAAOqzD,CAYX,IAXgB,MAAZx5B,GACA75B,EAAQ,GAAI64C,GAAM,EAAG,EAAG7+E,KAAKowE,YAAa,GAC1CktB,GAAc,GAEdt3D,EAD0B,gBAAZ65B,GACN,GAAIgf,GAAMhf,EAAU,EAAGA,EAAU7/D,KAAKs9E,QAAQzd,GAAU39D,QAC3D,OAAS29D,GACNgf,EAAMmB,WAAWngB,EAAUA,GAE3BA,EAEZw5B,EAAQr5F,KAAK+7F,oBAAoB/1D,GAC7Bs3D,EACAt9F,KAAK28F,YAAYtD,OAGjB,KADA,GAAI+B,GAAW/B,EACR+B,EAASl5F,QACZlC,KAAKo9F,YAAYhC,GACjBA,EAAWp7F,KAAK+7F,oBAAoB/1D,EAG5C,IAAIqzD,EAAMn3F,OACN,MAAOm3F,IAEfr5F,KAAKu9F,YAAc,SAASrB,EAAQsB,GAChC,QAASx9F,KAAKqjF,YAAY6Y,EAAQsB,IAGtCx9F,KAAKy9F,cAAgB,SAASvB,EAAQsB,GAClC,GAAIpa,GAAWpjF,KAAKqjF,YAAY6Y,EAAQsB,EACxC,OAAOpa,GAAWA,EAASn5C,IAAIoiC,IAAM6vB,GAGzCl8F,KAAK09F,gBAAkB,SAASxB,EAAQsB,GACpC,GAAIpa,GAAWpjF,KAAKqjF,YAAY6Y,EAAQsB,EACxC,OAAOpa,GAAWA,EAASp5C,MAAMqiC,IAAM6vB,GAG3Cl8F,KAAK29F,mBAAqB,SAASva,EAAUpE,EAAQC,EAAWH,EAAUC,GACtD,MAAZD,IACAA,EAAWsE,EAASp5C,MAAMqiC,KACX,MAAf0S,IACAA,EAAc,GACJ,MAAVC,IACAA,EAASoE,EAASn5C,IAAIoiC,KACT,MAAb4S,IACAA,EAAYj/E,KAAKs9E,QAAQ0B,GAAQ98E,OACrC,IAAI2yD,GAAM70D,KAAK60D,IACX+oC,EAAW,EAiBf,OAfAxa,GAAS1wD,KAAK,SAASknE,EAAavtB,EAAKC,EAAQuxB,GAC7C,KAAIxxB,EAAMyS,GAAV,CAEA,GAAIzS,GAAOyS,EAAU,CACjB,GAAIxS,EAASyS,EACT,MACJ8e,GAAavmE,KAAKqP,IAAIo4C,EAAa8e,GAInCD,GADe,MAAfhE,EACYA,EAEA/kC,EAAIyoB,QAAQjR,GAAKx4B,UAAUgqD,EAAYvxB,KAExD0S,EAAQC,GACJ2e,GAGX59F,KAAK8jF,eAAiB,SAASzX,EAAK4S,EAAWH,EAAUC,GACrD,GAAIqE,GAAWpjF,KAAKqjF,YAAYhX,EAEhC,IAAK+W,EAKD,MAAOpjF,MAAK29F,mBACRva,EAAU/W,EAAK4S,EAAWH,EAAUC,EALxC,IAAIjmC,EAEJ,OADAA,GAAO94C,KAAK60D,IAAIyoB,QAAQjR,GACjBvzB,EAAKjF,UAAUkrC,GAAe,EAAGE,GAAanmC,EAAK52C,SAOlElC,KAAK89F,eAAiB,WAClB,GAAIC,KAQJ,OAPAA,GAAK/9F,KAAK67F,UAAU5iF,IAAI,SAASmqE,GAC7B,GAAIiW,GAAQjW,EAASiW,MAAMpgF,IAAI,SAAS6jE,GACpC,MAAOA,GAAKl8B,SAEhB,OAAO,IAAIu4C,GAAS4E,EAAI1E,MAMhCr5F,KAAKg+F,WAAa,SAASC,GACvB,GAEInhB,GACAohB,EAHAt8D,EAAY5hC,KAAK4hC,UACjBoE,EAAQpE,EAAUqoC,UAItB,IAAIjkC,EAAM+/B,UAAW,CACjB,GAAIthB,GAASze,EAAMgE,KAGnB,IAFA8yC,EAAO98E,KAAK+8E,UAAUt4B,EAAO4nB,IAAK5nB,EAAO6nB,QAIrC,WADAtsE,MAAKi9E,WAAWH,IAETohB,EAAal+F,KAAK8sF,oBAAoBroC,IACP,GAAlCze,EAAM0nC,aAAawwB,GACnBl4D,EAAMiE,IAAMi0D,GAEZl4D,EAAMgE,MAAQk0D,EACdl4D,EAAMgE,MAAMsiC,SACZtmC,EAAMiE,IAAIqiC,WAEP4xB,EAAal+F,KAAK8sF,qBAAqBzgB,IAAK5nB,EAAO4nB,IAAKC,OAAQ7nB,EAAO6nB,OAAS,MACjD,GAAlCtmC,EAAM0nC,aAAawwB,GACnBl4D,EAAMiE,IAAMi0D,EAEZl4D,EAAMgE,MAAQk0D,EAElBl4D,EAAMgE,MAAMsiC,UAEZtmC,EAAQhmC,KAAKm+F,oBAAoB15C,EAAO4nB,IAAK5nB,EAAO6nB,SAAWtmC,MAEhE,CACH,GAAIqzD,GAAQr5F,KAAK27F,gBAAgB31D,EACjC,IAAIi4D,GAAe5E,EAAMn3F,OAErB,WADAlC,MAAKo9F,YAAY/D,EAEM,IAAhBA,EAAMn3F,SACb46E,EAAOuc,EAAM,IAOrB,GAHKvc,IACDA,EAAO98E,KAAK+8E,UAAU/2C,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,SAEnDwQ,GAAQA,EAAK92C,MAAM/4B,YAAc+4B,EAAM/4B,WAEvC,WADAjN,MAAKi9E,WAAWH,EAIpB,IAAI8c,GAAc,KAClB,KAAK5zD,EAAM2oC,cAAe,CAEtB,GADAirB,EAAc55F,KAAKq1E,aAAarvC,GAC5B4zD,EAAY13F,OAAS,EACrB,MACJ03F,GAAcA,EAAYt+D,OAAOuY,UAAU,EAAG,GAAK,KAGvD7zC,KAAKu9E,QAAQqc,EAAa5zD,IAG9BhmC,KAAKm+F,oBAAsB,SAAS9xB,EAAKC,EAAQ8xB,GAC7C,GAAIxQ,GAAW,GAAI9D,GAAc9pF,KAAMqsE,EAAKC,GACxC10B,EAAQg2C,EAASlD,iBACrB,IAAI9yC,GAAS,kBAAkB/oC,KAAK+oC,EAAMl/B,MAAO,CAC7C,GAAIstB,GAAQ,GAAI64C,GACZr0B,EAAK,GAAIz9C,QAAO6qC,EAAMl/B,KAAKX,QAAQ,OAAQ,OAC/C,IAAW,GAAPqmF,EAAU,CACV,GACIxmD,EAAQg2C,EAASrD,qBACZ3yC,GAAS4S,EAAG37C,KAAK+oC,EAAMl/B,MAChCk1E,GAASpD,cAQb,GALAxkD,EAAMgE,MAAMqiC,IAAMuhB,EAASjD,qBAC3B3kD,EAAMgE,MAAMsiC,OAASshB,EAAShD,wBAA0B,EAExDgD,EAAW,GAAI9D,GAAc9pF,KAAMqsE,EAAKC,IAE5B,GAAR8xB,EAAW,CACX,GACIxmD,EAAQg2C,EAASpD,oBACZ5yC,GAAS4S,EAAG37C,KAAK+oC,EAAMl/B,MAChCk/B,GAAQg2C,EAASrD,mBAEjB3yC,GAAQg2C,EAASlD,iBAIrB,OAFA1kD,GAAMiE,IAAIoiC,IAAMuhB,EAASjD,qBACzB3kD,EAAMiE,IAAIqiC,OAASshB,EAAShD,wBAA0BhzC,EAAMnuC,MAAMvH,OAAS,EACpE8jC,IAIfhmC,KAAKm9F,QAAU,SAASre,EAAUE,EAAQqf,OACzBzuF,IAATyuF,IACAA,EAAQ,IACZ,IAAInhB,GAAcl9E,KAAKk9E,WACvB,IAAKA,EAAL,CAEA8B,EAASA,GAAUh/E,KAAKowE,YACxB0O,EAAWA,GAAY,CACvB,KAAK,GAAIzS,GAAMyS,EAAUzS,EAAM2S,EAAQ3S,IAGnC,GAFwB,MAApB6Q,EAAY7Q,KACZ6Q,EAAY7Q,GAAOrsE,KAAKs+F,cAAcjyB,IAClB,SAApB6Q,EAAY7Q,GAAhB,CAGA,GAAIrmC,GAAQhmC,KAAKu+F,mBAAmBlyB,EACpC,IAAIrmC,GAASA,EAAM2oC,eACZ3oC,EAAMiE,IAAIoiC,KAAO2S,GACjBh5C,EAAMgE,MAAMqiC,KAAOyS,EACxB,CACEzS,EAAMrmC,EAAMiE,IAAIoiC,GAChB,KACI,GAAIyQ,GAAO98E,KAAKu9E,QAAQ,MAAOv3C,EAC3B82C,KACAA,EAAKwe,iBAAmB+C,GAC9B,MAAM/4F,SAIpBtF,KAAKw+F,aACDC,OAAU,EACVC,UAAa,EACbC,aAAgB,GAEpB3+F,KAAK4+F,WAAa,YAClB5+F,KAAK6+F,aAAe,SAAShuD,GACzB,IAAK7wC,KAAKw+F,YAAY3tD,GAClB,KAAM,IAAI9vC,OAAM,uBAAyB8vC,EAAQ,IAAMjvC,OAAOC,KAAK7B,KAAKw+F,aAAa76E,KAAK,MAAQ,IAEtG,IAAI3jB,KAAK4+F,YAAc/tD,EAAvB,CAGA7wC,KAAK4+F,WAAa/tD,EAEL,UAATA,GACA7wC,KAAKq9F,QACT,IAAI16F,GAAO3C,KAAK8+F,SAChB9+F,MAAK++F,YAAY,MACjB/+F,KAAK++F,YAAYp8F,KAGrB3C,KAAK++F,YAAc,SAASC,GACxB,GAAIh/F,KAAK8+F,WAAaE,EAAtB,CASA,GANAh/F,KAAK8+F,UAAYE,EAEjBh/F,KAAKi4E,IAAI,SAAUj4E,KAAKi/F,oBACxBj/F,KAAKi4E,IAAI,kBAAmBj4E,KAAKk/F,6BACjCl/F,KAAK2wE,QAAQ,qBAERquB,GAA+B,UAAnBh/F,KAAK4+F,WAElB,YADA5+F,KAAKk9E,YAAc,KAIvBl9E,MAAKk9E,eACLl9E,KAAKs+F,cAAgBU,EAASV,cAAc17D,KAAKo8D,EAAUh/F,KAAMA,KAAK4+F,YACtE5+F,KAAKu+F,mBAAqBS,EAAST,mBAAmB37D,KAAKo8D,EAAUh/F,KAAMA,KAAK4+F,YAEhF5+F,KAAKi/F,mBAAqBj/F,KAAKm/F,kBAAkBv8D,KAAK5iC,MACtDA,KAAKk/F,4BAA8Bl/F,KAAKo/F,2BAA2Bx8D,KAAK5iC,MACxEA,KAAK6tD,GAAG,SAAU7tD,KAAKi/F,oBACvBj/F,KAAK6tD,GAAG,kBAAmB7tD,KAAKk/F,+BAGpCl/F,KAAKo9E,uBAAyB,SAAU/Q,EAAKgzB,GACzC,GAAIC,GAAKt/F,KAAKk9E,WACd,KAAKoiB,GAAOD,GAAiBC,EAAGjzB,GAC5B,QAGJ,KADA,GAAiBgR,GAAbt4E,EAAIsnE,EAAM,EACPtnE,GAAK,GAAG,CACX,GAAItE,GAAI6+F,EAAGv6F,EAIX,IAHS,MAALtE,IACAA,EAAI6+F,EAAGv6F,GAAK/E,KAAKs+F,cAAcv5F,IAE1B,SAALtE,EAAc,CACd,GAAIulC,GAAQhmC,KAAKu+F,mBAAmBx5F,EAGpC,IAFKs4E,IACDA,EAAar3C,GACbA,GAASA,EAAMiE,IAAIoiC,KAAOA,EAC1B,MAERtnE,IAGJ,OACIihC,OAAc,IAAPjhC,GAAYihC,EACnBq3C,WAAYA,IAIpBr9E,KAAKm9E,kBAAoB,SAAS9Q,EAAK/mE,GACnCA,EAAIA,EAAEklE,QACN,IAAI3pE,IACA0+F,SAAUj6F,EAAEkmC,SACZzyB,IAAKzT,EAAEimC,SAAWjmC,EAAE49D,QACpBs8B,SAAUl6F,EAAEqiD,OAIhB,KADY3nD,KAAKy/F,kBAAkBpzB,EAAKxrE,GAC5B,CACR,GAAIu0D,GAAM9vD,EAAEgiC,QAAUhiC,EAAE4hD,UACpBkO,IAAM,kBAAkBvmD,KAAKumD,EAAGhuB,aAChCguB,EAAGhuB,WAAa,kBAI5BpnC,KAAKy/F,kBAAoB,SAASpzB,EAAKxrE,GACnC,GAAKb,KAAKs+F,cAAV,CAEA,GAAI5lF,GAAO1Y,KAAKs+F,cAAcjyB,GAC1BvzB,EAAO94C,KAAKs9E,QAAQjR,GAEpB+xB,EAAe,QAAT1lF,GAAkB,EAAI,EAC5BokE,EAAO98E,KAAK+8E,UAAU1Q,GAAc,IAAT+xB,EAAa,EAAItlD,EAAK52C,OAAQk8F,EAE7D,IAAIthB,EAKA,MAJIj8E,GAAQ0+F,UAAY1+F,EAAQkY,IAC5B/Y,KAAKg9E,WAAWF,GAEhB98E,KAAKi9E,WAAWH,GACbA,CAGX,IAAI92C,GAAQhmC,KAAKu+F,mBAAmBlyB,GAAK,EACzC,IAAIrmC,IAAUA,EAAM2oC,gBAChBmO,EAAO98E,KAAK+8E,UAAU/2C,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,OAAQ,KAC/CtmC,EAAMk5C,QAAQpC,EAAK92C,OAE3B,MADAhmC,MAAKg9E,WAAWF,GACTA,CAIf,IAAIj8E,EAAQ2+F,SAAU,CAClB,GAAI/7F,GAAOzD,KAAKo9E,uBAAuB/Q,EACvC,IAAI5oE,EAAKuiC,MACL,GAAI84C,GAAWr7E,EAAKuiC,MAAMgE,MAAMqiC,IAAM,EAClC2S,EAASv7E,EAAKuiC,MAAMiE,IAAIoiC,GAEhCrsE,MAAKm9F,QAAQre,EAAUE,EAAQn+E,EAAQkY,IAAM,IAAQ,OAC9ClY,GAAQ0+F,UACfvgB,EAASh5C,EAAQA,EAAMiE,IAAIoiC,IAAMrsE,KAAKowE,YACtCpwE,KAAKm9F,QAAQ9wB,EAAM,EAAG2S,EAAQn+E,EAAQkY,IAAM,IAAQ,IAC7CitB,IACHnlC,EAAQkY,MACRitB,EAAMs1D,iBAAmB,KAC7Bt7F,KAAKu9E,QAAQ,MAAOv3C,GAGxB,OAAOA,KAKXhmC,KAAK0/F,iBAAmB,SAASC,GAC7B,GAAItzB,GAAMrsE,KAAK4hC,UAAUo/C,YAAY3U,GACrCA,GAAMrsE,KAAK09F,gBAAgBrxB,EAC3B,IAAIrmC,GAAQhmC,KAAKy/F,kBAAkBpzB,KAEnC,KAAIrmC,EAAJ,CAEA,GAAIviC,GAAOzD,KAAKo9E,uBAAuB/Q,GAAK,EAG5C,IAFArmC,EAAQviC,EAAKuiC,OAASviC,EAAK45E,WAEhB,CACPhR,EAAMrmC,EAAMgE,MAAMqiC,GAClB,IAAIyQ,GAAO98E,KAAK+8E,UAAU1Q,EAAKrsE,KAAKs9E,QAAQjR,GAAKnqE,OAAQ,EAErD46E,GACA98E,KAAKg9E,WAAWF,GAEhB98E,KAAKu9E,QAAQ,MAAOv3C,MAKhChmC,KAAKm/F,kBAAoB,SAASxqE,GAC9B,GAAImrD,GAAWnrD,EAAMqV,MAAMqiC,IACvB1yD,EAAMgb,EAAMsV,IAAIoiC,IAAMyT,CAE1B,IAAY,IAARnmE,EACA3Z,KAAKk9E,YAAY4C,GAAY,SAC1B,IAAoB,UAAhBnrD,EAAMsP,OACbjkC,KAAKk9E,YAAY1nE,OAAOsqE,EAAUnmE,EAAM,EAAG,UACxC,CACH,GAAI2U,GAAO9hB,MAAMmN,EAAM,EACvB2U,GAAK+N,QAAQyjD,EAAU,GACvB9/E,KAAKk9E,YAAY1nE,OAAOvE,MAAMjR,KAAKk9E,YAAa5uD,KAGxDtuB,KAAKo/F,2BAA6B,SAAS95F,GACvC,GAAI0/E,GAAO1/E,EAAE7B,IACTuhF,GAAKt6C,OAASs6C,EAAKnnD,MACf79B,KAAKk9E,YAAYh7E,OAAS8iF,EAAKt6C,OAC/B1qC,KAAKk9E,YAAY1nE,OAAOwvE,EAAKt6C,MAAO1qC,KAAKk9E,YAAYh7E,SAptBrE,GAAI28E,GAAQhwB,EAAS,YAAYgwB,MAC7Bsa,EAAWtqC,EAAS,eAAesqC,SACnCgC,EAAOtsC,EAAS,UAAUssC,KAC1BrR,EAAgBj7B,EAAS,qBAAqBi7B,aAstBlDlqF,GAAQ67F,QAAUA,IAIlBxvC,IAAInsD,OAAO,kCAAkC,UAAU,UAAU,SAAS,qBAAqB,aAAc,SAAS+uD,EAAUjvD,EAASC,GACzI,YAMA,SAAS+/F,KAEL5/F,KAAK8sF,oBAAsB,SAAS9gC,EAAU6zC,GAC1C,GAAuB,GAAnB7zC,EAASsgB,OAAa,MAAO,KAEjC,IAAIwzB,GAAmBD,GAAO7/F,KAAKs9E,QAAQtxB,EAASqgB,KAAKr6C,OAAOg6B,EAASsgB,OAAO,EAChF,IAAwB,IAApBwzB,EAAwB,MAAO,KAEnC,IAAInyF,GAAQmyF,EAAiBnyF,MAAM,wBACnC,OAAKA,GAGDA,EAAM,GACC3N,KAAK+/F,oBAAoBpyF,EAAM,GAAIq+C,GAEnChsD,KAAKwsF,oBAAoB7+E,EAAM,GAAIq+C,GALnC,MAQfhsD,KAAKyuE,gBAAkB,SAAS70D,GAC5B,GACmBosB,GADf8S,EAAO94C,KAAKs9E,QAAQ1jE,EAAIyyD,KACxBwlB,GAAS,EAETgO,EAAM/mD,EAAK9mB,OAAOpY,EAAI0yD,OAAO,GAC7B3+D,EAAQkyF,GAAOA,EAAIlyF,MAAM,wBAO7B,IANKA,IACDkyF,EAAM/mD,EAAK9mB,OAAOpY,EAAI0yD,QACtB1yD,GAAOyyD,IAAKzyD,EAAIyyD,IAAKC,OAAQ1yD,EAAI0yD,OAAS,GAC1C3+D,EAAQkyF,GAAOA,EAAIlyF,MAAM,yBACzBkkF,GAAS,IAERlkF,EACD,MAAO,KAEX,IAAIA,EAAM,GAAI,CACV,GAAIuwF,GAAal+F,KAAK+/F,oBAAoBpyF,EAAM,GAAIiM,EACpD,KAAKskF,EACD,MAAO,KACXl4D,GAAQ64C,EAAMmB,WAAWpmE,EAAKskF,GACzBrM,IACD7rD,EAAMiE,IAAIqiC,SACVtmC,EAAMgE,MAAMsiC,UAEhBtmC,EAAMye,OAASze,EAAMiE,QAClB,CACH,GAAIi0D,GAAal+F,KAAKwsF,oBAAoB7+E,EAAM,GAAIiM,EACpD,KAAKskF,EACD,MAAO,KACXl4D,GAAQ64C,EAAMmB,WAAWke,EAAYtkF,GAChCi4E,IACD7rD,EAAMgE,MAAMsiC,SACZtmC,EAAMiE,IAAIqiC,UAEdtmC,EAAMye,OAASze,EAAMgE,MAGzB,MAAOhE,IAGXhmC,KAAKggG,WACDC,IAAK,IACLC,IAAK,IACLxpD,IAAK,IACLD,IAAK,IACLN,IAAK,IACLC,IAAK,KAGTp2C,KAAKwsF,oBAAsB,SAASuB,EAAS/hC,EAAUm0C,GACnD,GAAIC,GAAcpgG,KAAKggG,UAAUjS,GAC7BsQ,EAAQ,EAERzQ,EAAW,GAAI9D,GAAc9pF,KAAMgsD,EAASqgB,IAAKrgB,EAASsgB,QAC1D10B,EAAQg2C,EAASlD,iBAGrB,IAFK9yC,IACDA,EAAQg2C,EAASpD,eAChB5yC,EAAL,CAGMuoD,IACFA,EAAS,GAAIpzF,QACT,QACA6qC,EAAMl/B,KAAKX,QAAQ,IAAK,OAAOA,QAAQ,SAAU,UAC5CA,QAAQ,cAAe,uBAC1B,MAMV,KAHA,GAAIsoF,GAAar0C,EAASsgB,OAASshB,EAAShD,wBAA0B,EAClEnhF,EAAQmuC,EAAMnuC,QAEL,CAET,KAAO42F,GAAc,GAAG,CACpB,GAAIR,GAAMp2F,EAAMuoB,OAAOquE,EACvB,IAAIR,GAAOO,GAEP,GAAa,IADb/B,GAAS,GAEL,OAAQhyB,IAAKuhB,EAASjD,qBAClBre,OAAQ+zB,EAAazS,EAAShD,6BAGjCiV,IAAO9R,IACZsQ,GAAS,EAEbgC,IAAc,EAElB,GACIzoD,EAAQg2C,EAASrD,qBACZ3yC,IAAUuoD,EAAOtxF,KAAK+oC,EAAMl/B,MAErC,IAAa,MAATk/B,EACA,KAEJnuC,GAAQmuC,EAAMnuC,MACd42F,EAAa52F,EAAMvH,OAAS,EAGhC,MAAO,QAGXlC,KAAK+/F,oBAAsB,SAAShS,EAAS/hC,EAAUm0C,GACnD,GAAIG,GAAiBtgG,KAAKggG,UAAUjS,GAChCsQ,EAAQ,EAERzQ,EAAW,GAAI9D,GAAc9pF,KAAMgsD,EAASqgB,IAAKrgB,EAASsgB,QAC1D10B,EAAQg2C,EAASlD,iBAGrB,IAFK9yC,IACDA,EAAQg2C,EAASpD,eAChB5yC,EAAL,CAGKuoD,IACDA,EAAS,GAAIpzF,QACT,QACA6qC,EAAMl/B,KAAKX,QAAQ,IAAK,OAAOA,QAAQ,SAAU,UAC5CA,QAAQ,sBAAuB,uBAClC,MAKV,KAFA,GAAIsoF,GAAar0C,EAASsgB,OAASshB,EAAShD,0BAE/B,CAIT,IAFA,GAAInhF,GAAQmuC,EAAMnuC,MACd82F,EAAc92F,EAAMvH,OACjBm+F,EAAaE,GAAa,CAC7B,GAAIV,GAAMp2F,EAAMuoB,OAAOquE,EACvB,IAAIR,GAAOS,GAEP,GAAa,IADbjC,GAAS,GAEL,OAAQhyB,IAAKuhB,EAASjD,qBAClBre,OAAQ+zB,EAAazS,EAAShD,6BAGjCiV,IAAO9R,IACZsQ,GAAS,EAEbgC,IAAc,EAElB,GACIzoD,EAAQg2C,EAASpD,oBACZ5yC,IAAUuoD,EAAOtxF,KAAK+oC,EAAMl/B,MAErC,IAAa,MAATk/B,EACA,KAEJyoD,GAAa,EAGjB,MAAO,QA5Kf,GAAIvW,GAAgBj7B,EAAS,qBAAqBi7B,cAC9CjL,EAAQhwB,EAAS,YAAYgwB,KA8KjCj/E,GAAQggG,aAAeA,IAIvB3zC,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,SAAS,cAAc,eAAe,aAAa,wBAAwB,gBAAgB,gBAAgB,YAAY,eAAe,2BAA2B,uBAAuB,2BAA2B,kCAAmC,SAAS+uD,EAAUjvD,EAASC,GACrU,YAEA,IAAIm4D,GAAMnJ,EAAS,aACf6W,EAAO7W,EAAS,cAChBjrD,EAASirD,EAAS,YAClBsoB,EAAetoB,EAAS,uBAAuBsoB,aAC/CoJ,EAAY1xB,EAAS,eAAe0xB,UACpCigB,EAAW3xC,EAAS,eAAe0hC,KACnC1R,EAAQhwB,EAAS,WAAWgwB,MAC5BsW,EAAWtmC,EAAS,cAAcsmC,SAClCyC,EAAsB/oC,EAAS,0BAA0B+oC,oBACzDgB,EAAkB/pC,EAAS,sBAAsB+pC,gBAEjD6H,EAAc,SAAS9uE,EAAMhvB,GAC7B3C,KAAK0gG,gBACL1gG,KAAK2gG,gBACL3gG,KAAK4gG,iBACL5gG,KAAK6gG,gBACL7gG,KAAK8gG,UAAY,EACjB9gG,KAAK+gG,aAAc,EAEnB/gG,KAAK67F,aACL77F,KAAKK,GAAK,aAAeogG,EAAYO,KACrChhG,KAAK67F,UAAU5uF,SAAW,WACtB,MAAOjN,MAAK2jB,KAAK,OAErB3jB,KAAK6tD,GAAG,aAAc7tD,KAAKihG,aAAar+D,KAAK5iC,OAC7CA,KAAKk0F,UAAYl0F,KAAKwB,SAASohC,KAAK5iC,MAEjB,gBAAR2xB,IAAqBA,EAAK2rD,UACjC3rD,EAAO,GAAIwjE,GAASxjE,IAExB3xB,KAAKw4F,YAAY7mE,GACjB3xB,KAAK4hC,UAAY,GAAI2+C,GAAUvgF,MAE/B4D,EAAOu1E,aAAan5E,MACpBA,KAAK4C,QAAQD,GACbiB,EAAO+sE,QAAQ,UAAW3wE,QAI9B,WA8hDI,QAASkhG,GAAYzgG,GACjB,QAAIA,EAAI,QAEDA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OA9jD/Bu3D,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAKw4F,YAAc,SAAS3jC,GACpB70D,KAAK60D,KACL70D,KAAK60D,IAAI0L,eAAe,SAAUvgE,KAAKk0F,WAE3Cl0F,KAAK60D,IAAMA,EACXA,EAAIhH,GAAG,SAAU7tD,KAAKk0F,WAElBl0F,KAAKmhG,aACLnhG,KAAKmhG,YAAY3I,YAAYx4F,KAAKwgF,eAEtCxgF,KAAKohG,eAETphG,KAAKwgF,YAAc,WACf,MAAOxgF,MAAK60D,KAEhB70D,KAAKqhG,eAAiB,SAASnF,GAC3B,IAAKA,EAGD,MAFAl8F,MAAKshG,qBACLthG,KAAKuhG,mBAGT,IAAIx7F,GAAI/F,KAAKshG,aAAap/F,OACtB6C,EAAI/E,KAAKwhG,kBAAkBxhG,KAAKshG,aAAcpF,GAAU,CACxDn2F,GAAIhB,IACJ/E,KAAKshG,aAAa9rF,OAAOzQ,EAAGgB,GAC5B/F,KAAKuhG,gBAAgB/rF,OAAOzQ,EAAGgB,KAIvC/F,KAAKwhG,kBAAoB,SAASC,EAAY5xE,GAI1C,IAHA,GAAI6xE,GAAM,EACNC,EAAKF,EAAWv/F,OAAS,EAEtBw/F,GAAOC,GAAI,CACd,GAAIC,GAAOF,EAAMC,GAAO,EACpBlhG,EAAIghG,EAAWG,EAEnB,IAAI/xE,EAAMpvB,EACNihG,EAAME,EAAM,MACX,CAAA,KAAI/xE,EAAMpvB,GAGX,MAAOmhG,EAFPD,GAAKC,EAAM,GAKnB,MAAOF,GAAK,GAGhB1hG,KAAKohG,YAAc,WACfphG,KAAK+8F,WAAY,EACjB/8F,KAAK6hG,aACL7hG,KAAK8hG,mBACL9hG,KAAKqhG,eAAe,GAChBrhG,KAAKmhG,aACLnhG,KAAKmhG,YAAYn3D,MAAM,IAG/BhqC,KAAKihG,aAAe,SAAS37F,GACzB,GAAIw3E,GAAOx3E,EAAE7B,IACbzD,MAAKqhG,eAAevkB,EAAK9yC,MAAMqiC,MAGnCrsE,KAAKwB,SAAW,SAASmzB,GACrB30B,KAAK+8F,WAAY,EAEjB/8F,KAAKqhG,eAAe1sE,EAAMqV,MAAMqiC,IAEhC,IAAI01B,GAAe/hG,KAAKgiG,4BAA4BrtE,EAC/C30B,MAAKiiG,YAAajiG,KAAK6pE,cAAiBl1C,EAAMutE,SAC/CliG,KAAKmiG,WAAWjpF,KAAKyb,GACjBotE,GAAuC,GAAvBA,EAAa7/F,QAC7BlC,KAAKoiG,YAAYlpF,MACb+qB,OAAQ,cACRo1D,MAAQ0I,IAIhB/hG,KAAKqiG,mBAAmBh9B,YAG5BrlE,KAAKmhG,aAAenhG,KAAKmhG,YAAYzI,gBAAgB/jE,GACrD30B,KAAK2wE,QAAQ,SAAUh8C,IAE3B30B,KAAKg/C,SAAW,SAASrtB,GACrB3xB,KAAK60D,IAAI7V,SAASrtB,GAClB3xB,KAAK4hC,UAAU8f,OAAO,EAAG,GAEzB1hD,KAAKqhG,eAAe,GACpBrhG,KAAKsiG,WACLtiG,KAAKmiG,cACLniG,KAAKoiG,eACLpiG,KAAKuiG,eAAeviG,KAAK6pE,cACzB7pE,KAAKwiG,iBAAiBC,SAE1BziG,KAAKsjC,SACLtjC,KAAKiN,SAAW,WACZ,MAAOjN,MAAK60D,IAAIvxB,YAEpBtjC,KAAKkmC,aAAe,WAChB,MAAOlmC,MAAK4hC,WAEhB5hC,KAAK24F,SAAW,SAAStsB,GACrB,MAAOrsE,MAAKmhG,YAAYxI,SAAStsB,IAErCrsE,KAAKoqF,UAAY,SAAS/d,GACtB,MAAOrsE,MAAKmhG,YAAY/W,UAAU/d,IAEtCrsE,KAAKqqF,WAAa,SAAShe,EAAKC,GAC5B,GACI10B,GADAwvC,EAASpnF,KAAKmhG,YAAY/W,UAAU/d,GAC7B5rE,EAAI,CACf,IAAc,MAAV6rE,EACAvnE,EAAIqiF,EAAOllF,OAAS,EACpBzB,EAAIT,KAAKs9E,QAAQjR,GAAKnqE,WAEtB,KAAK,GAAI6C,GAAI,EAAGA,EAAIqiF,EAAOllF,WACvBzB,GAAK2mF,EAAOriF,GAAG0E,MAAMvH,SACZoqE,GAFsBvnE,KAOvC,OADA6yC,EAAQwvC,EAAOriF,KAGf6yC,EAAMzjC,MAAQpP,EACd6yC,EAAM5N,MAAQvpC,EAAIm3C,EAAMnuC,MAAMvH,OACvB01C,GAHI,MAKf53C,KAAKuiG,eAAiB,SAASG,GAS3B,GARA1iG,KAAK6pE,aAAe64B,EACpB1iG,KAAKsiG,WACLtiG,KAAKmiG,cACLniG,KAAKoiG,eAEDpiG,KAAKqiG,oBACLriG,KAAKqiG,mBAAmBj9B,SAExBs9B,EAAa,CACb,GAAIz6F,GAAOjI,IAEXA,MAAK2iG,uBAAyB,WAC1B16F,EAAKo6F,mBAAmBj9B,SAEpBn9D,EAAKm6F,YAAYlgG,SACjB+F,EAAKq6F,QAAQppF,MACTF,MAAO,OACPk+E,OAAQjvF,EAAKm6F,cAEjBn6F,EAAKm6F,gBAGLn6F,EAAKk6F,WAAWjgG,SAChB+F,EAAKq6F,QAAQppF,MACTF,MAAO,MACPk+E,OAAQjvF,EAAKk6F,aAEjBl6F,EAAKk6F,eAGLl6F,EAAKq6F,QAAQpgG,OAAS,GACtBwgG,EAAYE,SACR3+D,OAAQ,YACR3V,MAAOrmB,EAAKq6F,QAASr6F,GACrB8/E,MAAO9/E,EAAK46F,kBAGpB56F,EAAK46F,iBAAkB,EACvB56F,EAAKq6F,YAETtiG,KAAKqiG,mBAAqB38B,EAAKH,YAAYvlE,KAAK2iG,0BAGxD3iG,KAAK8pE,cAAgB,WACb9pE,KAAK2iG,wBACL3iG,KAAK2iG,0BAGb3iG,KAAK8iG,qBACDz6D,KAAM,aACNE,KAAM,aACNk6D,MAAO,cAEXziG,KAAKwiG,eAAiB,WAClB,MAAOxiG,MAAK6pE,cAAgB7pE,KAAK8iG,qBAErC9iG,KAAKitF,aAAe,WAChB,MAAIjtF,MAAKqxF,iBACE3rB,EAAKxB,aAAa,IAAKlkE,KAAKyjF,cAE5B,MAGfzjF,KAAKutD,eAAiB,SAAS19B,GAC3B7vB,KAAKu4E,UAAU,cAAe1oD,IAElC7vB,KAAKqxF,eAAiB,WAClB,MAAOrxF,MAAK+iG,eAAiB/iG,KAAKytF,MAAMuV,iBAE5ChjG,KAAKstD,WAAa,SAASk2B,GACvBxjF,KAAKu4E,UAAU,UAAWiL,IAE9BxjF,KAAKyjF,WAAa,WACd,MAAOzjF,MAAKijG,UAEhBjjG,KAAK0jF,UAAY,SAAS13B,GACtB,MAAOhsD,MAAK+iG,cAAiB/2C,EAASsgB,OAAStsE,KAAKijG,UAAa,GAGrEjjG,KAAKkjG,YAAa,EAClBljG,KAAKmjG,aAAe,SAASC,GACzBpjG,KAAKu4E,UAAU,YAAa6qB,IAEhCpjG,KAAKqjG,aAAe,WAChB,MAAOrjG,MAAKkjG,YAEhBljG,KAAKsjG,gBAAkB,WACnBtjG,KAAKmjG,cAAcnjG,KAAKkjG,aAE5BljG,KAAKujG,oBAAsB,SAASl3B,EAAKjlC,GAChCpnC,KAAK2gG,aAAat0B,KACnBrsE,KAAK2gG,aAAat0B,GAAO,IAC7BrsE,KAAK2gG,aAAat0B,IAAQ,IAAMjlC,EAChCpnC,KAAK2wE,QAAQ,wBAEjB3wE,KAAKwjG,uBAAyB,SAASn3B,EAAKjlC,GACxCpnC,KAAK2gG,aAAat0B,IAAQrsE,KAAK2gG,aAAat0B,IAAQ,IAAIt0D,QAAQ,IAAMqvB,EAAW,IACjFpnC,KAAK2wE,QAAQ,wBAEjB3wE,KAAKyjG,eAAiB,WAClB,MAAOzjG,MAAK0gG,cAEhB1gG,KAAK0jG,eAAiB,SAAS1e,GAC3BhlF,KAAK0gG,eACL,KAAK,GAAI37F,GAAE,EAAGA,EAAEigF,EAAK9iF,OAAQ6C,IACzB/E,KAAK0gG,aAAa1b,EAAKjgF,IAAM,gBAEjC/E,MAAK2wE,QAAQ,wBAEjB3wE,KAAK2jG,iBAAmB,WACpB3jG,KAAK0gG,gBACL1gG,KAAK2wE,QAAQ,wBAEjB3wE,KAAK4jG,cAAgB,SAASv3B,EAAKjlC,OACbx3B,KAAdw3B,IACAA,EAAY,kBACZA,EACApnC,KAAK0gG,aAAar0B,GAAOjlC,QAElBpnC,MAAK0gG,aAAar0B,GAC7BrsE,KAAK2wE,QAAQ,wBAEjB3wE,KAAK6jG,gBAAkB,SAASx3B,SACrBrsE,MAAK0gG,aAAar0B,GACzBrsE,KAAK2wE,QAAQ,wBAEjB3wE,KAAKwzE,UAAY,SAASxtC,EAAO6yD,EAAOngF,EAAMorF,GAC1C,GAAIzjG,GAAKL,KAAK8gG,YAEViD,GACA/9D,MAAQA,EACRttB,KAAOA,GAAQ,OACfiuD,SAAyB,kBAARjuD,GAAqBA,EAAO,KAC7CmgF,MAAQA,EACRiL,UAAWA,EACXzjG,GAAIA,EAWR,OARIyjG,IACA9jG,KAAK4gG,cAAcvgG,GAAM0jG,EACzB/jG,KAAK2wE,QAAQ,uBAEb3wE,KAAK6gG,aAAaxgG,GAAM0jG,EACxB/jG,KAAK2wE,QAAQ,qBAGVtwE,GAEXL,KAAKgkG,iBAAmB,SAASD,EAAQD,GACrC,GAAKC,EAAO/K,OAAZ,CAEA,GAAI34F,GAAKL,KAAK8gG,WAYd,OAXAiD,GAAO1jG,GAAKA,EACZ0jG,EAAOD,UAAYA,EAEfA,GACA9jG,KAAK4gG,cAAcvgG,GAAM0jG,EACzB/jG,KAAK2wE,QAAQ,uBAEb3wE,KAAK6gG,aAAaxgG,GAAM0jG,EACxB/jG,KAAK2wE,QAAQ,qBAGVozB,IAEX/jG,KAAKg0E,aAAe,SAASiwB,GACzB,GAAIF,GAAS/jG,KAAK4gG,cAAcqD,IAAajkG,KAAK6gG,aAAaoD,EAC/D,IAAKF,EAAL,CAGA,GAAIG,GAAUH,EAAOD,QAAU9jG,KAAK4gG,cAAgB5gG,KAAK6gG,YACrDkD,WACQG,GAAQD,GAChBjkG,KAAK2wE,QAAQozB,EAAOD,QAAU,oBAAsB,uBAG5D9jG,KAAKmkG,WAAa,SAASL,GACvB,MAAOA,GAAU9jG,KAAK4gG,cAAgB5gG,KAAK6gG,cAG/C7gG,KAAKysC,UAAY,SAAS+d,GACtB,IAAKxqD,KAAKokG,iBAAkB,CACxB,GAAI33D,GAAY,GAAImsD,GAAgB,KAAM,oBAAqB,OAC/D54F,MAAKokG,iBAAmBpkG,KAAKgkG,iBAAiBv3D,GAElDzsC,KAAKokG,iBAAiBtL,UAAUtuC,IAEpCxqD,KAAKqkG,eAAiB,SAASvlB,EAAUE,EAAQ6Z,EAAOiL,GAC/B,gBAAV9kB,KACP6Z,EAAQ7Z,EACRA,EAASF,GAER+Z,IACDA,EAAQ,WAEZ,IAAI7yD,GAAQ,GAAI64C,GAAMC,EAAU,EAAGE,EAAQznE,EAAAA,EAE3C,OADAyuB,GAAM3lC,GAAKL,KAAKwzE,UAAUxtC,EAAO6yD,EAAO,WAAYiL,GAC7C99D,GAEXhmC,KAAKskG,eAAiB,SAASC,GAC3BvkG,KAAKkwE,aAAeq0B,EACpBvkG,KAAK2wE,QAAQ,wBAEjB3wE,KAAKwkG,eAAiB,WAClB,MAAOxkG,MAAKkwE,kBAEhBlwE,KAAKykG,iBAAmB,WACpBzkG,KAAKskG,oBAETtkG,KAAK01F,eAAiB,SAAS/jE,GAC3B,GAAIhkB,GAAQgkB,EAAKhkB,MAAM,eAEnB3N,MAAK21F,aADLhoF,EACoBA,EAAM,GAEN,MAG5B3N,KAAK0uE,aAAe,SAASrC,EAAKC,GAC9B,GAAIxzB,GAAO94C,KAAKs9E,QAAQjR,GAEpBq4B,GAAU,CAOd,IANIp4B,EAAS,IACTo4B,IAAY5rD,EAAK9mB,OAAOs6C,EAAS,GAAG3+D,MAAM3N,KAAKukF,UAE9CmgB,IACDA,IAAY5rD,EAAK9mB,OAAOs6C,GAAQ3+D,MAAM3N,KAAKukF,UAE3CmgB,EACA,GAAIl6C,GAAKxqD,KAAKukF,YACb,IAAI,QAAQ11E,KAAKiqC,EAAKjiC,MAAMy1D,EAAO,EAAGA,EAAO,IAC9C,GAAI9hB,GAAK,SAET,IAAIA,GAAKxqD,KAAKskF,UAElB,IAAIt6C,GAAQsiC,CACZ,IAAItiC,EAAQ,EAAG,CACX,GACIA,UAEGA,GAAS,GAAK8O,EAAK9mB,OAAOgY,GAAOr8B,MAAM68C,GAC9CxgB,KAIJ,IADA,GAAIC,GAAMqiC,EACHriC,EAAM6O,EAAK52C,QAAU42C,EAAK9mB,OAAOiY,GAAKt8B,MAAM68C,IAC/CvgB;iDAGJ,OAAO,IAAI40C,GAAMxS,EAAKriC,EAAOqiC,EAAKpiC,IAEtCjqC,KAAKgjF,cAAgB,SAAS3W,EAAKC,GAI/B,IAHA,GAAIq4B,GAAY3kG,KAAK0uE,aAAarC,EAAKC,GACnCxzB,EAAO94C,KAAKs9E,QAAQqnB,EAAU16D,IAAIoiC,KAE/BvzB,EAAK9mB,OAAO2yE,EAAU16D,IAAIqiC,QAAQ3+D,MAAM,UAC3Cg3F,EAAU16D,IAAIqiC,QAAU,CAE5B,OAAOq4B,IAEX3kG,KAAK61F,eAAiB,SAASC,GAC3B91F,KAAK60D,IAAIghC,eAAeC,IAE5B91F,KAAK+1F,eAAiB,WAClB,MAAO/1F,MAAK60D,IAAIkhC,kBAEpB/1F,KAAK4kG,aAAe,SAASC,GAAa7kG,KAAKu4E,UAAU,YAAassB,IACtE7kG,KAAK8kG,aAAe,WAAa,MAAO9kG,MAAK+kG,YAC7C/kG,KAAKglG,kBAAoB,SAAS1/F,GAC9B,GAAI0/E,GAAO1/E,EAAE7B,IACbzD,MAAKmhG,YAAYn3D,MAAMg7C,EAAKt6C,OAC5B1qC,KAAK2wE,QAAQ,kBAAmBrrE,IAGpCtF,KAAK8yF,UACL9yF,KAAKytF,MAAQ,KACbztF,KAAKilG,QAAU,KACfjlG,KAAK4C,QAAU,SAASD,EAAM8lE,GAC1B,GAAI9lE,GAAwB,gBAATA,GAAmB,CAClC,GAAIA,EAAK8tF,aACL,MAAOzwF,MAAKklG,cAAcviG,EAC9B,IAAI9B,GAAU8B,EACVmV,EAAOjX,EAAQiX,SAEnBA,GAAOnV,GAAQ,eAKnB,IAHK3C,KAAK8yF,OAAO,mBACb9yF,KAAK8yF,OAAO,iBAAmB,GAAI0N,IAEnCxgG,KAAK8yF,OAAOh7E,KAAUjX,EAGtB,MAFAb,MAAKklG,cAAcllG,KAAK8yF,OAAOh7E,SAC/B2wD,GAAMA,IAGVzoE,MAAKilG,QAAUntF,EACflU,EAAOo3E,YAAY,OAAQljE,GAAO,SAAStX,GACvC,GAAIR,KAAKilG,UAAYntF,EACjB,MAAO2wD,IAAMA,GACbzoE,MAAK8yF,OAAOh7E,KAAUjX,EACtBb,KAAKklG,cAAcllG,KAAK8yF,OAAOh7E,IACxBtX,GAAKA,EAAE+vF,OACd/vF,EAAI,GAAIA,GAAE+vF,KAAK1vF,GACVA,IACDb,KAAK8yF,OAAOh7E,GAAQtX,EACpBA,EAAEqzF,IAAM/7E,GAEZ9X,KAAKklG,cAAc1kG,IAEvBioE,GAAMA,KACR7lC,KAAK5iC,OACFA,KAAKytF,OACNztF,KAAKklG,cAAcllG,KAAK8yF,OAAO,kBAAkB,IAGzD9yF,KAAKklG,cAAgB,SAASviG,EAAMwiG,GAGhC,GAFKA,IACDnlG,KAAKilG,QAAUtiG,EAAKkxF,KACpB7zF,KAAKytF,QAAU9qF,EAAnB,CAGA3C,KAAKytF,MAAQ9qF,EAEb3C,KAAKolG,cAEDplG,KAAK+kG,YACL/kG,KAAKqlG,cAET,IAAIxN,GAAYl1F,EAAK8tF,cAErB,QAAkC7gF,KAA/BioF,EAAU3vD,iBAAgC,CACzC,GAAI88D,GAAoBhlG,KAAKglG,kBAAkBpiE,KAAK5iC,KACpD63F,GAAU3vD,iBAAiB,SAAU88D,GAGzC,GAAKhlG,KAAKmhG,YAONnhG,KAAKmhG,YAAY5I,aAAaV,OAPX,CACnB73F,KAAKmhG,YAAc,GAAIvJ,GAAoBC,EAC3C,IAAIpyB,GAAQzlE,IACZA,MAAKmhG,YAAYj5D,iBAAiB,SAAU,SAAS5iC,GACjDmgE,EAAMkL,QAAQ,kBAAmBrrE,KAMzCtF,KAAKmhG,YAAY3I,YAAYx4F,KAAKwgF,eAElCxgF,KAAKukF,QAAU5hF,EAAK4hF,QACpBvkF,KAAKskF,WAAa3hF,EAAK2hF,WAGlB6gB,IACGxiG,EAAK2iG,iBACL3iG,EAAK2iG,gBAAgBtlG,MACzBA,KAAK04E,SAAS6sB,WAAWziG,IAAIvC,KAAKP,KAAMA,KAAKwlG,aAC7CxlG,KAAK++F,YAAYp8F,EAAK8iG,cACtBzlG,KAAKmhG,YAAYn3D,MAAM,GACvBhqC,KAAKuqE,MAAM,iBAInBvqE,KAAKolG,YAAc,WACXplG,KAAKg4F,UACLh4F,KAAKg4F,QAAQ0N,YACb1lG,KAAKg4F,QAAU,OAIvBh4F,KAAKqlG,aAAe,WAChB,IACIrlG,KAAKg4F,QAAUh4F,KAAKytF,MAAMmF,aAAa5yF,MACzC,MAAOsF,GACL1B,EAAOvC,KAAK,wBAAyBiE,GACrCtF,KAAKg4F,QAAU,OAGvBh4F,KAAKoE,QAAU,WACX,MAAOpE,MAAKytF,OAGhBztF,KAAK2lG,WAAa,EAClB3lG,KAAK4lG,aAAe,SAASrgE,GACrBvlC,KAAK2lG,aAAepgE,GAAawkB,MAAMxkB,KAG3CvlC,KAAK2lG,WAAapgE,EAClBvlC,KAAK2wE,QAAQ,kBAAmBprC,KAEpCvlC,KAAK6lG,aAAe,WAChB,MAAO7lG,MAAK2lG,YAGhB3lG,KAAK8lG,YAAc,EACnB9lG,KAAK+lG,cAAgB,SAAS31D,GACtBpwC,KAAK8lG,cAAgB11D,GAAc2Z,MAAM3Z,KAG7CpwC,KAAK8lG,YAAc11D,EACnBpwC,KAAK2wE,QAAQ,mBAAoBvgC,KAErCpwC,KAAKgmG,cAAgB,WACjB,MAAOhmG,MAAK8lG,aAEhB9lG,KAAKimG,eAAiB,WAElB,MADAjmG,MAAKkmG,gBACDlmG,KAAKmlF,YACE7tD,KAAKqP,IAAI3mC,KAAKmmG,wBAAyBnmG,KAAKomG,aAChDpmG,KAAKomG,aAGhBpmG,KAAKmmG,sBAAwB,WACzB,GAA6B,MAAzBnmG,KAAKqmG,iBAA0B,MAAOrmG,MAAKqmG,gBAC/C,IAAIr6D,GAAQ,CAKZ,OAJAhsC,MAAKmlF,YAAYrjF,QAAQ,SAASyzB,GAC1BA,GAAKA,EAAE6wE,YAAcp6D,IACrBA,EAAQzW,EAAE6wE,eAEXpmG,KAAKsmG,gBAAkBt6D,GAGlChsC,KAAKkmG,cAAgB,SAASK,GAC1B,GAAIvmG,KAAK+8F,WAAawJ,EAAO,CAGzB,GAFAvmG,KAAK+8F,WAAY,EAEb/8F,KAAK48F,aACL,MAAO58F,MAAKomG,YAAcpmG,KAAKwmG,UAUnC,KAAK,GARDxsD,GAAQh6C,KAAK60D,IAAI0gC,cACjBr1D,EAAQlgC,KAAK8hG,gBACb2E,EAAoB,EACpBC,EAAY,EACZtjB,EAAWpjF,KAAK67F,UAAU6K,GAC1BC,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,EAC5CoC,EAAMqgC,EAAM93C,OAEP6C,EAAI,EAAGA,EAAI4U,EAAK5U,IAAK,CAC1B,GAAIA,EAAI4hG,EAAW,CAEf,IADA5hG,EAAIq+E,EAASn5C,IAAIoiC,IAAM,IACd1yD,EACL,KACJypE,GAAWpjF,KAAK67F,UAAU6K,KAC1BC,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,EAGhC,MAAZ2oB,EAAMn7B,KACNm7B,EAAMn7B,GAAK/E,KAAK4mG,sBAAsB5sD,EAAMj1C,IAAI,IAEhDm7B,EAAMn7B,GAAK0hG,IACXA,EAAoBvmE,EAAMn7B,IAElC/E,KAAKomG,YAAcK,IAG3BzmG,KAAKs9E,QAAU,SAASjR,GACpB,MAAOrsE,MAAK60D,IAAIyoB,QAAQjR,IAE5BrsE,KAAKi2F,SAAW,SAASnW,EAAUC,GAC/B,MAAO//E,MAAK60D,IAAIohC,SAASnW,EAAUC,IAEvC//E,KAAKowE,UAAY,WACb,MAAOpwE,MAAK60D,IAAIub,aAEpBpwE,KAAKq1E,aAAe,SAASrvC,GACzB,MAAOhmC,MAAK60D,IAAIwgB,aAAarvC,GAAShmC,KAAK4hC,UAAUqoC,aAEzDjqE,KAAK0xD,OAAS,SAAS1F,EAAUr6B,GAC7B,MAAO3xB,MAAK60D,IAAInD,OAAO1F,EAAUr6B,IAErC3xB,KAAK6rB,OAAS,SAASma,GACnB,MAAOhmC,MAAK60D,IAAIhpC,OAAOma,IAE3BhmC,KAAKs2F,gBAAkB,SAASxW,EAAUC,GACtC,MAAO//E,MAAK60D,IAAIyhC,gBAAgBxW,EAAUC,IAE9C//E,KAAK6mG,YAAc,SAAS3P,EAAQ4P,GAChC,GAAK5P,EAAOh1F,OAAZ,CAGAlC,KAAKiiG,WAAY,CAEjB,KAAK,GADD8E,GAAgB,KACXhiG,EAAImyF,EAAOh1F,OAAS,GAAS,GAAN6C,EAASA,IAAK,CAC1C,GAAI4vB,GAAQuiE,EAAOnyF,EACA,QAAf4vB,EAAM3b,OACNhZ,KAAK60D,IAAIsiC,aAAaxiE,EAAMuiE,QAC5B6P,EACI/mG,KAAKgnG,kBAAkBryE,EAAMuiE,QAAQ,EAAM6P,IAE/CpyE,EAAMuiE,OAAOp1F,QAAQ,SAASmlG,GAC1BjnG,KAAKg9F,SAASiK,EAAU5N,QACzBr5F,MAQX,MALAA,MAAKiiG,WAAY,EACjB8E,GACI/mG,KAAK+gG,cACJ+F,GACD9mG,KAAK4hC,UAAUwkC,kBAAkB2gC,GAC9BA,IAEX/mG,KAAKknG,YAAc,SAAShQ,EAAQ4P,GAChC,GAAK5P,EAAOh1F,OAAZ,CAGAlC,KAAKiiG,WAAY,CAEjB,KAAK,GADD8E,GAAgB,KACXhiG,EAAI,EAAGA,EAAImyF,EAAOh1F,OAAQ6C,IAAK,CACpC,GAAI4vB,GAAQuiE,EAAOnyF,EACA,QAAf4vB,EAAM3b,QACNhZ,KAAK60D,IAAIoiC,YAAYtiE,EAAMuiE,QAC3B6P,EACI/mG,KAAKgnG,kBAAkBryE,EAAMuiE,QAAQ,EAAO6P,IAQxD,MALA/mG,MAAKiiG,WAAY,EACjB8E,GACI/mG,KAAK+gG,cACJ+F,GACD9mG,KAAK4hC,UAAUwkC,kBAAkB2gC,GAC9BA,IAEX/mG,KAAKmnG,cAAgB,SAASt5E,GAC1B7tB,KAAK+gG,YAAclzE,GAGvB7tB,KAAKgnG,kBAAoB,SAAS9P,EAAQkQ,EAAQL,GAC9C,QAAS1P,GAAS1iE,GACd,MAAOyyE,GAA0B,WAAjBzyE,EAAMsP,OAAuC,WAAjBtP,EAAMsP,OAGtD,GACI+B,GAAOyuD,EADP9/D,EAAQuiE,EAAO,EAGfG,GAAS1iE,GACTqR,EAAQ64C,EAAMmB,WAAWrrD,EAAMqV,MAAOrV,EAAMsV,KAG5CjE,EAAQ64C,EAAMmB,WAAWrrD,EAAMqV,MAAOrV,EAAMqV,MAIhD,KAAK,GAAIjlC,GAAI,EAAGA,EAAImyF,EAAOh1F,OAAQ6C,IAC/B4vB,EAAQuiE,EAAOnyF,GACXsyF,EAAS1iE,IACT8/D,EAAQ9/D,EAAMqV,OACiC,GAA3ChE,EAAMz4B,QAAQknF,EAAMpoB,IAAKooB,EAAMnoB,SAC/BtmC,EAAMiM,SAASwiD,GAEnBA,EAAQ9/D,EAAMsV,IACgC,GAA1CjE,EAAMz4B,QAAQknF,EAAMpoB,IAAKooB,EAAMnoB,SAC/BtmC,EAAMkM,OAAOuiD,IAEG,IAEpBA,EAAQ9/D,EAAMqV,OACiC,GAA3ChE,EAAMz4B,QAAQknF,EAAMpoB,IAAKooB,EAAMnoB,UAC/BtmC,EAAQ64C,EAAMmB,WAAWrrD,EAAMqV,MAAOrV,EAAMqV,SAE5B,EAG5B,IAAqB,MAAjB+8D,EAAuB,CACuC,IAA1DloB,EAAMH,cAAcqoB,EAAc/8D,MAAOhE,EAAMgE,SAC/C+8D,EAAc/8D,MAAMsiC,QAAUtmC,EAAMiE,IAAIqiC,OAAStmC,EAAMgE,MAAMsiC,OAC7Dy6B,EAAc98D,IAAIqiC,QAAUtmC,EAAMiE,IAAIqiC,OAAStmC,EAAMgE,MAAMsiC,OAG/D,IAAIp8C,GAAM62E,EAAc5nB,aAAan5C,EAC1B,IAAP9V,EACA8V,EAAMiM,SAAS80D,EAAc/8D,QACd,GAAR9Z,GACP8V,EAAMkM,OAAO60D,EAAc98D,KAInC,MAAOjE,IAEXhmC,KAAK+X,QAAU,SAASiuB,EAAOrU,GAC3B,MAAO3xB,MAAK60D,IAAI98C,QAAQiuB,EAAOrU,IAEnC3xB,KAAK21E,SAAW,SAAS0xB,EAAWC,EAAY1gG,GAC5C,GAAI+qB,GAAO3xB,KAAKq1E,aAAagyB,GACzBhO,EAAQr5F,KAAK27F,gBAAgB0L,GAE7BE,EAAU1oB,EAAMmB,WAAWsnB,EAAYA,EAC3C,KAAK1gG,EAAM,CACP5G,KAAK6rB,OAAOw7E,EACZ,IAAItb,GAAUsb,EAAUr9D,MAAMqiC,IAAMg7B,EAAUp9D,IAAIoiC,IAC9Cm7B,EAAWzb,GAAWsb,EAAUp9D,IAAIqiC,OAAS+6B,EAAUr9D,MAAMsiC,OAAS+6B,EAAUp9D,IAAIqiC,MACpFk7B,KACID,EAAQv9D,MAAMqiC,KAAOg7B,EAAUp9D,IAAIoiC,KAAOk7B,EAAQv9D,MAAMsiC,OAAS+6B,EAAUp9D,IAAIqiC,SAC/Ei7B,EAAQv9D,MAAMsiC,QAAUk7B,GACxBD,EAAQt9D,IAAIoiC,KAAOg7B,EAAUp9D,IAAIoiC,KAAOk7B,EAAQt9D,IAAIqiC,OAAS+6B,EAAUp9D,IAAIqiC,SAC3Ei7B,EAAQt9D,IAAIqiC,QAAUk7B,IAE1Bzb,GAAWwb,EAAQv9D,MAAMqiC,KAAOg7B,EAAUp9D,IAAIoiC,MAC9Ck7B,EAAQv9D,MAAMqiC,KAAO0f,EACrBwb,EAAQt9D,IAAIoiC,KAAO0f,GAK3B,GADAwb,EAAQt9D,IAAMjqC,KAAK0xD,OAAO61C,EAAQv9D,MAAOrY,GACrC0nE,EAAMn3F,OAAQ,CACd,GAAIulG,GAAWJ,EAAUr9D,MACrB09D,EAAWH,EAAQv9D,MACnB+hD,EAAU2b,EAASr7B,IAAMo7B,EAASp7B,IAClCm7B,EAAWE,EAASp7B,OAASm7B,EAASn7B,MAC1CtsE,MAAKg9F,SAAS3D,EAAMpgF,IAAI,SAASiY,GAQ7B,MAPAA,GAAIA,EAAE0vB,QACF1vB,EAAE8Y,MAAMqiC,KAAOo7B,EAASp7B,MACxBn7C,EAAE8Y,MAAMsiC,QAAUk7B,GAClBt2E,EAAE+Y,IAAIoiC,KAAOo7B,EAASp7B,MACtBn7C,EAAE+Y,IAAIqiC,QAAUk7B,GACpBt2E,EAAE8Y,MAAMqiC,KAAO0f,EACf76D,EAAE+Y,IAAIoiC,KAAO0f,EACN76D,KAIf,MAAOq2E,IAEXvnG,KAAK2nG,WAAa,SAAS7oB,EAAUE,EAAQ4oB,GACzCA,EAAeA,EAAa7vF,QAAQ,MAAO/X,KAAKitF,eAChD,KAAK,GAAI5gB,GAAIyS,EAAUzS,GAAK2S,EAAQ3S,IAChCrsE,KAAK60D,IAAI88B,cAActlB,IAAKA,EAAKC,OAAQ,GAAIs7B,IAErD5nG,KAAK6nG,YAAc,SAAU7hE,GAKzB,IAAK,GAJD8hE,GAAW9hE,EAAMi6C,eACjB8nB,EAAc,GAAIlpB,GAAM,EAAG,EAAG,EAAG,GACjCmpB,EAAOhoG,KAAKyjF,aAEP1+E,EAAI+iG,EAAS99D,MAAMqiC,IAAKtnE,GAAK+iG,EAAS79D,IAAIoiC,MAAOtnE,EAAG,CACzD,GAAI+zC,GAAO94C,KAAKs9E,QAAQv4E,EAExBgjG,GAAY/9D,MAAMqiC,IAAMtnE,EACxBgjG,EAAY99D,IAAIoiC,IAAMtnE,CACtB,KAAK,GAAI4mB,GAAI,EAAGA,EAAIq8E,GACM,KAAlBlvD,EAAK9mB,OAAOrG,KADQA,GAGxBA,EAAIq8E,GAA0B,MAAlBlvD,EAAK9mB,OAAOrG,IACxBo8E,EAAY/9D,MAAMsiC,OAAS3gD,EAC3Bo8E,EAAY99D,IAAIqiC,OAAS3gD,EAAI,IAE7Bo8E,EAAY/9D,MAAMsiC,OAAS,EAC3By7B,EAAY99D,IAAIqiC,OAAS3gD,GAE7B3rB,KAAK6rB,OAAOk8E,KAIpB/nG,KAAKioG,WAAa,SAASnoB,EAAUC,EAASqe,GAG1C,GAFAte,EAAW9/E,KAAK09F,gBAAgB5d,GAChCC,EAAU//E,KAAKy9F,cAAc1d,GACzBqe,EAAM,EAAG,CACT,GAAI/xB,GAAMrsE,KAAK09F,gBAAgB5d,EAAWse,EAC1C,IAAI/xB,EAAM,EAAG,MAAO,EACpB,IAAIxlC,GAAOwlC,EAAIyT,MACZ,IAAIse,EAAM,EAAG,CAChB,GAAI/xB,GAAMrsE,KAAKy9F,cAAc1d,EAAUqe,EACvC,IAAI/xB,EAAMrsE,KAAK60D,IAAIub,YAAY,EAAG,MAAO,EACzC,IAAIvpC,GAAOwlC,EAAI0T,MACZ,CACHD,EAAW9/E,KAAKkoG,mBAAmBpoB,GACnCC,EAAU//E,KAAKkoG,mBAAmBnoB,EAClC,IAAIl5C,GAAOk5C,EAAUD,EAAW,EAGpC,GAAI95C,GAAQ,GAAI64C,GAAMiB,EAAU,EAAGC,EAASpwC,OAAOw4D,WAC/C9O,EAAQr5F,KAAK27F,gBAAgB31D,GAAO/sB,IAAI,SAASiY,GAIjD,MAHAA,GAAIA,EAAE0vB,QACN1vB,EAAE8Y,MAAMqiC,KAAOxlC,EACf3V,EAAE+Y,IAAIoiC,KAAOxlC,EACN3V,IAGP8oB,EAAe,GAAPokD,EACNp+F,KAAK60D,IAAIohC,SAASnW,EAAUC,GAC5B//E,KAAK60D,IAAIyhC,gBAAgBxW,EAAUC,EAGzC,OAFA//E,MAAK60D,IAAIuhC,gBAAgBtW,EAASj5C,EAAMmT,GACxCq/C,EAAMn3F,QAAUlC,KAAKg9F,SAAS3D,GACvBxyD,GAEX7mC,KAAKooG,YAAc,SAAStoB,EAAUC,GAClC,MAAO//E,MAAKioG,WAAWnoB,EAAUC,GAAU,IAE/C//E,KAAKqoG,cAAgB,SAASvoB,EAAUC,GACpC,MAAO//E,MAAKioG,WAAWnoB,EAAUC,EAAS,IAE9C//E,KAAKsoG,eAAiB,SAASxoB,EAAUC,GACrC,MAAO//E,MAAKioG,WAAWnoB,EAAUC,EAAS,IAI9C//E,KAAKkoG,mBAAqB,SAAS77B,GAC/B,MAAO/0C,MAAKqP,IAAI,EAAGrP,KAAKoP,IAAI2lC,EAAKrsE,KAAK60D,IAAIub,YAAY,KAG1DpwE,KAAKuoG,iBAAmB,SAASl8B,EAAKC,GAClC,MAAIA,GAAS,EACF,EACJh1C,KAAKoP,IAAI1mC,KAAK60D,IAAIyoB,QAAQjR,GAAKnqE,OAAQoqE,IAIlDtsE,KAAKg1F,wBAA0B,SAAS3oB,EAAKC,GAGzC,GAFAA,EAASh1C,KAAKqP,IAAI,EAAG2lC,GAEjBD,EAAM,EACNA,EAAM,EACNC,EAAS,MACN,CACH,GAAI3yD,GAAM3Z,KAAK60D,IAAIub,WACf/D,IAAO1yD,GACP0yD,EAAM1yD,EAAM,EACZ2yD,EAAStsE,KAAK60D,IAAIyoB,QAAQ3jE,EAAI,GAAGzX,QAEjCoqE,EAASh1C,KAAKoP,IAAI1mC,KAAK60D,IAAIyoB,QAAQjR,GAAKnqE,OAAQoqE,GAIxD,OACID,IAAKA,EACLC,OAAQA,IAIhBtsE,KAAKw8F,qBAAuB,SAASx2D,GAC7BA,EAAMgE,MAAMqiC,IAAM,GAClBrmC,EAAMgE,MAAMqiC,IAAM,EAClBrmC,EAAMgE,MAAMsiC,OAAS,GAErBtmC,EAAMgE,MAAMsiC,OAAStsE,KAAKuoG,iBACtBviE,EAAMgE,MAAMqiC,IACZrmC,EAAMgE,MAAMsiC,OAIpB,IAAI3yD,GAAM3Z,KAAK60D,IAAIub,YAAc,CAUjC,OATIpqC,GAAMiE,IAAIoiC,IAAM1yD,GAChBqsB,EAAMiE,IAAIoiC,IAAM1yD,EAChBqsB,EAAMiE,IAAIqiC,OAAStsE,KAAK60D,IAAIyoB,QAAQ3jE,GAAKzX,QAEzC8jC,EAAMiE,IAAIqiC,OAAStsE,KAAKuoG,iBACpBviE,EAAMiE,IAAIoiC,IACVrmC,EAAMiE,IAAIqiC,QAGXtmC,GAEXhmC,KAAKwmG,WAAa,GAClBxmG,KAAK48F,cAAe,EACpB58F,KAAKwoG,iBACD9hE,IAAM,KACNC,IAAM,MAEV3mC,KAAKwtD,eAAiB,SAASi7C,GAC3B,GAAIA,GAAezoG,KAAK48F,aAAc,CAIlC,GAHA58F,KAAK48F,aAAe6L,EACpBzoG,KAAK+8F,WAAY,EACjB/8F,KAAKqhG,eAAe,GAChBoH,EAAa,CACb,GAAI9uF,GAAM3Z,KAAKowE,WACfpwE,MAAK6hG,UAAYr1F,MAAMmN,GACvB3Z,KAAK68F,gBAAgB,EAAGljF,EAAM,GAGlC3Z,KAAK2wE,QAAQ,oBAGrB3wE,KAAK0oG,eAAiB,WAClB,MAAO1oG,MAAK48F,cAEhB58F,KAAK2oG,kBAAoB,SAASjiE,EAAKC,GAC/B3mC,KAAKwoG,gBAAgB9hE,MAAQA,GAAO1mC,KAAKwoG,gBAAgB7hE,MAAQA,IACjE3mC,KAAKwoG,iBAAoB9hE,IAAKA,EAAKC,IAAKA,GACxC3mC,KAAK+8F,WAAY,EACb/8F,KAAK48F,cACL58F,KAAK2wE,QAAQ,oBAGzB3wE,KAAK4oG,gBAAkB,SAASC,EAAcC,GAC1C,GAAIC,GAAS/oG,KAAKwoG,eACdO,GAAOpiE,IAAM,IACboiE,GAAUriE,IAAKoiE,EAAcniE,IAAKmiE,GACtC,IAAIE,GAAYhpG,KAAKipG,oBAAoBJ,EAAcE,EAAOriE,IAAKqiE,EAAOpiE,IAC1E,OAAIqiE,IAAahpG,KAAKwmG,YAAcwC,EAAY,IAC5ChpG,KAAKwmG,WAAawC,EAClBhpG,KAAK+8F,WAAY,EACb/8F,KAAK48F,eACL58F,KAAK68F,gBAAgB,EAAG78F,KAAKowE,YAAc,GAC3CpwE,KAAKqhG,eAAe,GACpBrhG,KAAK2wE,QAAQ,qBAEV,IAKf3wE,KAAKipG,oBAAsB,SAASD,EAAWtiE,EAAKC,GAOhD,MANID,KACAsiE,EAAY1xE,KAAKqP,IAAID,EAAKsiE,IAE1BriE,IACAqiE,EAAY1xE,KAAKoP,IAAIC,EAAKqiE,IAEvBA,GAEXhpG,KAAKkpG,aAAe,WAChB,MAAOlpG,MAAKwmG,YAEhBxmG,KAAKmpG,aAAe,SAAUjyF,GAC1BlX,KAAK2oG,kBAAkBzxF,EAAOA,IAElClX,KAAKopG,kBAAoB,WACrB,OACI1iE,IAAM1mC,KAAKwoG,gBAAgB9hE,IAC3BC,IAAM3mC,KAAKwoG,gBAAgB7hE,MAInC3mC,KAAKgiG,4BAA8B,SAASrtE,GACxC,GAAI8zE,GAAczoG,KAAK48F,aACnB34D,EAAStP,EAAMsP,OACf+F,EAAQrV,EAAMqV,MACdC,EAAMtV,EAAMsV,IACZ61C,EAAW91C,EAAMqiC,IACjB0T,EAAU91C,EAAIoiC,IACd1yD,EAAMomE,EAAUD,EAChBiiB,EAAe,IAGnB,IADA/hG,KAAKi9F,WAAY,EACN,GAAPtjF,EACA,GAAe,WAAXsqB,EAAqB,CACrBjkC,KAAKyoG,EAAc,YAAc,mBAAmBjzF,OAAOsqE,EAAUnmE,EAErE,IAAIiiF,GAAY57F,KAAK67F,SACrBkG,GAAe/hG,KAAK27F,gBAAgBhnE,GACpC30B,KAAK28F,YAAYoF,EAEjB,IAAI3e,GAAWpjF,KAAKqjF,YAAYp5C,EAAIoiC,KAChCr0C,EAAM,CACV,IAAIorD,EAAU,CACVA,EAAS2W,eAAe9vD,EAAIoiC,IAAKpiC,EAAIqiC,OAAQtiC,EAAMsiC,OAASriC,EAAIqiC,QAChE8W,EAASmW,UAAU5/E,EAEnB,IAAI0vF,GAAiBrpG,KAAKqjF,YAAYvD,EAClCupB,IAAkBA,IAAmBjmB,IACrCimB,EAAethB,MAAM3E,GACrBA,EAAWimB,GAEfrxE,EAAM4jE,EAAU55F,QAAQohF,GAAY,EAGxC,IAAKprD,EAAKA,EAAM4jE,EAAU15F,OAAQ81B,IAAO,CACrC,GAAIorD,GAAWwY,EAAU5jE,EACrBorD,GAASp5C,MAAMqiC,KAAOpiC,EAAIoiC,KAC1B+W,EAASmW,UAAU5/E,GAI3BomE,EAAUD,MACP,CACH,GAAIxxD,GAAO9hB,MAAMmN,EACjB2U,GAAK+N,QAAQyjD,EAAU,EACvB,IAAIrqE,GAAMgzF,EAAczoG,KAAK6hG,UAAY7hG,KAAK8hG,eAC9CrsF,GAAID,OAAOvE,MAAMwE,EAAK6Y,EACtB,IAAIstE,GAAY57F,KAAK67F,UACjBzY,EAAWpjF,KAAKqjF,YAAYvD,GAC5B9nD,EAAM,CACV,IAAIorD,EAAU,CACV,GAAIlzD,GAAMkzD,EAASp9C,MAAM45C,cAAc51C,EAAMqiC,IAAKriC,EAAMsiC,OAC7C,IAAPp8C,GACAkzD,EAAWA,EAAS30E,MAAMu7B,EAAMqiC,IAAKriC,EAAMsiC,WAEvC8W,EAASmW,SAAS5/E,GAClBypE,EAAS2W,eAAeha,EAAS,EAAG91C,EAAIqiC,OAAStiC,EAAMsiC,UAGnD,GAARp8C,IACAkzD,EAAS2W,eAAeja,EAAU,EAAG71C,EAAIqiC,OAAStiC,EAAMsiC,QACxD8W,EAASmW,SAAS5/E,IAEtBqe,EAAM4jE,EAAU55F,QAAQohF,GAAY,EAGxC,IAAKprD,EAAKA,EAAM4jE,EAAU15F,OAAQ81B,IAAO,CACrC,GAAIorD,GAAWwY,EAAU5jE,EACrBorD,GAASp5C,MAAMqiC,KAAOyT,GACtBsD,EAASmW,SAAS5/E,QAI3B,CACHA,EAAM2d,KAAKwP,IAAInS,EAAMqV,MAAMsiC,OAAS33C,EAAMsV,IAAIqiC,QAC/B,WAAXroC,IACA89D,EAAe/hG,KAAK27F,gBAAgBhnE,GACpC30B,KAAK28F,YAAYoF,GAEjBpoF,GAAOA,EAEX,IAAIypE,GAAWpjF,KAAKqjF,YAAYvD,EAC5BsD,IACAA,EAAS2W,eAAeja,EAAU91C,EAAMsiC,OAAQ3yD,GAcxD,MAVI8uF,IAAezoG,KAAK6hG,UAAU3/F,QAAUlC,KAAK60D,IAAIub,aACjDhvE,QAAQD,MAAM,6DAElBnB,KAAKi9F,WAAY,EAEbwL,EACAzoG,KAAK68F,gBAAgB/c,EAAUC,GAE/B//E,KAAK88F,sBAAsBhd,EAAUC,GAElCgiB,GAGX/hG,KAAK88F,sBAAwB,SAAShd,EAAUC,EAASzzE,GACrDtM,KAAK8hG,gBAAgBhiB,GAAY,KACjC9/E,KAAK8hG,gBAAgB/hB,GAAW,MAGpC//E,KAAK68F,gBAAkB,SAAS/c,EAAUC,GACtC,GAIIqH,GACAhE,EALAppC,EAAQh6C,KAAK60D,IAAI0gC,cACjB/R,EAAUxjF,KAAKyjF,aACf6lB,EAAWtpG,KAAK6hG,UAChBmH,EAAYhpG,KAAKwmG,WAIjBn6B,EAAMyT,CAEV,KADAC,EAAUzoD,KAAKoP,IAAIq5C,EAAS/lC,EAAM93C,OAAS,GACpCmqE,GAAO0T,GACVqD,EAAWpjF,KAAKqjF,YAAYhX,EAAK+W,GAC5BA,GAKDgE,KACAhE,EAAS1wD,KAAK,SAASknE,EAAavtB,EAAKC,EAAQuxB,GACzC,GAAI0L,EACJ,IAAmB,MAAf3P,EAAqB,CACrB2P,EAAavpG,KAAKwpG,kBACF5P,EAAaxS,EAAOllF,QACpCqnG,EAAW,GAAKE,CAChB,KAAK,GAAI1kG,GAAI,EAAGA,EAAIwkG,EAAWrnG,OAAQ6C,IACnCwkG,EAAWxkG,GAAK2kG,MAGpBH,GAAavpG,KAAKwpG,kBACdxvD,EAAMqyB,GAAKx4B,UAAUgqD,EAAYvxB,GACjC8a,EAAOllF,OAEfklF,GAASA,EAAOhuE,OAAOmwF,IACzB3mE,KAAK5iC,MACPojF,EAASn5C,IAAIoiC,IACbryB,EAAMopC,EAASn5C,IAAIoiC,KAAKnqE,OAAS,GAGrConG,EAASlmB,EAASp5C,MAAMqiC,KAAOrsE,KAAK2pG,mBAAmBviB,EAAQ4hB,EAAWxlB,GAC1EnX,EAAM+W,EAASn5C,IAAIoiC,IAAM,IA1BzB+a,EAASpnF,KAAKwpG,kBAAkBxvD,EAAMqyB,IACtCi9B,EAASj9B,GAAOrsE,KAAK2pG,mBAAmBviB,EAAQ4hB,EAAWxlB,GAC3DnX,KA4BZ,IAEIo9B,GAAoB,EACpBC,EAAoB,EAEpBE,EAAQ,GACRC,EAAM,GACNC,EAAY,EAGhB9pG,MAAK2pG,mBAAqB,SAASviB,EAAQ4hB,EAAWxlB,GAelD,QAASumB,KACL,GAAI79C,GAAc,CAClB,IAAkB,IAAd89C,EACA,MAAO99C,EACX,IAAI+9C,EACA,IAAK,GAAIllG,GAAI,EAAGA,EAAIqiF,EAAOllF,OAAQ6C,IAAK,CACpC,GAAI6yC,GAAQwvC,EAAOriF,EACnB,IAAI6yC,GAASgyD,EACT19C,GAAe,MACd,CAAA,GAAItU,GAASiyD,EAEb,CAAA,GAAIjyD,GAASkyD,EACd,QAEA,OAJA59C,GAAes3B,GAS3B,MAFI0mB,KAA+B,IAArBD,IACV/9C,GAAes3B,GACZlsD,KAAKoP,IAAIwlB,EAAa89C,GAEjC,QAASG,GAASllB,GACd,GAAImlB,GAAYhjB,EAAOvwE,MAAMwzF,EAAWplB,GACpCtrE,EAAMywF,EAAUloG,MACpBkoG,GAAUzmF,KAAK,IACV5L,QAAQ,MAAO,WACZ4B,GAAO,IAEV5B,QAAQ,KAAM,WACX4B,GAAO,IAGV2wF,EAAOpoG,SACRyuB,EAASo5E,IACTO,EAAO35E,OAASA,GAEpB45E,GAAgB5wF,EAChB2wF,EAAOpxF,KAAKqxF,GACZF,EAAYplB,EApDhB,GAAqB,GAAjBmC,EAAOllF,OACP,QAsDJ,KAnDA,GAAIooG,MACAE,EAAgBpjB,EAAOllF,OACvBmoG,EAAY,EAAGE,EAAe,EAE9BL,EAASlqG,KAAKyqG,YAEdR,EAAmBjqG,KAAK0qG,kBACxBV,EAAYhB,GAAa1xE,KAAKqP,IAAI,EAAI68C,EAAS,KACvB,IAArBymB,EAA6B,EAAI3yE,KAAKxC,MAAMk0E,EAAY,GA0C3Dr4E,EAAS,EACN65E,EAAgBH,EAAYrB,EAAYr4E,GAAQ,CACnD,GAAIliB,GAAQ47F,EAAYrB,EAAYr4E,CACpC,IAAIy2D,EAAO34E,EAAQ,IAAMm7F,GAASxiB,EAAO34E,IAAUm7F,EAC/CO,EAAS17F,OAGb,IAAI24E,EAAO34E,IAAUg7F,GAAqBriB,EAAO34E,IAAUi7F,EAA3D,CAuBA,IADA,GAAIiB,GAAWrzE,KAAKqP,IAAIl4B,GAASu6F,GAAYA,GAAW,IAAKqB,EAAY,GAClE57F,EAAQk8F,GAAYvjB,EAAO34E,GAASg7F,GACvCh7F,GAEJ,IAAIy7F,EAAQ,CACR,KAAOz7F,EAAQk8F,GAAYvjB,EAAO34E,GAASg7F,GACvCh7F,GAEJ,MAAOA,EAAQk8F,GAlGT,GAkGqBvjB,EAAO34E,IAC9BA,QAGJ,MAAOA,EAAQk8F,GAAYvjB,EAAO34E,GAASm7F,GACvCn7F,GAGJA,GAAQk8F,EACRR,IAAW17F,IAGfA,EAAQ47F,EAAYrB,EAjHb,GAkHH5hB,EAAO34E,IACPA,IACJ07F,EAAS17F,EAAQkiB,QA7CjB,CACI,IAAKliB,EAAOA,GAAS47F,EAAY,GACzBjjB,EAAO34E,IAAUg7F,EADWh7F,KAKpC,GAAIA,EAAQ47F,EAAW,CACnBF,EAAS17F,EACT,UAGJ,IADAA,EAAQ47F,EAAYrB,EACRv6F,EAAQ24E,EAAOllF,QACnBklF,EAAO34E,IAAUi7F,EADUj7F,KAKnC,GAAIA,GAAS24E,EAAOllF,OAChB,KAEJioG,GAAS17F,IA4BjB,MAAO67F,IAEXtqG,KAAKwpG,kBAAoB,SAAS/7F,EAAKu3D,GACnC,GACIwe,GADA/tE,IAEJuvD,GAASA,GAAU,CAEnB,KAAK,GAAIjgE,GAAI,EAAGA,EAAI0I,EAAIvL,OAAQ6C,IAAK,CACjC,GAAItE,GAAIgN,EAAIoM,WAAW9U,EACvB,IAAS,GAALtE,EAAQ,CACR+iF,EAAUxjF,KAAK4qG,iBAAiBn1F,EAAIvT,OAAS8iE,GAC7CvvD,EAAIyD,KAAK2wF,EACT,KAAK,GAAIrkG,GAAI,EAAGA,EAAIg+E,EAASh+E,IACzBiQ,EAAIyD,KAAK4wF,OAGH,KAALrpG,EACLgV,EAAIyD,KAAK0wF,GACFnpG,EAAI,IAAMA,EAAI,IAAQA,EAAI,IAAMA,EAAI,GAC3CgV,EAAIyD,KAtIE,GAwIDzY,GAAK,MAAUygG,EAAYzgG,GAChCgV,EAAIyD,KA7IL,EACI,GA8IHzD,EAAIyD,KA/IL,GAkJP,MAAOzD,IAEXzV,KAAK4mG,sBAAwB,SAASn5F,EAAKo9F,EAAiBC,GACxD,GAAuB,GAAnBD,EACA,OAAQ,EAAG,EACQ,OAAnBA,IACAA,EAAkBtzF,EAAAA,GACtBuzF,EAAeA,GAAgB,CAE/B,IAAIrqG,GAAG6rE,CACP,KAAKA,EAAS,EAAGA,EAAS7+D,EAAIvL,SAC1BzB,EAAIgN,EAAIoM,WAAWyyD,GACV,GAAL7rE,EACAqqG,GAAgB9qG,KAAK4qG,iBAAiBE,GAEjCrqG,GAAK,MAAUygG,EAAYzgG,GAChCqqG,GAAgB,EAEhBA,GAAgB,IAEhBA,EAAeD,IAVev+B,KAetC,OAAQw+B,EAAcx+B,IAG1BtsE,KAAKmlF,YAAc,KACnBnlF,KAAK+qG,aAAe,SAAS1+B,GACzB,GAAIrsE,KAAKmlF,YACL,GAAI7oD,GAAIt8B,KAAKmlF,YAAY9Y,IAAQrsE,KAAKmlF,YAAY9Y,GAAKoe,UAAY,MAEnEnuD,GAAI,CACR,OAAKt8B,MAAK48F,cAAiB58F,KAAK6hG,UAAUx1B,GAG/BrsE,KAAK6hG,UAAUx1B,GAAKnqE,OAAS,EAAIo6B,EAFjC,EAAIA,GAKnBt8B,KAAKgrG,gBAAkB,SAAS3+B,GAC5B,MAAKrsE,MAAK48F,cAAiB58F,KAAK6hG,UAAUx1B,GAG/BrsE,KAAK6hG,UAAUx1B,GAAKnqE,OAAS,EAF7B,GAMflC,KAAKirG,iBAAmB,SAAS56B,GAC7B,GAAIrwE,KAAK48F,aAAc,CACnB,GAAIhjF,GAAM5Z,KAAK4jF,yBAAyBvT,EAAW1gC,OAAOw4D,WACtDmC,EAAStqG,KAAK6hG,UAAUjoF,EAAIyyD,IAChC,OAAOi+B,GAAOpoG,QAAUooG,EAAO,GAAK1wF,EAAI0yD,OAASg+B,EAAO35E,OAAS,EAEjE,MAAO,IAGf3wB,KAAKkrG,uBAAyB,SAAS76B,GACnC,GAAIz2D,GAAM5Z,KAAK4jF,yBAAyBvT,EAAW1gC,OAAOw4D,UAC1D,OAAOnoG,MAAKmrG,uBAAuBvxF,EAAIyyD,IAAKzyD,EAAI0yD,SAEpDtsE,KAAKorG,yBAA2B,SAASlP,EAAQmP,GAC7C,GAAIh7B,GAAYrwE,KAAKwwE,oBAAoB0rB,EAAQmP,EACjD,OAAOrrG,MAAKkrG,uBAAuB76B,IAEvCrwE,KAAKkkF,iCAAmC,SAASgY,EAAQmP,GACrD,GAAIh7B,GAAYrwE,KAAKwwE,oBAAoB0rB,EAAQmP,EACjD,OAAOrrG,MAAK4jF,yBAAyBvT,EAAW1gC,OAAOw4D,UAAY,KAEvEnoG,KAAKsrG,gBAAkB,SAASj/B,GAC5B,MAAKrsE,MAAK48F,aAGC58F,KAAK6hG,UAAUx1B,OAFtB,IAKRrsE,KAAK4qG,iBAAmB,SAASE,GAC7B,MAAO9qG,MAAKijG,SAAW6H,EAAe9qG,KAAKijG,UAI/CjjG,KAAKurG,oBAAsB,SAASl7B,EAAWy6B,GAC3C,MAAO9qG,MAAK4jF,yBAAyBvT,EAAWy6B,GAAcz+B,KAIlErsE,KAAKwrG,uBAAyB,SAASn7B,EAAWy6B,GAC9C,MAAO9qG,MAAK4jF,yBAAyBvT,EAAWy6B,GAAcx+B,QAElEtsE,KAAK4jF,yBAA2B,SAASvT,EAAWy6B,GAChD,GAAIz6B,EAAY,EACZ,OAAQhE,IAAK,EAAGC,OAAQ,EAE5B,IAAIxzB,GAGAwzB,EAFA4vB,EAAS,EACTmP,EAAY,EAEZh/B,EAAM,EACNo/B,EAAY,EAEZC,EAAW1rG,KAAKuhG,gBAChBx8F,EAAI/E,KAAKwhG,kBAAkBkK,EAAUr7B,GACrCtqE,EAAI2lG,EAASxpG,MACjB,IAAI6D,GAAKhB,GAAK,EACV,GAAIsnE,GAAMq/B,EAAS3mG,GACfm3F,EAASl8F,KAAKshG,aAAav8F,GAC3B4mG,EAAUt7B,EAAYq7B,EAAS3lG,EAAI,OAEvC,IAAI4lG,IAAW5lG,CAOnB,KAJA,GAAI6lG,GAAS5rG,KAAKowE,YAAc,EAC5BgT,EAAWpjF,KAAKo8F,gBAAgBF,GAChCyK,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,EAEzC80D,GAAOgE,IACVo7B,EAAYzrG,KAAK+qG,aAAa7O,KAC1B7vB,EAAMo/B,EAAYp7B,GAAa6rB,GAAU0P,KAGzCv/B,GAAOo/B,IACPvP,EACayK,IACTzK,EAAS9Y,EAASn5C,IAAIoiC,IAAI,EAC1B+W,EAAWpjF,KAAKo8F,gBAAgBF,EAAQ9Y,GACxCujB,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,GAIhDo0F,IACA3rG,KAAKshG,aAAapoF,KAAKgjF,GACvBl8F,KAAKuhG,gBAAgBroF,KAAKmzD,GAIlC,IAAI+W,GAAYA,EAASp5C,MAAMqiC,KAAO6vB,EAClCpjD,EAAO94C,KAAK29F,mBAAmBva,GAC/B8Y,EAAS9Y,EAASp5C,MAAMqiC,QACrB,CAAA,GAAIA,EAAMo/B,GAAap7B,GAAa6rB,EAAS0P,EAChD,OACIv/B,IAAKu/B,EACLt/B,OAAQtsE,KAAKs9E,QAAQsuB,GAAQ1pG,OAGjC42C,GAAO94C,KAAKs9E,QAAQ4e,GACpB9Y,EAAW,KAEf,GAAIyoB,GAAa,CACjB,IAAI7rG,KAAK48F,aAAc,CACnB,GAAI0N,GAAStqG,KAAK6hG,UAAU3F,EAC5B,IAAIoO,EAAQ,CACR,GAAIwB,GAAax0E,KAAKxC,MAAMu7C,EAAYhE,EACxCC,GAASg+B,EAAOwB,GACbA,EAAa,GAAKxB,EAAOpoG,SACxB2pG,EAAavB,EAAO35E,OACpB06E,EAAYf,EAAOwB,EAAa,IAAMxB,EAAOA,EAAOpoG,OAAS,GAC7D42C,EAAOA,EAAKjF,UAAUw3D,KASlC,MAJAA,IAAarrG,KAAK4mG,sBAAsB9tD,EAAMgyD,EAAee,GAAY,GACrE7rG,KAAK48F,cAAgByO,GAAa/+B,IAClC++B,EAAY/+B,EAAS,GAErB8W,EACOA,EAAS+W,cAAckR,IAE1Bh/B,IAAK6vB,EAAQ5vB,OAAQ++B,IAEjCrrG,KAAKogF,yBAA2B,SAAS8b,EAAQmP,GAC7C,OAAyB,KAAdA,EACP,GAAIzxF,GAAM5Z,KAAKg1F,wBAAwBkH,EAAO7vB,IAAK6vB,EAAO5vB,YAE1D1yD,GAAM5Z,KAAKg1F,wBAAwBkH,EAAQmP,EAE/CnP,GAAStiF,EAAIyyD,IACbg/B,EAAYzxF,EAAI0yD,MAEhB,IAAI+D,GAAY,EACZ07B,EAAe,KACfjvB,EAAO,MACXA,EAAO98E,KAAK+8E,UAAUmf,EAAQmP,EAAW,MAErCnP,EAASpf,EAAK9yC,MAAMqiC,IACpBg/B,EAAYvuB,EAAK9yC,MAAMsiC,OAG3B,IAAI4W,GAAQ7W,EAAM,EAGdq/B,EAAW1rG,KAAKshG,aAChBv8F,EAAI/E,KAAKwhG,kBAAkBkK,EAAUxP,GACrCn2F,EAAI2lG,EAASxpG,MACjB,IAAI6D,GAAKhB,GAAK,EACV,GAAIsnE,GAAMq/B,EAAS3mG,GACfsrE,EAAYrwE,KAAKuhG,gBAAgBx8F,GACjC4mG,EAAUzP,EAASwP,EAAS3lG,EAAI,OAEpC,IAAI4lG,IAAW5lG,CAMnB,KAHA,GAAIq9E,GAAWpjF,KAAKo8F,gBAAgB/vB,GAChCs6B,EAAYvjB,EAAUA,EAASp5C,MAAMqiC,IAAK90D,EAAAA,EAEvC80D,EAAM6vB,GAAQ,CACjB,GAAI7vB,GAAOs6B,EAAW,CAElB,IADAzjB,EAASE,EAASn5C,IAAIoiC,IAAM,GACf6vB,EACT,KACJ9Y,GAAWpjF,KAAKo8F,gBAAgBlZ,EAAQE,GACxCujB,EAAYvjB,EAAUA,EAASp5C,MAAMqiC,IAAK90D,EAAAA,MAG1C2rE,GAAS7W,EAAM,CAGnBgE,IAAarwE,KAAK+qG,aAAa1+B,GAC/BA,EAAM6W,EAEFyoB,IACA3rG,KAAKshG,aAAapoF,KAAKmzD,GACvBrsE,KAAKuhG,gBAAgBroF,KAAKm3D,IAGlC,GAAIutB,GAAW,EACXxa,IAAY/W,GAAOs6B,GACnB/I,EAAW59F,KAAK29F,mBAAmBva,EAAU8Y,EAAQmP,GACrDU,EAAe3oB,EAASp5C,MAAMqiC,MAE9BuxB,EAAW59F,KAAKs9E,QAAQ4e,GAAQroD,UAAU,EAAGw3D,GAC7CU,EAAe7P,EAEnB,IAAI2P,GAAa,CACjB,IAAI7rG,KAAK48F,aAAc,CACnB,GAAIoP,GAAUhsG,KAAK6hG,UAAUkK,EAC7B,IAAIC,EAAS,CAET,IADA,GAAIC,GAAkB,EACfrO,EAAS17F,QAAU8pG,EAAQC,IAC9B57B,IACA47B,GAEJrO,GAAWA,EAAS/pD,UAChBm4D,EAAQC,EAAkB,IAAM,EAAGrO,EAAS17F,QAEhD2pG,EAAaI,EAAkB,EAAID,EAAQr7E,OAAS,GAI5D,OACI07C,IAAKgE,EACL/D,OAAQu/B,EAAa7rG,KAAK4mG,sBAAsBhJ,GAAU,KAGlE59F,KAAKmrG,uBAAyB,SAAS9+B,EAAKg/B,GACxC,MAAOrrG,MAAKogF,yBAAyB/T,EAAKg/B,GAAW/+B,QAEzDtsE,KAAKwwE,oBAAsB,SAAS0rB,EAAQmP,GACxC,MAAOrrG,MAAKogF,yBAAyB8b,EAAQmP,GAAWh/B,KAE5DrsE,KAAKksG,gBAAkB,WACnB,GAAIC,GAAa,EACbrvB,EAAO,IACX,IAAK98E,KAAK48F,aAaN,IALA,GAAI7c,GAAU//E,KAAK6hG,UAAU3/F,OACzBmqE,EAAM,EAAGtnE,EAAI,EACb+3E,EAAO98E,KAAK67F,UAAU92F,KACtB4hG,EAAY7pB,EAAOA,EAAK9yC,MAAMqiC,IAAK90D,EAAAA,EAEhC80D,EAAM0T,GAAS,CAClB,GAAIuqB,GAAStqG,KAAK6hG,UAAUx1B,EAC5B8/B,IAAc7B,EAASA,EAAOpoG,OAAS,EAAI,EAC3CmqE,IACIA,EAAMs6B,IACNt6B,EAAMyQ,EAAK7yC,IAAIoiC,IAAI,EACnByQ,EAAO98E,KAAK67F,UAAU92F,KACtB4hG,EAAY7pB,EAAMA,EAAK9yC,MAAMqiC,IAAK90D,EAAAA,OApBtB,CACpB40F,EAAansG,KAAKowE,WAElB,KAAK,GADDgpB,GAAWp5F,KAAK67F,UACX92F,EAAI,EAAGA,EAAIq0F,EAASl3F,OAAQ6C,IACjC+3E,EAAOsc,EAASr0F,GAChBonG,GAAcrvB,EAAK7yC,IAAIoiC,IAAMyQ,EAAK9yC,MAAMqiC,IAsBhD,MAHIrsE,MAAKmlF,cACLgnB,GAAcnsG,KAAKosG,0BAEhBD,GAEXnsG,KAAKqsG,gBAAkB,SAASC,GACvBtsG,KAAKusG,iBACVvsG,KAAK4mG,sBAAwB,SAASn5F,EAAKo9F,EAAiBC,GACxD,GAAwB,IAApBD,EACA,OAAQ,EAAG,EACVA,KACDA,EAAkBtzF,EAAAA,GACtBuzF,EAAeA,GAAgB,CAE/B,IAAIrqG,GAAG6rE,CACP,KAAKA,EAAS,EAAGA,EAAS7+D,EAAIvL,SAC1BzB,EAAIgN,EAAIukB,OAAOs6C,MAEXw+B,GADM,OAANrqG,EACgBT,KAAK4qG,iBAAiBE,GAEtBwB,EAAGE,kBAAkB/rG,IAEtBoqG,IAPev+B,KAYtC,OAAQw+B,EAAcx+B,MAI9BtsE,KAAK6C,QAAU,WACP7C,KAAKmhG,cACLnhG,KAAKmhG,YAAY3I,YAAY,MAC7Bx4F,KAAKmhG,YAAc,MAEvBnhG,KAAKolG,iBAuCV7kG,KAAKkgG,EAAYh+F,WAEpBosD,EAAS,0BAA0B4sC,QAAQl7F,KAAKkgG,EAAYh+F,WAC5DosD,EAAS,gCAAgC+wC,aAAar/F,KAAKkgG,EAAYh+F,WAGvEmB,EAAOq1E,cAAcwnB,EAAYh+F,UAAW,WACxCqtB,MACIhtB,IAAK,SAAS2G,GAUV,GATKA,GAAkB,OAATA,EAEI,QAATA,EACLA,GAAQ,EACM,eAATA,EACLA,GAAS,EACY,gBAATA,KACZA,EAAQ4oB,SAAS5oB,EAAO,MAAO,GAN/BA,GAAQ,EAQRzJ,KAAKysG,OAAShjG,EAGlB,GADAzJ,KAAKysG,MAAQhjG,EACRA,EAEE,CACH,GAAIqiC,GAAsB,gBAATriC,GAAoBA,EAAQ,IAC7CzJ,MAAK2oG,kBAAkB78D,EAAKA,GAC5B9rC,KAAKwtD,gBAAe,OAJpBxtD,MAAKwtD,gBAAe,IAO5BzqD,IAAK,WACD,MAAI/C,MAAK0oG,kBACc,GAAf1oG,KAAKysG,MACE,cACNzsG,KAAKopG,oBAAoB1iE,IAEvB1mC,KAAKysG,MADD,OAGR,OAEX3zB,YAAY,GAEhBysB,YACIziG,IAAK,SAAS+sB,IACVA,EAAa,QAAPA,EACmB,QAAnB7vB,KAAKytF,MAAM/0E,KACJ,QAAPmX,IACK7vB,KAAKyqG,cACZzqG,KAAKyqG,YAAc56E,EACf7vB,KAAK48F,eACL58F,KAAK+8F,WAAY,EACjB/8F,KAAKqhG,eAAe,GACpBrhG,KAAK68F,gBAAgB,EAAG78F,KAAKowE,YAAc,MAIvD8I,aAAc,QAElB+wB,kBAAoB/wB,cAAc,GAClCwzB,iBACI5pG,IAAK,WAAY9C,KAAK2wE,QAAQ,qBAC9BuI,aAAc,GAElB2rB,WACI/hG,IAAK,SAAS+hG,GACV7kG,KAAK+kG,WAAaF,EAElB7kG,KAAKolG,cACDP,GACA7kG,KAAKqlG,gBAEbnsB,cAAc,GAElByzB,aAAczzB,cAAc,GAC5BsK,SACI1gF,IAAK,SAAS0gF,GACNz5B,MAAMy5B,IAAYxjF,KAAKijG,WAAazf,IAExCxjF,KAAK+8F,WAAY,EACjB/8F,KAAK8hG,mBACL9hG,KAAKijG,SAAWzf,EAChBxjF,KAAK2wE,QAAQ,mBAEjBuI,aAAc,EACdJ,YAAY,GAEhBsqB,WACItgG,IAAK,SAAS+sB,GAAM7vB,KAAK2wE,QAAQ,oBACjCuI,cAAc,GAElB4c,aACIhzF,IAAK,SAAS+sB,GAAM7vB,KAAK60D,IAAIghC,eAAehmE,IAC5C9sB,IAAK,WAAY,MAAO/C,MAAK60D,IAAIkhC,kBACjCjd,YAAY,GAEhBn2E,MACIG,IAAK,SAAS+sB,GAAO7vB,KAAK4C,QAAQitB,IAClC9sB,IAAK,WAAa,MAAO/C,MAAKilG,YAItCrlG,EAAQ6gG,YAAcA,IAGtBx0C,IAAInsD,OAAO,cAAc,UAAU,UAAU,SAAS,eAAe,cAAc,aAAc,SAAS+uD,EAAUjvD,EAASC,GAC7H,YA4SA,SAAS+sG,GAAgBC,EAAQhsG,GAC7B,QAASisG,GAAarsG,GAClB,MAAI,KAAKoO,KAAKpO,IAAMI,EAAQkkE,OAAe,MACpC,GAEX,MAAO+nC,GAAaD,EAAO,IAAMA,EAC3BC,EAAaD,EAAOA,EAAO3qG,OAAS,IAhT9C,GAAIwjE,GAAO7W,EAAS,cAChBmJ,EAAMnJ,EAAS,aACfgwB,EAAQhwB,EAAS,WAAWgwB,MAE5BkuB,EAAS,WACT/sG,KAAK04E,cAGT,WACI14E,KAAK8C,IAAM,SAASjC,GAEhB,MADAm3D,GAAIj0D,MAAM/D,KAAK04E,SAAU73E,GAClBb,MAEXA,KAAKw4E,WAAa,WACd,MAAO9S,GAAKrB,WAAWrkE,KAAK04E,WAEhC14E,KAAKitD,WAAa,SAASpsD,GACvBb,KAAK04E,SAAW73E,GAEpBb,KAAKgtG,KAAO,SAASpjC,GACjB,GAAI/oE,GAAUb,KAAK04E,SACfkV,EAAW5tF,KAAKitG,eAAerjC,EAAS/oE,EAC5C,KAAK+sF,EACD,OAAO,CAEX,IAAIvQ,GAAa,IAgBjB,OAfAuQ,GAAS9rF,QAAQ,SAASkkC,EAAOqmC,EAAKrH,GAClC,GAAKh/B,EAAMgE,MAUPqzC,EAAar3C,MAVC,CACd,GAAIsmC,GAAStmC,EAAMg/B,QAAUA,GAAU,EAEvC,IADAqY,EAAa,GAAIwB,GAAMxS,EAAKC,EAAQD,EAAKC,EAAStmC,EAAM9jC,SACnD8jC,EAAM9jC,QAAUrB,EAAQmpC,OAASnpC,EAAQmpC,MAAMA,OACtB,GAAvBnpC,EAAQqsG,aAAwB7vB,EAAW6B,QAAQr+E,EAAQmpC,OAG9D,MADAqzC,GAAa,MACN,EAIf,OAAO,IAGJA,GAEXr9E,KAAKmtG,QAAU,SAASvjC,GACpB,GAAI/oE,GAAUb,KAAK04E,QACnB,KAAK73E,EAAQgsG,OACT,QACJ7sG,MAAKotG,gBAAgBvsG,EAErB,IAAImlC,GAAQnlC,EAAQmlC,MAChBgU,EAAQhU,EACN4jC,EAAQqsB,SAASjwD,EAAMgE,MAAMqiC,IAAKrmC,EAAMiE,IAAIoiC,KAC5CzC,EAAQ/U,IAAI0gC,cAEd/P,KACAh7B,EAAK3pD,EAAQ2pD,EACjB,IAAI3pD,EAAQwsG,aAAc,CACtB,GAEIC,GAFA3zF,EAAM6wC,EAAGtoD,OACT0pG,EAAS5xD,EAAM93C,OAASyX,CAE5B88C,GAAO,IAAK,GAAI4V,GAAM7hB,EAAGwa,QAAU,EAAGqH,GAAOu/B,EAAQv/B,IAAO,CACxD,IAAK,GAAI1gD,GAAI,EAAGA,EAAIhS,EAAKgS,IACrB,IAAqC,GAAjCquB,EAAMqyB,EAAM1gD,GAAGmN,OAAO0xB,EAAG7+B,IACzB,QAAS8qC,EAEjB,IAAI0hC,GAAYn+C,EAAMqyB,GAClBvzB,EAAOkB,EAAMqyB,EAAM1yD,EAAM,GACzBsxB,EAAaktD,EAAUj2F,OAASi2F,EAAUxqF,MAAM68C,EAAG,IAAI,GAAGtoD,OAC1DgpC,EAAW4N,EAAKnrC,MAAM68C,EAAG7wC,EAAM,IAAI,GAAGzX,MAEtCorG,IAAaA,EAAUrjE,IAAIoiC,MAAQA,GACnCihC,EAAUrjE,IAAIqiC,OAASrhC,IAI3Bu6C,EAAOtsE,KAAKo0F,EAAY,GAAIzuB,GACxBxS,EAAKphC,EAAYohC,EAAM1yD,EAAM,EAAGuxB,IAEhCvxB,EAAM,IACN0yD,EAAMA,EAAM1yD,EAAM,SAG1B,KAAK,GAAI5U,GAAI,EAAGA,EAAIi1C,EAAM93C,OAAQ6C,IAE9B,IAAK,GADD2I,GAAUg4D,EAAKZ,gBAAgB9qB,EAAMj1C,GAAIylD,GACpC7+B,EAAI,EAAGA,EAAIje,EAAQxL,OAAQypB,IAAK,CACrC,GAAIhe,GAAQD,EAAQie,EACpB65D,GAAOtsE,KAAK,GAAI2lE,GAAM95E,EAAG4I,EAAMq3D,OAAQjgE,EAAG4I,EAAMq3D,OAASr3D,EAAMzL,SAK3E,GAAI8jC,EAAO,CAIP,IAHA,GAAI+4C,GAAc/4C,EAAMgE,MAAMsiC,OAC1B2S,EAAYj5C,EAAMgE,MAAMsiC,OACxBvnE,EAAI,EAAG4mB,EAAI65D,EAAOtjF,OAAS,EACxB6C,EAAI4mB,GAAK65D,EAAOzgF,GAAGilC,MAAMsiC,OAASyS,GAAeyG,EAAOzgF,GAAGilC,MAAMqiC,KAAOrmC,EAAMgE,MAAMqiC,KACvFtnE,GAEJ,MAAOA,EAAI4mB,GAAK65D,EAAO75D,GAAGse,IAAIqiC,OAAS2S,GAAauG,EAAO75D,GAAGse,IAAIoiC,KAAOrmC,EAAMiE,IAAIoiC,KAC/E1gD,GAGJ,KADA65D,EAASA,EAAO3uE,MAAM9R,EAAG4mB,EAAI,GACxB5mB,EAAI,EAAG4mB,EAAI65D,EAAOtjF,OAAQ6C,EAAI4mB,EAAG5mB,IAClCygF,EAAOzgF,GAAGilC,MAAMqiC,KAAOrmC,EAAMgE,MAAMqiC,IACnCmZ,EAAOzgF,GAAGklC,IAAIoiC,KAAOrmC,EAAMgE,MAAMqiC,IAIzC,MAAOmZ,IAEXxlF,KAAK+X,QAAU,SAASqd,EAAOm4E,GAC3B,GAAI1sG,GAAUb,KAAK04E,SAEfluB,EAAKxqD,KAAKotG,gBAAgBvsG,EAC9B,IAAIA,EAAQwsG,aACR,MAAOE,EAEX,IAAK/iD,EAAL,CAGA,GAAI78C,GAAQ68C,EAAGhvB,KAAKpG,EACpB,KAAKznB,GAASA,EAAM,GAAGzL,QAAUkzB,EAAMlzB,OACnC,MAAO,KAGX,IADAqrG,EAAcn4E,EAAMrd,QAAQyyC,EAAI+iD,GAC5B1sG,EAAQ2sG,aAAc,CACtBD,EAAcA,EAAY9+F,MAAM,GAChC,KAAK,GAAI1J,GAAIuyB,KAAKoP,IAAItR,EAAMlzB,OAAQkzB,EAAMlzB,QAAS6C,KAAO,CACtD,GAAI2sB,GAAK0D,EAAMrwB,EACX2sB,IAAMA,EAAGgF,eAAiBhF,EAC1B67E,EAAYxoG,GAAKwoG,EAAYxoG,GAAGw1E,cAEhCgzB,EAAYxoG,GAAKwoG,EAAYxoG,GAAG2xB,cAExC62E,EAAcA,EAAY5pF,KAAK,IAGnC,MAAO4pF,KAGXvtG,KAAKitG,eAAiB,SAASrjC,EAAS/oE,GACpC,GAAI2pD,GAAKxqD,KAAKotG,gBAAgBvsG,EAC9B,KAAK2pD,EACD,OAAO,CAEX,IAAI5iD,EACJ,IAAI/G,EAAQwsG,aACR,GAAI1zF,GAAM6wC,EAAGtoD,OACTurG,EAAgB,SAAS30D,EAAMuzB,EAAKrH,GACpC,GAAI/5B,GAAa6N,EAAKhgB,OAAO0xB,EAAG,GAChC,KAAmB,GAAfvf,EAAJ,CAEA,IAAK,GAAIlmC,GAAI,EAAGA,EAAI4U,EAAK5U,IAErB,GADA+zC,EAAO8wB,EAAQ0T,QAAQjR,EAAMtnE,IACF,GAAvB+zC,EAAKhgB,OAAO0xB,EAAGzlD,IACf,MAGR,IAAImmC,GAAW4N,EAAKnrC,MAAM68C,EAAG7wC,EAAM,IAAI,GAAGzX,OAEtC8jC,EAAQ,GAAI64C,GAAMxS,EAAKphC,EAAYohC,EAAM1yD,EAAM,EAAGuxB,EAOtD,OANiB,IAAbsf,EAAGwa,QACHh/B,EAAMgE,MAAMqiC,MACZrmC,EAAMgE,MAAMsiC,OAAS38B,OAAOw4D,WACrBnjC,IACPh/B,EAAMgE,MAAMsiC,QAAUtH,KAEtBp9D,EAASo+B,QAAb,SAGD,IAAInlC,EAAQ6sG,UACf,GAAID,GAAgB,SAAS30D,EAAMuzB,EAAKphC,GAEpC,IAAK,GADDv9B,GAAUg4D,EAAKZ,gBAAgBhsB,EAAM0R,GAChCzlD,EAAI2I,EAAQxL,OAAO,EAAG6C,GAAK,EAAGA,IACnC,GAAI6C,EAAS8F,EAAQ3I,GAAIsnE,EAAKphC,GAC1B,OAAO,OAGnB,IAAIwiE,GAAgB,SAAS30D,EAAMuzB,EAAKphC,GAEpC,IAAK,GADDv9B,GAAUg4D,EAAKZ,gBAAgBhsB,EAAM0R,GAChCzlD,EAAI,EAAGA,EAAI2I,EAAQxL,OAAQ6C,IAChC,GAAI6C,EAAS8F,EAAQ3I,GAAIsnE,EAAKphC,GAC1B,OAAO,EAIvB,IAAI0iE,GAAe3tG,KAAK4tG,cAAchkC,EAAS/oE,EAE/C,QACIiB,QAAS,SAAS+rG,GACdjmG,EAAWimG,EACXF,EAAa7rG,QAAQ2rG,MAKjCztG,KAAKotG,gBAAkB,SAASvsG,EAASitG,GACrC,GAAIjtG,EAAQgsG,iBAAkB9/F,QAC1B,MAAOlM,GAAQ2pD,GAAK3pD,EAAQgsG,MAEhC,IAAIA,GAAShsG,EAAQgsG,MAErB,KAAKhsG,EAAQgsG,OACT,MAAOhsG,GAAQ2pD,IAAK,CAEnB3pD,GAAQkkE,SACT8nC,EAASnnC,EAAKd,aAAaioC,IAE3BhsG,EAAQktG,YACRlB,EAASD,EAAgBC,EAAQhsG,GAErC,IAAImtG,GAAWntG,EAAQotG,cAAgB,KAAO,KAG9C,IADAptG,EAAQwsG,cAAgBS,GAAyB,SAASj/F,KAAKg+F,GAC3DhsG,EAAQwsG,aACR,MAAOxsG,GAAQ2pD,GAAKxqD,KAAKkuG,yBAAyBrB,EAAQmB,EAE9D,KACI,GAAIxjD,GAAK,GAAIz9C,QAAO8/F,EAAQmB,GAC9B,MAAM1oG,GACJklD,GAAK,EAET,MAAO3pD,GAAQ2pD,GAAKA,GAGxBxqD,KAAKkuG,yBAA2B,SAASrB,EAAQmB,GAG7C,IAAK,GAFDl3F,GAAQ+1F,EAAO90F,QAAQ,cAAe,QAAQtJ,MAAM,MACpD+7C,KACKzlD,EAAI,EAAGA,EAAI+R,EAAM5U,OAAQ6C,IAAK,IACnCylD,EAAGtxC,KAAK,GAAInM,QAAO+J,EAAM/R,GAAIipG,IAC/B,MAAM1oG,GACJ,OAAO,EAQX,MANgB,IAAZwR,EAAM,IACN0zC,EAAGrtB,QACHqtB,EAAGwa,OAAS,GAEZxa,EAAGwa,OAAS,EAETxa,GAGXxqD,KAAK4tG,cAAgB,SAAShkC,EAAS/oE,GACnC,GAAI6sG,GAAiC,GAArB7sG,EAAQ6sG,UACpBR,EAAqC,GAAvBrsG,EAAQqsG,YAEtBlnE,EAAQnlC,EAAQmlC,MAChBgE,EAAQnpC,EAAQmpC,KACfA,KACDA,EAAQhE,EAAQA,EAAM0nE,EAAY,MAAQ,SAAW9jC,EAAQhoC,UAAUqoC,YAEvEjgC,EAAMA,QACNA,EAAQA,EAAMkjE,GAAeQ,EAAY,MAAQ,SAErD,IAAI5tB,GAAW95C,EAAQA,EAAMgE,MAAMqiC,IAAM,EACrC0T,EAAU/5C,EAAQA,EAAMiE,IAAIoiC,IAAMzC,EAAQwG,YAAc,CAsC5D,QAAQtuE,QApCM4rG,EAAY,SAAS9lG,GAC3B,GAAIykE,GAAMriC,EAAMqiC,GAGhB,KAAIzkE,EADOgiE,EAAQ0T,QAAQjR,GAAKx4B,UAAU,EAAG7J,EAAMsiC,QAChCD,GAAnB,CAGA,IAAKA,IAAOA,GAAOyT,EAAUzT,IACzB,GAAIzkE,EAASgiE,EAAQ0T,QAAQjR,GAAMA,GAC/B,MAER,IAAoB,GAAhBxrE,EAAQivB,KAGZ,IAAKu8C,EAAM0T,EAASD,EAAW91C,EAAMqiC,IAAKA,GAAOyT,EAAUzT,IACvD,GAAIzkE,EAASgiE,EAAQ0T,QAAQjR,GAAMA,GAC/B,SACR,SAASzkE,GACT,GAAIykE,GAAMriC,EAAMqiC,GAGhB,KAAIzkE,EADOgiE,EAAQ0T,QAAQjR,GAAKp0C,OAAO+R,EAAMsiC,QAC1BD,EAAKriC,EAAMsiC,QAA9B,CAGA,IAAKD,GAAU,EAAGA,GAAO0T,EAAS1T,IAC9B,GAAIzkE,EAASgiE,EAAQ0T,QAAQjR,GAAMA,GAC/B,MAER,IAAoB,GAAhBxrE,EAAQivB,KAGZ,IAAKu8C,EAAMyT,EAAUC,EAAU/1C,EAAMqiC,IAAKA,GAAO0T,EAAS1T,IACtD,GAAIzkE,EAASgiE,EAAQ0T,QAAQjR,GAAMA,GAC/B,aAMrB9rE,KAAKwsG,EAAOtqG,WAWf7C,EAAQmtG,OAASA,IAGjB9gD,IAAInsD,OAAO,6BAA6B,UAAU,UAAU,SAAS,eAAe,qBAAsB,SAAS+uD,EAAUjvD,EAASC,GACtI,YAMA,SAASsuG,GAAYvqG,EAAQw6D,GACzBp+D,KAAKo+D,SAAWA,IAAaqB,EAAUxB,MAAQ,MAAQ,OACvDj+D,KAAKytD,YACLztD,KAAKouG,qBACLpuG,KAAKquG,YAAYzqG,GACjB5D,KAAKsuG,gBAAiB,EAG1B,QAASC,GAAiB3qG,EAAQw6D,GAC9B+vC,EAAY5tG,KAAKP,KAAM4D,EAAQw6D,GAC/Bp+D,KAAKsuG,gBAAiB,EAd1B,GAAI9wB,GAAU3uB,EAAS,eACnB4Q,EAAY5Q,EAAS,oBACrBuJ,EAAWolB,EAAQplB,QAevBm2C,GAAiB9rG,UAAY0rG,EAAY1rG,UAEzC,WAgEI,QAASw+E,GAAYzoB,GACjB,MAAyB,gBAAXA,IAAuBA,EAAQ9K,SACtC8K,EAAQ9K,QAAQ1B,UAAY,EA/DvChsD,KAAKwuG,WAAa,SAASh2C,GACnBx4D,KAAKytD,SAAS+K,EAAQj1D,OACtBvD,KAAKyuG,cAAcj2C,GAEvBx4D,KAAKytD,SAAS+K,EAAQj1D,MAAQi1D,EAE1BA,EAAQ9K,SACR1tD,KAAK0uG,cAAcl2C,IAG3Bx4D,KAAKyuG,cAAgB,SAASj2C,EAASm2C,GACnC,GAAIprG,GAAOi1D,IAA+B,gBAAZA,GAAuBA,EAAUA,EAAQj1D,KACvEi1D,GAAUx4D,KAAKytD,SAASlqD,GACnBorG,SACM3uG,MAAKytD,SAASlqD,EACzB,IAAIqrG,GAAM5uG,KAAKouG,iBACf,KAAK,GAAIS,KAASD,GAAK,CACnB,GAAIE,GAAWF,EAAIC,EACnB,IAAIC,GAAYt2C,QACLo2C,GAAIC,OACR,IAAIriG,MAAMvH,QAAQ6pG,GAAW,CAChC,GAAI/pG,GAAI+pG,EAAS9sG,QAAQw2D,IACf,GAANzzD,IACA+pG,EAASt5F,OAAOzQ,EAAG,GACI,GAAnB+pG,EAAS5sG,SACT0sG,EAAIC,GAASC,EAAS,QAM1C9uG,KAAK0tD,QAAU,SAASlkD,EAAKgvD,EAASxM,GAMlC,GALkB,gBAAPxiD,IAAmBA,QACVoG,IAAZo8C,IACAA,EAAWxiD,EAAIwiD,UACnBxiD,EAAMA,EAAIxJ,KAAKo+D,WAEd50D,EAEL,MAAsB,kBAAXgvD,GACAx4D,KAAKwuG,YAAYhzE,KAAMg9B,EAAS9K,QAASlkD,EAAKjG,KAAMi1D,EAAQj1D,MAAQiG,QAE/EA,GAAIiF,MAAM,KAAK3M,QAAQ,SAASitG,GAC5B,GAAIC,GAAQ,EACZ,KAA6B,GAAzBD,EAAQ/sG,QAAQ,KAAY,CAC5B,GAAI8U,GAAQi4F,EAAQtgG,MAAM,MAC1BsgG,GAAUj4F,EAAMsJ,MAChBtJ,EAAMhV,QAAQ,SAASitG,GACnB,GAAIE,GAAUjvG,KAAKkvG,UAAUH,GACzB1uG,EAAK+3D,EAAS62C,EAAQ1vC,QAAU0vC,EAAQzlG,GAC5CwlG,KAAUA,EAAQ,IAAM,IAAM3uG,EAC9BL,KAAKmvG,qBAAqBH,EAAO,cAClChvG,MACHgvG,GAAS,IAEb,GAAIC,GAAUjvG,KAAKkvG,UAAUH,GACzB1uG,EAAK+3D,EAAS62C,EAAQ1vC,QAAU0vC,EAAQzlG,GAC5CxJ,MAAKmvG,qBAAqBH,EAAQ3uG,EAAIm4D,EAASxM,IAChDhsD,OAOPA,KAAKmvG,qBAAuB,SAASN,EAAOr2C,EAASxM,GACjD,GAAkCjnD,GAA9B6pG,EAAM5uG,KAAKouG,iBACf,IAAK51C,EAEE,IAAKo2C,EAAIC,IAAU7uG,KAAKsuG,eAC3BM,EAAIC,GAASr2C,MACV,CACEhsD,MAAMvH,QAAQ2pG,EAAIC,KAE0B,IAArC9pG,EAAI6pG,EAAIC,GAAO7sG,QAAQw2D,KAC/Bo2C,EAAIC,GAAOr5F,OAAOzQ,EAAG,GAFrB6pG,EAAIC,IAAUD,EAAIC,IAKC,gBAAZ7iD,KAEHA,EADAA,GAAYwM,EAAQ42C,WACR,IAEFnuB,EAAYzoB,GAE9B,IAAI/K,GAAWmhD,EAAIC,EACnB,KAAK9pG,EAAI,EAAGA,EAAI0oD,EAASvrD,OAAQ6C,IAAK,CAClC,GAAIsqG,GAAQ5hD,EAAS1oD,GACjBuqG,EAAWruB,EAAYouB,EAC3B,IAAIC,EAAWtjD,EACX,MAERyB,EAASj4C,OAAOzQ,EAAG,EAAGyzD,cAvBfo2C,GAAIC,IA2BnB7uG,KAAKquG,YAAc,SAAS5gD,GACxBA,GAAY7rD,OAAOC,KAAK4rD,GAAU3rD,QAAQ,SAASyB,GAC/C,GAAIi1D,GAAU/K,EAASlqD,EACvB,IAAKi1D,EAAL,CAGA,GAAuB,gBAAZA,GACP,MAAOx4D,MAAK0tD,QAAQ8K,EAASj1D,EAEV,mBAAZi1D,KACPA,GAAYh9B,KAAMg9B,IAEC,gBAAZA,KAGNA,EAAQj1D,OACTi1D,EAAQj1D,KAAOA,GAEnBvD,KAAKwuG,WAAWh2C,MACjBx4D,OAGPA,KAAKuvG,eAAiB,SAAS9hD,GAC3B7rD,OAAOC,KAAK4rD,GAAU3rD,QAAQ,SAASyB,GACnCvD,KAAKyuG,cAAchhD,EAASlqD,KAC7BvD,OAGPA,KAAKwvG,SAAW,SAASC,GACrB7tG,OAAOC,KAAK4tG,GAAS3tG,QAAQ,SAAS0H,GAClCxJ,KAAK0tD,QAAQlkD,EAAKimG,EAAQjmG,KAC3BxJ,OAGPA,KAAK0uG,cAAgB,SAASl2C,GAC1Bx4D,KAAK0tD,QAAQ8K,EAAQ9K,QAAS8K,IAElCx4D,KAAKkvG,UAAY,SAASrtG,GACtB,GAAIiV,GAAQjV,EAAK60B,cAAcjoB,MAAM,mBAAmB+1B,OAAO,SAAStT,GAAG,MAAOA,KAC9E1nB,EAAMsN,EAAMsJ,MAEZkrB,EAAUkyC,EAAQh0E,EACtB,IAAIg0E,EAAQ9kB,cAAcptB,GACtB9hC,EAAMg0E,EAAQ9kB,cAAcptB,GAAS5U,kBACpC,CAAA,IAAK5f,EAAM5U,OACZ,OAAQsH,IAAKA,EAAK+1D,QAAS,EAC1B,IAAoB,GAAhBzoD,EAAM5U,QAA2B,SAAZ4U,EAAM,GAChC,OAAQtN,IAAKA,EAAI+wE,cAAehb,QAAS,GAG7C,IAAK,GADDA,GAAS,EACJx6D,EAAI+R,EAAM5U,OAAQ6C,KAAM,CAC7B,GAAIipG,GAAWxwB,EAAQplB,SAASthD,EAAM/R,GACtC,IAAgB,MAAZipG,EAGA,MAFsB,mBAAX5sG,UACPA,QAAQD,MAAM,oBAAsB2V,EAAM/R,GAAK,OAASlD,IACrD,CAEX09D,IAAUyuC,EAEd,OAAQxkG,IAAKA,EAAK+1D,OAAQA,IAG9Bv/D,KAAK0vG,eAAiB,SAAwBnwC,EAAQ5B,GAClD,GAAIn0D,GAAM4uD,EAASmH,GAAU5B,CAC7B,OAAO39D,MAAKouG,kBAAkB5kG,IAGlCxJ,KAAKi+E,eAAiB,SAASx6E,EAAM87D,EAAQ5B,EAAWryB,GACpD,KAAIA,EAAU,GAAd,CACA,GAAI9hC,GAAM4uD,EAASmH,GAAU5B,EACzBnF,EAAUx4D,KAAKouG,kBAAkB5kG,EAMrC,OALI/F,GAAKksG,YACLlsG,EAAKksG,WAAa,IAAMnmG,EACxBgvD,EAAUx4D,KAAKouG,kBAAkB3qG,EAAKksG,YAAcn3C,IAGpDA,GACe,aAAXA,GAAyD,aAA/BA,EAAQA,EAAQt2D,OAAS,IAMvDuB,EAAKksG,YACCpwC,GAAoB,GAAVA,GAAoC,GAApB5B,EAAUz7D,SAEtB,GAAXq9D,GAAgBj0B,EAAU,KAC/B7nC,EAAKksG,UAAY,IAFjBlsG,EAAKksG,UAAYlsG,EAAKksG,UAAU94F,MAAM,GAAIrN,EAAItH,OAAS,KAIvDs2D,QAASA,KAXT/0D,EAAKksG,UAAYlsG,EAAKksG,WAAanmG,GAC3BgvD,QAAS,WAa7Bx4D,KAAKq+E,cAAgB,SAAS/3C,EAAQ7iC,GAClC,MAAOA,GAAKksG,WAAa,KAG9BpvG,KAAK4tG,EAAY1rG,WAEpB7C,EAAQuuG,YAAcA,EACtBvuG,EAAQ2uG,iBAAmBA,IAG3BtiD,IAAInsD,OAAO,gCAAgC,UAAU,UAAU,SAAS,cAAc,4BAA4B,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GACxK,YAEA,IAAIm4D,GAAMnJ,EAAS,cACf0/C,EAAmB1/C,EAAS,4BAA4B0/C,iBACxDp3B,EAAetoB,EAAS,wBAAwBsoB,aAEhDy4B,EAAiB,SAASxxC,EAAU3Q,GACpC8gD,EAAiBhuG,KAAKP,KAAMytD,EAAU2Q,GACtCp+D,KAAK6vG,OAAS7vG,KAAKytD,SACnBztD,KAAKqrE,kBAAkB,OAAQ,SAAS/lE,GACpC,MAAOA,GAAEkzD,QAAQh9B,KAAKl2B,EAAEghC,OAAQhhC,EAAEgpB,YAI1C0pC,GAAIN,SAASk4C,EAAgBrB,GAE7B,WAEIv2C,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAKw7B,KAAO,SAASg9B,EAASlyB,EAAQhY,GAClC,GAAI9hB,MAAMvH,QAAQuzD,GAAU,CACxB,IAAK,GAAIzzD,GAAIyzD,EAAQt2D,OAAQ6C,KACzB,GAAI/E,KAAKw7B,KAAKg9B,EAAQzzD,GAAIuhC,EAAQhY,GAAO,OAAO,CAEpD,QAAO,EAMX,GAHuB,gBAAZkqC,KACPA,EAAUx4D,KAAKytD,SAAS+K,KAEvBA,EACD,OAAO,CAEX,IAAIlyB,GAAUA,EAAOqjC,YAAcnR,EAAQtL,SACvC,OAAO,CAEX,IAAI5nD,IAAKghC,OAAQA,EAAQkyB,QAASA,EAASlqC,KAAMA,EAIjD,OAHAhpB,GAAE4uD,YAAcl0D,KAAKuqE,MAAM,OAAQjlE,GACnCtF,KAAK2wE,QAAQ,YAAarrE,IAED,IAAlBA,EAAE4uD,aAGbl0D,KAAK8vG,gBAAkB,SAASxpE,GAC5B,IAAItmC,KAAK+vG,UAIT,MADAzpE,IAAUA,EAAOikC,MAAM,gBACnBvqE,KAAKgwG,WACLhwG,KAAK+U,MAAMqL,MACXpgB,KAAKuqC,oBAAoB,OAAQvqC,KAAKiwG,oBAEjCjwG,KAAK+U,MAAM7S,SACZlC,KAAK+U,MAAQ/U,KAAKkwG,UAEflwG,KAAKgwG,WAAY,IAEvBhwG,KAAKiwG,qBACNjwG,KAAKiwG,mBAAqB,SAAS3qG,GAC/BtF,KAAK+U,MAAMmE,MAAM5T,EAAEkzD,QAASlzD,EAAEgpB,QAChCsU,KAAK5iC,OAGXA,KAAKkwG,SAAWlwG,KAAK+U,MACrB/U,KAAK+U,SACL/U,KAAK6tD,GAAG,OAAQ7tD,KAAKiwG,oBACdjwG,KAAKgwG,WAAY,IAG5BhwG,KAAKmwG,OAAS,SAAS7pE,GACnB,IAAItmC,KAAK+vG,WAAc/vG,KAAK+U,MAA5B,CAGA,GAAI/U,KAAKgwG,UACL,MAAOhwG,MAAK8vG,gBAAgBxpE,EAEhC,KACItmC,KAAK+vG,WAAY,EACjB/vG,KAAK+U,MAAMjT,QAAQ,SAASovB,GACR,gBAALA,GACPlxB,KAAKw7B,KAAKtK,EAAGoV,GAEbtmC,KAAKw7B,KAAKtK,EAAE,GAAIoV,EAAQpV,EAAE,KAC/BlxB,MACL,QACEA,KAAK+vG,WAAY,KAIzB/vG,KAAKowG,UAAY,SAAS5vG,GACtB,MAAOA,GAAEyY,IAAI,SAASiY,GAKlB,MAJmB,gBAARA,GAAE,KACTA,EAAE,GAAKA,EAAE,GAAG3tB,MACX2tB,EAAE,KACHA,EAAIA,EAAE,IACHA,MAIhB3wB,KAAKqvG,EAAentG,WAEvB7C,EAAQgwG,eAAiBA,IAIzB3jD,IAAInsD,OAAO,iCAAiC,UAAU,UAAU,SAAS,eAAe,aAAa,aAAc,SAAS+uD,EAAUjvD,EAASC,GAC/I,YAMA,SAAS6tD,GAAQ+V,EAAK4sC,GAClB,OAAQ5sC,IAAKA,EAAK4sC,IAAKA,GAL3B,GAAI3qC,GAAO7W,EAAS,eAChBjrD,EAASirD,EAAS,aAClBgwB,EAAQhwB,EAAS,YAAYgwB,KAKjCj/E,GAAQ6tD,WACJlqD,KAAM,mBACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GACX1iC,EAAOo3E,WAAW,wBAAyB,SAASn7E,GAChDA,EAAO05E,KAAKjzC,GACZA,EAAOgqE,sBAGfpjD,UAAU,IAEV3pD,KAAM,gBACNmqD,QAASA,EAAQ,QAAS,MAC1BlyB,KAAM,SAAS8K,GACX1iC,EAAOo3E,WAAW,uBAAwB,SAASn7E,GAC/CA,EAAO0wG,gBAAgBjqE,EAAQ,MAGvCkqE,eAAgB,UAChBtjD,UAAU,IAEV3pD,KAAM,oBACNmqD,QAASA,EAAQ,cAAe,YAChClyB,KAAM,SAAS8K,GACX1iC,EAAOo3E,WAAW,uBAAwB,SAASn7E,GAC/CA,EAAO0wG,gBAAgBjqE,GAAS,MAGxCkqE,eAAgB,UAChBtjD,UAAU,IAEV3pD,KAAM,YACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOiiC,aAChCrb,UAAU,IAEV3pD,KAAM,kBACNmqD,QAASA,EAAQ,KAAM,UACvBlyB,KAAM,SAAS8K,GAAUA,EAAOmqE,mBAChCvjD,UAAU,IAEV3pD,KAAM,WACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GACX,GAAIwS,GAAOzmB,SAASq+E,OAAO,sBAAuB,GAC7C3mD,OAAMjR,IACPxS,EAAOqqE,SAAS73D,IAGxBoU,UAAU,IAEV3pD,KAAM,OACNmqD,QAASA,EAAQ,gBAAiB,4BAClClyB,KAAM,SAAS8K,GAAUA,EAAOsjC,QAAQo0B,YAAW,IACnD4S,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,SACNmqD,QAASA,EAAQ,4BAA6B,wCAC9ClyB,KAAM,SAAS8K,GAAUA,EAAOsjC,QAAQo0B,YAAW,IACnD4S,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,mBACNmqD,QAASA,EAAQ,KAAM,MACvBlyB,KAAM,SAAS8K,GAAUA,EAAOsjC,QAAQ81B,oBACxCkR,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,yBACNmqD,QAASA,EAAQ,SAAU,UAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOsjC,QAAQ81B,kBAAiB,IACzDkR,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,UACNmqD,QAASA,EAAQ,KAAM,yBACvBlyB,KAAM,SAAS8K,GAAUA,EAAOsjC,QAAQuzB,WACxCqT,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,YACNmqD,QAASA,EAAQ,QAAS,oBAC1BlyB,KAAM,SAAS8K,GACXA,EAAOsjC,QAAQuzB,UACf72D,EAAOsjC,QAAQyzB,OAAO/2D,EAAO1E,UAAUivE,iBAE3CL,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,YACNmqD,QAASA,EAAQ,cAAe,0BAChClyB,KAAM,SAAS8K,GAAUA,EAAOsjC,QAAQyzB,UACxCmT,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,WACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOwqE,YAChCF,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,eACNmqD,QAASA,EAAQ,eAAgB,mBACjClyB,KAAM,SAAS8K,GAAUA,EAAOyqE,gBAChCH,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,mBACNmqD,QAASA,EAAQ,QAAS,UAC1BlyB,KAAM,SAAS8K,GACPA,EAAO1E,UAAUmkC,UACjBz/B,EAAO1E,UAAUkhD,aAEjBx8C,EAAOwqE,YAEf5jD,UAAU,IAEV3pD,KAAM,uBACNmqD,QAASA,EAAQ,cAAe,gBAChClyB,KAAM,SAAS8K,GACPA,EAAO1E,UAAUmkC,UACjBz/B,EAAO1E,UAAUkhD,aAEjBx8C,EAAOyqE,gBAEf7jD,UAAU,IAEV3pD,KAAM,OACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GACX1iC,EAAOo3E,WAAW,oBAAqB,SAAS11E,GAAIA,EAAEynG,OAAOzmE,MAEjE4mB,UAAU,IAEV3pD,KAAM,YACNmqD,QAAS,SACTlyB,KAAM,SAAS8K,GAAUA,EAAOg9D,mBAChCp2C,UAAU,IAEV3pD,KAAM,gBACNmqD,QAASA,EAAQ,kBAAmB,uCACpClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAes8C,mBAC/CouB,kBAAmB,UACnB1jD,UAAU,EACVsjD,eAAgB,UAChBQ,gBAAiB,aAEjBztG,KAAM,YACNmqD,QAASA,EAAQ,YAAa,2BAC9BlyB,KAAM,SAAS8K,GAAUA,EAAO2qE,qBAChCL,kBAAmB,UACnB1jD,UAAU,EACVsjD,eAAgB,UAChBQ,gBAAiB,aAEjBztG,KAAM,WACNmqD,QAASA,EAAQ,WAAY,yBAC7BlyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAew7C,YAC/CkvB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,WACNmqD,QAASA,EAAQ,KAAM,aACvBlyB,KAAM,SAAS8K,EAAQhY,GAAQgY,EAAO4qE,WAAW5iF,EAAK6iF,QACtDP,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,cACNmqD,QAASA,EAAQ,iBAAkB,wCACnClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAeo8C,iBAC/CsuB,kBAAmB,UACnB1jD,UAAU,EACVsjD,eAAgB,UAChBQ,gBAAiB,aAEjBztG,KAAM,UACNmqD,QAASA,EAAQ,WAAY,4BAC7BlyB,KAAM,SAAS8K,GAAUA,EAAO8qE,mBAChCR,kBAAmB,UACnB1jD,UAAU,EACVsjD,eAAgB,UAChBQ,gBAAiB,aAEjBztG,KAAM,aACNmqD,QAASA,EAAQ,aAAc,2BAC/BlyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAe07C,cAC/CgvB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,aACNmqD,QAASA,EAAQ,OAAQ,eACzBlyB,KAAM,SAAS8K,EAAQhY,GAAQgY,EAAO+qE,aAAa/iF,EAAK6iF,QACxDP,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,iBACNmqD,QAASA,EAAQ,kBAAmB,qBACpClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAe08C,kBAC/CguB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,eACNmqD,QAASA,EAAQ,YAAa,eAC9BlyB,KAAM,SAAS8K,GAAUA,EAAOgrE,oBAChCV,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,oBACNmqD,QAASA,EAAQ,iBAAkB,mCACnClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAeg8C,mBAC/C0uB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,gBACNmqD,QAASA,EAAQ,gBAAiB,4BAClClyB,KAAM,SAAS8K,GAAUA,EAAOirE,qBAChCX,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,aACNmqD,QAASA,EAAQ,aAAc,2BAC/BlyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAe87C,cAC/C4uB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,WACNmqD,QAASA,EAAQ,OAAQ,eACzBlyB,KAAM,SAAS8K,EAAQhY,GAAQgY,EAAOkrE,aAAaljF,EAAK6iF,QACxDP,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,kBACNmqD,QAASA,EAAQ,mBAAoB,sBACrClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAew8C,mBAC/CkuB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,gBACNmqD,QAASA,EAAQ,aAAc,gBAC/BlyB,KAAM,SAAS8K,GAAUA,EAAOmrE,qBAChCb,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,kBACNmqD,QAASA,EAAQ,kBAAmB,8CACpClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAek8C,iBAC/CwuB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,cACNmqD,QAASA,EAAQ,gBAAiB,4BAClClyB,KAAM,SAAS8K,GAAUA,EAAOorE,mBAChCd,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,cACNmqD,QAASA,EAAQ,cAAe,eAChClyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAe47C,eAC/C8uB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,YACNmqD,QAASA,EAAQ,QAAS,gBAC1BlyB,KAAM,SAAS8K,EAAQhY,GAAQgY,EAAOqrE,cAAcrjF,EAAK6iF,QACzDP,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,iBACNmqD,QAAS,iBACTlyB,KAAM,SAAS8K,GAAUA,EAAOsrE,kBAChC1kD,UAAU,IAEV3pD,KAAM,WACNmqD,QAASA,EAAQ,KAAM,mBACvBlyB,KAAM,SAAS8K,GAAUA,EAAOurE,kBAChC3kD,UAAU,IAEV3pD,KAAM,eACNmqD,QAASA,EAAQ,WAAY,mBAC7BlyB,KAAM,SAAS8K,GAAUA,EAAOwrE,gBAChC5kD,UAAU,IAEV3pD,KAAM,eACNmqD,QAAS,eACTlyB,KAAM,SAAS8K,GAAUA,EAAOyrE,gBAChC7kD,UAAU,IAEV3pD,KAAM,SACNmqD,QAASA,EAAQ,KAAM,iBACvBlyB,KAAM,SAAS8K,GAAUA,EAAO0rE,gBAChC9kD,UAAU,IAEV3pD,KAAM,aACNmqD,QAAS,SACTlyB,KAAM,SAAS8K,GAAUA,EAAO2rE,cAChC/kD,UAAU,IAEV3pD,KAAM,WACNmqD,QAASA,EAAQ,UAAW,MAC5BlyB,KAAM,SAASl2B,GAAKA,EAAEqhE,SAASsI,SAAS,GAAI,EAAI3pE,EAAEqhE,SAAS6L,YAAYD,aACvErlB,UAAU,IAEV3pD,KAAM,aACNmqD,QAASA,EAAQ,YAAa,MAC9BlyB,KAAM,SAASl2B,GAAKA,EAAEqhE,SAASsI,SAAS,EAAG,EAAI3pE,EAAEqhE,SAAS6L,YAAYD,aACtErlB,UAAU,IAEV3pD,KAAM,kBACNmqD,QAAS,aACTlyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAeg8C,mBAC/C0uB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,gBACNmqD,QAAS,YACTlyB,KAAM,SAAS8K,GAAUA,EAAOJ,eAAek8C,iBAC/CwuB,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,kBACNmqD,QAASA,EAAQ,aAAc,oBAC/BlyB,KAAM,SAAS8K,GAAUA,EAAOmnB,SAASqiD,gBAAgBxpE,IACzD4mB,UAAU,IAEV3pD,KAAM,cACNmqD,QAASA,EAAQ,eAAgB,mBACjClyB,KAAM,SAAS8K,GAAUA,EAAOmnB,SAAS0iD,OAAO7pE,IAChD4mB,UAAU,IAEV3pD,KAAM,iBACNmqD,QAASA,EAAQ,SAAU,UAC3BlyB,KAAM,SAAS8K,GAAUA,EAAO4rE,kBAChCtB,kBAAmB,UACnBJ,eAAgB,UAChBtjD,UAAU,IAEV3pD,KAAM,mBACNmqD,QAASA,EAAQ,eAAgB,gBACjClyB,KAAM,SAAS8K,GAAUA,EAAO4rE,gBAAe,IAC/CtB,kBAAmB,UACnBJ,eAAgB,UAChBtjD,UAAU,IAEV3pD,KAAM,mBACNmqD,QAASA,EAAQ,eAAgB,gBACjClyB,KAAM,SAAS8K,GAAUA,EAAO4rE,gBAAe,GAAM,IACrDtB,kBAAmB,UACnBJ,eAAgB,UAChBtjD,UAAU,IAEV3pD,KAAM,oBACNmqD,QAASA,EAAQ,KAAM,MACvBlyB,KAAM,aACNijD,WAAW,EACXvxB,UAAU,IAEV3pD,KAAM,OACNi4B,KAAM,SAAS8K,KAEf4mB,UAAU,IAGV3pD,KAAM,MACNi4B,KAAM,SAAS8K,GACX,GAAIN,GAAQM,EAAOsmC,mBACnBtmC,GAAOikC,MAAM,MAAOvkC,GAEfM,EAAO1E,UAAUmkC,YAClBz/B,EAAOsjC,QAAQ/9C,OAAOma,GACtBM,EAAOyjC,mBAGfymC,eAAgB,SAChBI,kBAAmB,YAEnBrtG,KAAM,QACNi4B,KAAM,SAAS8K,EAAQhY,GACnBgY,EAAO6rE,aAAa7jF,IAExBkiF,eAAgB,WAEhBjtG,KAAM,aACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GAAUA,EAAO+vD,eAChCma,eAAgB,SAChBI,kBAAmB,gBAEnBrtG,KAAM,qBACNmqD,QAASA,EAAQ,eAAgB,mBACjClyB,KAAM,SAAS8K,GAAUA,EAAO8rE,sBAChC5B,eAAgB,SAChBI,kBAAmB,YAEnBrtG,KAAM,YACNmqD,QAASA,EAAQ,aAAc,iBAC/BlyB,KAAM,SAAS8K,GAAUA,EAAO+rE,aAChC7B,eAAgB,YAChBI,kBAAmB,gBAEnBrtG,KAAM,gBACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOwqD,sBAChC8f,kBAAmB,cACnBJ,eAAgB,kBAEhBjtG,KAAM,qBACNmqD,QAASA,EAAQ,eAAgB,mBACjClyB,KAAM,SAAS8K,GAAUA,EAAO6rD,sBAChCye,kBAAmB,UACnBJ,eAAgB,kBAEhBjtG,KAAM,iBACNmqD,QAASA,EAAQ,gBAAiB,gBAClClyB,KAAM,SAAS8K,GAAUA,EAAOgsE,aAAa,IAC7C9B,eAAgB,SAChBI,kBAAmB,YAEnBrtG,KAAM,mBACNmqD,QAASA,EAAQ,kBAAmB,kBACpClyB,KAAM,SAAS8K,GAAUA,EAAOgsE,cAAc,IAC9C9B,eAAgB,SAChBI,kBAAmB,YAEnBrtG,KAAM,UACNmqD,QAASA,EAAQ,SAAU,oBAC3BlyB,KAAM,SAAS8K,GACX1iC,EAAOo3E,WAAW,oBAAqB,SAAS11E,GAAIA,EAAEynG,OAAOzmE,GAAQ,QAGzE/iC,KAAM,OACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GAAUA,EAAO+B,UAEhC9kC,KAAM,OACNmqD,QAASA,EAAQ,sBAAuB,6BACxClyB,KAAM,SAAS8K,GAAUA,EAAOiC,UAEhChlC,KAAM,cACNmqD,QAASA,EAAQ,eAAgB,qBACjClyB,KAAM,SAAS8K,GAAUA,EAAOisE,eAChC/B,eAAgB,WAEhBjtG,KAAM,cACNmqD,QAASA,EAAQ,SAAU,aAC3BlyB,KAAM,SAAS8K,GAAUA,EAAO8hE,eAChCoI,eAAgB,WAEhBjtG,KAAM,gBACNmqD,QAASA,EAAQ,iBAAkB,uBACnClyB,KAAM,SAAS8K,GAAUA,EAAOksE,iBAChChC,eAAgB,WAEhBjtG,KAAM,gBACNmqD,QAASA,EAAQ,WAAY,eAC7BlyB,KAAM,SAAS8K,GAAUA,EAAO+hE,iBAChCmI,eAAgB,WAEhBjtG,KAAM,MACNmqD,QAASA,EAAQ,SAAU,8BAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOza,OAAO,UACvC+kF,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,YACNmqD,QAASA,EACL,4BACA,mDAEJlyB,KAAM,SAAS8K,GAAUA,EAAOza,OAAO,SACvC+kF,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,gBACNmqD,QAASA,EAAQ,eAAgB,MACjClyB,KAAM,SAAS8K,GACX,IAAIA,EAAO1E,UAAUmkC,UAGjB,OAAO,CAFPz/B,GAAOza,OAAO,SAKtB+kF,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,oBACNmqD,QAASA,EAAQ,gBAAiB,qBAClClyB,KAAM,SAAS8K,GAAUA,EAAOmsE,qBAChC7B,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,kBACNmqD,QAASA,EAAQ,aAAc,UAC/BlyB,KAAM,SAAS8K,GAAUA,EAAOosE,mBAChC9B,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,iBACNmqD,QAASA,EAAQ,iBAAkB,oCACnClyB,KAAM,SAAS8K,GAAUA,EAAOqsE,kBAChC/B,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,kBACNmqD,QAASA,EAAQ,cAAe,cAChClyB,KAAM,SAAS8K,GAAUA,EAAOssE,mBAChChC,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,UACNmqD,QAASA,EAAQ,YAAa,aAC9BlyB,KAAM,SAAS8K,GAAUA,EAAOusE,gBAChCjC,kBAAmB,UACnBJ,eAAgB,kBAEhBjtG,KAAM,SACNmqD,QAASA,EAAQ,MAAO,OACxBlyB,KAAM,SAAS8K,GAAUA,EAAO3V,UAChCigF,kBAAmB,UACnBJ,eAAgB,kBAEhBjtG,KAAM,eACNmqD,QAASA,EAAQ,SAAU,UAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOusE,gBAChCjC,kBAAmB,cACnBJ,eAAgB,kBAEhBjtG,KAAM,cACNmqD,QAASA,EAAQ,SAAU,UAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOwsE,eAChClC,kBAAmB,cACnBJ,eAAgB,kBAEhBjtG,KAAM,eACNi4B,KAAM,SAAS8K,EAAQ74B,GAAO64B,EAAOorB,OAAOjkD,IAC5CmjG,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,aACNi4B,KAAM,SAAS8K,EAAQhY,GACnBgY,EAAOorB,OAAOgU,EAAKxB,aAAa51C,EAAKqD,MAAS,GAAIrD,EAAK6iF,OAAS,KAEpEP,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,YACNmqD,QAASA,EAAQ,KAAM,UACvBlyB,KAAM,SAAS8K,GAAUA,EAAOysE,aAChCnC,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,mBACNmqD,QAASA,EAAQ,SAAU,UAC3BlyB,KAAM,SAAS8K,GAAUA,EAAO0sE,oBAChCpC,kBAAmB,SAAStqE,GAASA,EAAO2sE,oBAAoB,IAChEzC,eAAgB,WAEhBjtG,KAAM,cACNmqD,QAASA,EAAQ,SAAU,UAC3BlyB,KAAM,SAAS8K,GAAUA,EAAOi0C,eAChCq2B,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,cACNmqD,QAASA,EAAQ,eAAgB,gBACjClyB,KAAM,SAAS8K,GAAUA,EAAO5P,eAChCk6E,kBAAmB,UACnBJ,eAAgB,WAEhBjtG,KAAM,eACNmqD,QAASA,EAAQ,eAAgB,mBACjClyB,KAAM,SAAS8K,GACX,GAAIN,GAAQM,EAAO1E,UAAUqoC,UAE7BjkC,GAAMgE,MAAMsiC,OAAStmC,EAAMiE,IAAIqiC,OAAS,EACxCtmC,EAAMiE,IAAIoiC,MACV/lC,EAAO1E,UAAUsoC,SAASlkC,GAAO,IAErC4qE,kBAAmB,UACnBJ,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,YACNmqD,QAASA,EAAQ,KAAM,MACvBlyB,KAAM,SAAS8K,GASX,IAAK,GARDi7C,GAAcj7C,EAAO1E,UAAU2/C,cAC/Brb,EAAiBqb,EAAcj7C,EAAO1E,UAAUu/C,mBAAqB76C,EAAO1E,UAAUs/C,qBACtF/a,EAAeob,EAAcj7C,EAAO1E,UAAUs/C,qBAAuB56C,EAAO1E,UAAUu/C,mBACtF+xB,EAAkB5sE,EAAOsjC,QAAQ/U,IAAIyoB,QAAQpX,EAAemG,KAAKnqE,OACjEixG,EAAe7sE,EAAOsjC,QAAQ/U,IAAIwgB,aAAa/uC,EAAO1E,UAAUqoC,YAChEmpC,EAAgBD,EAAap7F,QAAQ,QAAS,KAAK7V,OACnDmxG,EAAa/sE,EAAOsjC,QAAQ/U,IAAIyoB,QAAQpX,EAAemG,KAElDtnE,EAAImhE,EAAemG,IAAM,EAAGtnE,GAAKohE,EAAakG,IAAM,EAAGtnE,IAAK,CACjE,GAAIuuG,GAAU5tC,EAAKvB,eAAeuB,EAAKtB,gBAAgB99B,EAAOsjC,QAAQ/U,IAAIyoB,QAAQv4E,IAC3D,KAAnBuuG,EAAQpxG,SACRoxG,EAAU,IAAMA,GAEpBD,GAAcC,EAGdntC,EAAakG,IAAM,EAAK/lC,EAAOsjC,QAAQ/U,IAAIub,YAAc,IACzDijC,GAAc/sE,EAAOsjC,QAAQ/U,IAAI2gC,uBAGrClvD,EAAOyjC,iBACPzjC,EAAOsjC,QAAQ/U,IAAI98C,QAAQ,GAAI8mE,GAAM3Y,EAAemG,IAAK,EAAGlG,EAAakG,IAAM,EAAG,GAAIgnC,GAElFD,EAAgB,GAChB9sE,EAAO1E,UAAU0/C,aAAapb,EAAemG,IAAKnG,EAAeoG,QACjEhmC,EAAO1E,UAAUuvC,SAASjL,EAAemG,IAAKnG,EAAeoG,OAAS8mC,KAEtEF,EAAkB5sE,EAAOsjC,QAAQ/U,IAAIyoB,QAAQpX,EAAemG,KAAKnqE,OAASgxG,EAAmBA,EAAkB,EAAKA,EACpH5sE,EAAO1E,UAAU0/C,aAAapb,EAAemG,IAAK6mC,KAG1DtC,kBAAmB,UACnB1jD,UAAU,IAEV3pD,KAAM,kBACNmqD,QAASA,EAAQ,KAAM,MACvBlyB,KAAM,SAAS8K,GACX,GAAI04C,GAAS14C,EAAOsjC,QAAQ/U,IAAIub,YAAc,EAC1C0mB,EAASxwD,EAAOsjC,QAAQ/U,IAAIyoB,QAAQ0B,GAAQ98E,OAC5CsjF,EAASl/C,EAAO1E,UAAU+jD,UAAUH,OACpC+tB,IACA/tB,GAAOtjF,OAAS,IAChBsjF,GAAUl/C,EAAO1E,UAAUqoC,YAG/B,KAAK,GAAIllE,GAAI,EAAGA,EAAIygF,EAAOtjF,OAAQ6C,IAC3BA,GAAMygF,EAAOtjF,OAAS,IAChBsjF,EAAOzgF,GAAGklC,IAAIoiC,MAAQ2S,GAAUwG,EAAOzgF,GAAGklC,IAAIqiC,SAAWwqB,GAC3Dyc,EAAUr6F,KAAK,GAAI2lE,GAAM2G,EAAOzgF,GAAGklC,IAAIoiC,IAAKmZ,EAAOzgF,GAAGklC,IAAIqiC,OAAQ0S,EAAQ8X,KAIxE,IAAN/xF,EAC8B,IAAxBygF,EAAOzgF,GAAGilC,MAAMqiC,KAAwC,IAA3BmZ,EAAOzgF,GAAGilC,MAAMsiC,QAC/CinC,EAAUr6F,KAAK,GAAI2lE,GAAM,EAAG,EAAG2G,EAAOzgF,GAAGilC,MAAMqiC,IAAKmZ,EAAOzgF,GAAGilC,MAAMsiC,SAGxEinC,EAAUr6F,KAAK,GAAI2lE,GAAM2G,EAAOzgF,EAAE,GAAGklC,IAAIoiC,IAAKmZ,EAAOzgF,EAAE,GAAGklC,IAAIqiC,OAAQkZ,EAAOzgF,GAAGilC,MAAMqiC,IAAKmZ,EAAOzgF,GAAGilC,MAAMsiC,QAInHhmC,GAAOktE,sBACPltE,EAAOyjC,gBAEP,KAAI,GAAIhlE,GAAI,EAAGA,EAAIwuG,EAAUrxG,OAAQ6C,IACjCuhC,EAAO1E,UAAU2P,SAASgiE,EAAUxuG,IAAI,IAGhDmoD,UAAU,EACVsjD,eAAgB,WAKpBvkD,IAAInsD,OAAO,cAAc,UAAU,UAAU,SAAS,yBAAyB,cAAc,cAAc,eAAe,oBAAoB,yBAAyB,0BAA0B,yBAAyB,0BAA0B,mBAAmB,aAAa,YAAY,wBAAwB,+BAA+B,gCAAgC,aAAa,sBAAuB,SAAS+uD,EAAUjvD,EAASC,GACvb,YAEAgvD,GAAS,uBAET,IAAImJ,GAAMnJ,EAAS,aACfntB,EAAMmtB,EAAS,aACf6W,EAAO7W,EAAS,cAChB4Q,EAAY5Q,EAAS,mBACrBgX,EAAYhX,EAAS,wBAAwBgX,UAC7CwV,EAAexsB,EAAS,yBAAyBwsB,aACjDwB,EAAchuB,EAAS,wBAAwBguB,YAC/CY,EAAa5uB,EAAS,yBAAyB4uB,WAC/CgjB,EAAc5xC,EAAS,kBAAkB4xC,YACzCsM,EAASl+C,EAAS,YAAYk+C,OAC9BluB,EAAQhwB,EAAS,WAAWgwB,MAC5B1H,EAAetoB,EAAS,uBAAuBsoB,aAC/Cy4B,EAAiB/gD,EAAS,8BAA8B+gD,eACxD6D,EAAkB5kD,EAAS,+BAA+BpB,SAC1D7pD,EAASirD,EAAS,YAClBi7B,EAAgBj7B,EAAS,oBAAoBi7B,cAC7C4pB,EAAS,SAAS/sC,EAAUiD,GAC5B,GAAIhpE,GAAY+lE,EAASgtC,qBACzB3zG,MAAKY,UAAYA,EACjBZ,KAAK2mE,SAAWA,EAEhB3mE,KAAKytD,SAAW,GAAImiD,GAAenwC,EAAUxB,MAAQ,MAAQ,MAAOw1C,GACpEzzG,KAAKgrE,UAAa,GAAInF,GAAUc,EAASitC,uBAAwB5zG,MACjEA,KAAK2mE,SAASra,SAAWtsD,KAAKgrE,UAAUZ,aACxCpqE,KAAK6zG,WAAa,GAAIp2B,GAAWz9E,MACjCA,KAAK8zG,cAAgB,GAAIz4B,GAAar7E,MACtC,GAAI68E,GAAY78E,MAEhBA,KAAK+sD,gBAAkB,EACvB/sD,KAAK+zG,SAAU,GAAIhH,IAASjqG,KACxBgtB,MAAM,IAGV9vB,KAAKg0G,gBAAkBh0G,KAAKg0G,gBAAgBpxE,KAAK5iC,MACjDA,KAAKytD,SAASI,GAAG,OAAQ7tD,KAAKg0G,iBAE9Bh0G,KAAKi0G,0BAELj0G,KAAKk0G,iBAAmBxuC,EAAKH,YAAY,WACrCvlE,KAAK2wE,QAAQ,YACT3wE,KAAK4pE,SAAW5pE,KAAK4pE,QAAQu3B,aAC7BnhG,KAAK4pE,QAAQu3B,YAAY1I,iBAC/B71D,KAAK5iC,OAEPA,KAAK6tD,GAAG,SAAU,SAASmpB,EAAGvR,GAC1BA,EAAMyuC,iBAAiB7uC,SAAS,MAGpCrlE,KAAKm0G,WAAWvqC,GAAW,GAAI62B,GAAY,KAC3C78F,EAAOu1E,aAAan5E,MACpB4D,EAAO+sE,QAAQ,SAAU3wE,QAG7B,WAEIg4D,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAKi0G,wBAA0B,WAG3Bj0G,KAAKo0G,cACLp0G,KAAKytD,SAASI,GAAG,OAAQ7tD,KAAKq0G,eAAezxE,KAAK5iC,OAAO,GACzDA,KAAKytD,SAASI,GAAG,YAAa7tD,KAAKs0G,aAAa1xE,KAAK5iC,OAAO,GAE5DA,KAAKu0G,cAAgB7uC,EAAKH,YAAYvlE,KAAKs0G,aAAa1xE,KAAK5iC,OAE7DA,KAAK6tD,GAAG,SAAU,WACd7tD,KAAKw0G,OAASx0G,KAAKq0G,iBACnBr0G,KAAKw0G,MAAMC,YAAa,GAC1B7xE,KAAK5iC,OAAO,GAEdA,KAAK6tD,GAAG,kBAAmB,WACvB7tD,KAAKw0G,OAASx0G,KAAKq0G,iBACnBr0G,KAAKw0G,MAAME,kBAAmB,GAChC9xE,KAAK5iC,OAAO,IAGlBA,KAAKw0G,MAAQ,KACbx0G,KAAK20G,UACL30G,KAAKq0G,eAAiB,SAASO,GAC3B,GAAI50G,KAAKw0G,MAAO,CACZ,IAAKI,GAAe50G,KAAKw0G,MAAMh8C,QAC3B,MACJx4D,MAAK20G,OAAS30G,KAAKw0G,MAElBI,IACD50G,KAAK60G,gBAAkB,KACvBD,MAGJ50G,KAAKu0G,cAAclvC,WACnBrlE,KAAKw0G,OACDh8C,QAASo8C,EAAYp8C,YACrBlqC,KAAMsmF,EAAYtmF,KAClBiX,UAAWvlC,KAAK2mE,SAASphC,WAEzBvlC,KAAKw0G,MAAMh8C,QAAQj1D,UAA8CqM,KAAtC5P,KAAKw0G,MAAMh8C,QAAQg4C,gBAC9CxwG,KAAK+sD,mBAGb/sD,KAAKs0G,aAAe,SAAShvG,GACzB,GAAItF,KAAKw0G,MAAO,CACZ,GAAIlvG,IAAuB,IAAlBA,EAAE4uD,YACP,MAAOl0D,MAAKw0G,MAAQ,IACxBx0G,MAAK2wE,QAAQ,qBACb,IAAInY,GAAUx4D,KAAKw0G,MAAMh8C,OACrBA,GAAQj1D,MAAQvD,KAAK+sD,gBAAkB,GACvC/sD,KAAK+sD,iBACT,IAAIyjD,GAAiBh4C,GAAWA,EAAQg4C,cACxC,IAAIA,EAAgB,CAChB,OAAQA,GACJ,IAAK,iBACDA,EAAiB,SACrB,KAAK,SACDxwG,KAAK2mE,SAASkH,qBAAqB,KAAM,GACzC,MACJ,KAAK,UACL,IAAK,SACD7tE,KAAK2mE,SAASkH,sBACd,MACJ,KAAK,gBACD,GAAI7nC,GAAQhmC,KAAK4hC,UAAUqoC,WACvBrmE,EAAS5D,KAAK2mE,SAAS6L,aACvBxsC,EAAMgE,MAAMqiC,KAAOzoE,EAAOm8E,SAAW/5C,EAAMiE,IAAIoiC,KAAOzoE,EAAOk8E,WAC7D9/E,KAAK2mE,SAASmuC,wBAAwB90G,KAAK4hC,UAAUqK,OAAQjsC,KAAK4hC,UAAU6+C,MAMlE,WAAlB+vB,GACAxwG,KAAK2mE,SAASouC,iBAAiB/0G,KAAKw0G,MAAMjvE,WAGlDvlC,KAAK20G,OAAS30G,KAAKw0G,MACnBx0G,KAAKw0G,MAAQ,OAGrBx0G,KAAKg1G,oBAAsB,YAAa,MAAO,gBAC/Ch1G,KAAKg0G,gBAAkB,SAAS1uG,GAC5B,GAAKtF,KAAKi1G,iBAAV,CAGA,GAAI5lE,GAAOrvC,KAAK20G,OACZO,EAAoBl1G,KAAKg1G,mBACzBG,EAAc9lE,EAAKmpB,SAAYlzD,EAAEkzD,QAAQj1D,MAAQ8rC,EAAKmpB,QAAQj1D,IAClE,IAAsB,gBAAlB+B,EAAEkzD,QAAQj1D,KAAwB,CAClC,GAAIouB,GAAOrsB,EAAEgpB,SACiB1e,KAA1B5P,KAAKo1G,mBACLp1G,KAAKo1G,kBAAmB,GAE5BD,EAAcA,GACPn1G,KAAKo1G,oBACH,KAAKvmG,KAAK8iB,IAAS,KAAK9iB,KAAKwgC,EAAK/gB,OAE3CtuB,KAAKo1G,kBAAmB,MAExBD,GAAcA,IACwC,IAA/CD,EAAkBlzG,QAAQsD,EAAEkzD,QAAQj1D,KAIlB,WAAzBvD,KAAKi1G,kBACFtoG,KAAK6nD,MAAQx0D,KAAKq1G,kBAAoB,MAEzCF,GAAc,GAGdA,EACAn1G,KAAK4pE,QAAQi5B,iBAAkB,GACqB,IAA/CqS,EAAkBlzG,QAAQsD,EAAEkzD,QAAQj1D,QACzCvD,KAAKq1G,kBAAoB1oG,KAAK6nD,SAEtCx0D,KAAKg+E,mBAAqB,SAASs3B,EAAiB7sC,GAChD,GAAI6sC,GAA8C,gBAApBA,GAA8B,CACxDt1G,KAAKu1G,cAAgBD,CACrB,IAAI7vC,GAAQzlE,IACZ4D,GAAOo3E,YAAY,aAAcs6B,GAAkB,SAASz1G,GACpD4lE,EAAM8vC,eAAiBD,GACvB7vC,EAAMouC,WAAW71B,mBAAmBn+E,GAAUA,EAAO21G,SACzD/sC,GAAMA,UAGVzoE,MAAKu1G,cAAgB,KACrBv1G,KAAK6zG,WAAW71B,mBAAmBs3B,GACnC7sC,GAAMA,KAGdzoE,KAAKo+E,mBAAqB,WACtB,MAAOp+E,MAAK6zG,WAAWz1B,sBAE3Bp+E,KAAKm0G,WAAa,SAASvqC,GACvB,GAAI5pE,KAAK4pE,SAAWA,EAApB,CAEI5pE,KAAKw0G,OAAOx0G,KAAKs0G,eACrBt0G,KAAKw0G,QAEL,IAAIiB,GAAaz1G,KAAK4pE,OACtB,IAAI6rC,EAAY,CACZz1G,KAAK4pE,QAAQqO,IAAI,SAAUj4E,KAAK01G,mBAChC11G,KAAK4pE,QAAQqO,IAAI,aAAcj4E,KAAKklG,eACpCllG,KAAK4pE,QAAQqO,IAAI,kBAAmBj4E,KAAK21G,oBACzC31G,KAAK4pE,QAAQqO,IAAI,gBAAiBj4E,KAAK41G,kBACvC51G,KAAK4pE,QAAQqO,IAAI,kBAAmBj4E,KAAK61G,oBACzC71G,KAAK4pE,QAAQqO,IAAI,iBAAkBj4E,KAAK81G,mBACxC91G,KAAK4pE,QAAQqO,IAAI,aAAcj4E,KAAK+1G,eACpC/1G,KAAK4pE,QAAQqO,IAAI,oBAAqBj4E,KAAKg2G,sBAC3Ch2G,KAAK4pE,QAAQqO,IAAI,mBAAoBj4E,KAAKi2G,qBAC1Cj2G,KAAK4pE,QAAQqO,IAAI,mBAAoBj4E,KAAKk2G,qBAC1Cl2G,KAAK4pE,QAAQqO,IAAI,mBAAoBj4E,KAAKm2G,qBAC1Cn2G,KAAK4pE,QAAQqO,IAAI,kBAAmBj4E,KAAKo2G,iBACzCp2G,KAAK4pE,QAAQqO,IAAI,kBAAmBj4E,KAAKq2G,oBACzCr2G,KAAK4pE,QAAQqO,IAAI,mBAAoBj4E,KAAKs2G,oBAE1C,IAAI10E,GAAY5hC,KAAK4pE,QAAQ1jC,cAC7BtE,GAAUq2C,IAAI,eAAgBj4E,KAAKo2G,iBACnCx0E,EAAUq2C,IAAI,kBAAmBj4E,KAAKu2G,oBAG1Cv2G,KAAK4pE,QAAUA,EACXA,GACA5pE,KAAK01G,kBAAoB11G,KAAKw2G,iBAAiB5zE,KAAK5iC,MACpD4pE,EAAQ/b,GAAG,SAAU7tD,KAAK01G,mBAC1B11G,KAAK2mE,SAASwtC,WAAWvqC,GAEzB5pE,KAAKklG,cAAgBllG,KAAKy2G,aAAa7zE,KAAK5iC,MAC5C4pE,EAAQ/b,GAAG,aAAc7tD,KAAKklG,eAE9BllG,KAAK21G,mBAAqB31G,KAAK02G,kBAAkB9zE,KAAK5iC,MACtD4pE,EAAQ/b,GAAG,kBAAmB7tD,KAAK21G,oBAEnC31G,KAAK41G,iBAAmB51G,KAAK2mE,SAASgwC,gBAAgB/zE,KAAK5iC,KAAK2mE,UAChEiD,EAAQ/b,GAAG,gBAAiB7tD,KAAK41G,kBAEjC51G,KAAK61G,mBAAqB71G,KAAK42G,kBAAkBh0E,KAAK5iC,MACtD4pE,EAAQ/b,GAAG,kBAAmB7tD,KAAK61G,oBAEnC71G,KAAK81G,kBAAoB91G,KAAK62G,iBAAiBj0E,KAAK5iC,MACpD4pE,EAAQ/b,GAAG,iBAAkB7tD,KAAK81G,mBAElC91G,KAAK+1G,cAAgB/1G,KAAKihG,aAAar+D,KAAK5iC,MAC5C4pE,EAAQ/b,GAAG,aAAc7tD,KAAK+1G,eAE9B/1G,KAAKg2G,qBAAuBh2G,KAAK82G,oBAAoBl0E,KAAK5iC,MAC1DA,KAAK4pE,QAAQ/b,GAAG,oBAAqB7tD,KAAKg2G,sBAE1Ch2G,KAAKi2G,oBAAsBj2G,KAAK+2G,mBAAmBn0E,KAAK5iC,MACxDA,KAAK4pE,QAAQ/b,GAAG,mBAAoB7tD,KAAKi2G,qBAEzCj2G,KAAKk2G,oBAAsBl2G,KAAKg3G,mBAAmBp0E,KAAK5iC,MACxDA,KAAK4pE,QAAQ/b,GAAG,mBAAoB7tD,KAAKk2G,qBAEzCl2G,KAAKm2G,oBAAsBn2G,KAAKi3G,mBAAmBr0E,KAAK5iC,MACxDA,KAAK4pE,QAAQ/b,GAAG,mBAAoB7tD,KAAKm2G,qBAEzCn2G,KAAKo2G,gBAAkBp2G,KAAKk3G,eAAet0E,KAAK5iC,MAChDA,KAAK4pE,QAAQ/b,GAAG,kBAAmB7tD,KAAKo2G,iBAExCp2G,KAAKq2G,mBAAqBr2G,KAAKm3G,kBAAkBv0E,KAAK5iC,MACtDA,KAAK4pE,QAAQ/b,GAAG,kBAAmB7tD,KAAKq2G,oBAExCr2G,KAAKs2G,oBAAsBt2G,KAAKo3G,mBAAmBx0E,KAAK5iC,MACxDA,KAAK4pE,QAAQ/b,GAAG,mBAAoB7tD,KAAKs2G,qBAEzCt2G,KAAK4hC,UAAYgoC,EAAQ1jC,eACzBlmC,KAAK4hC,UAAUisB,GAAG,eAAgB7tD,KAAKo2G,iBAEvCp2G,KAAKu2G,mBAAqBv2G,KAAKq3G,kBAAkBz0E,KAAK5iC,MACtDA,KAAK4hC,UAAUisB,GAAG,kBAAmB7tD,KAAKu2G,oBAE1Cv2G,KAAKy2G,eAELz2G,KAAK+sD,iBAAmB,EACxB/sD,KAAKk3G,iBACLl3G,KAAK+sD,iBAAmB,EAExB/sD,KAAKm3G,oBACLn3G,KAAKo3G,qBACLp3G,KAAKq3G,oBACLr3G,KAAK82G,sBACL92G,KAAK+2G,qBACL/2G,KAAKg3G,qBACLh3G,KAAKi3G,qBACLj3G,KAAK4pE,QAAQ8+B,kBAAoB1oG,KAAK2mE,SAASiiC,kBAC/C5oG,KAAK2mE,SAAS2wC,eAEdt3G,KAAK4hC,UAAY,KACjB5hC,KAAK2mE,SAASwtC,WAAWvqC,IAG7B5pE,KAAK2wE,QAAQ,iBACT/G,QAASA,EACT6rC,WAAYA,IAGhBz1G,KAAKw0G,MAAQ,KAEbiB,GAAcA,EAAW9kC,QAAQ,gBAAiB4mC,UAAWv3G,OAC7D4pE,GAAWA,EAAQ+G,QAAQ,gBAAiBrqC,OAAQtmC,SAExDA,KAAKqtD,WAAa,WACd,MAAOrtD,MAAK4pE,SAEhB5pE,KAAKg/C,SAAW,SAASnvB,EAAK2nF,GAU1B,MATAx3G,MAAK4pE,QAAQ/U,IAAI7V,SAASnvB,GAErB2nF,EAEiB,GAAbA,EACLx3G,KAAKoxG,mBACc,GAAdoG,GACLx3G,KAAKixG,oBAJLjxG,KAAKuoE,YAMF14C,GAEX7vB,KAAKsjC,SAAW,WACZ,MAAOtjC,MAAK4pE,QAAQtmC,YAExBtjC,KAAKkmC,aAAe,WAChB,MAAOlmC,MAAK4hC,WAEhB5hC,KAAK8tD,OAAS,SAASy4C,GACnBvmG,KAAK2mE,SAAS8wC,SAASlR,IAE3BvmG,KAAKgtD,SAAW,SAASZ,EAAOqc,GAC5BzoE,KAAK2mE,SAAS3Z,SAASZ,EAAOqc,IAElCzoE,KAAK03G,SAAW,WACZ,MAAO13G,MAAK2mE,SAAS+wC,YAEzB13G,KAAKytE,SAAW,SAAS58B,GACrB7wC,KAAK2mE,SAAS8G,SAAS58B,IAE3B7wC,KAAKquE,WAAa,SAASx9B,GACvB7wC,KAAK2mE,SAAS0H,WAAWx9B,IAE7B7wC,KAAK23G,YAAc,WACf,MAAO33G,MAAK24E,UAAU,aACnBj3C,EAAI00B,cAAcp2D,KAAKY,UAAW,aAEzCZ,KAAKotD,YAAc,SAAS46C,GACxBhoG,KAAKu4E,UAAU,WAAYyvB,IAG/BhoG,KAAK43G,mBAAqB,WAMtB,GALI53G,KAAK4pE,QAAQiuC,oBACb73G,KAAK4pE,QAAQoK,aAAah0E,KAAK4pE,QAAQiuC,mBACvC73G,KAAK4pE,QAAQiuC,kBAAoB,OAGjC73G,KAAK83G,kBAAT,CAGA,GAAI7vG,GAAOjI,IACXA,MAAK83G,mBAAoB,EACzB9vG,WAAW,WACPC,EAAK6vG,mBAAoB,CACzB,IAAIluC,GAAU3hE,EAAK2hE,OACnB,IAAKA,GAAYA,EAAQu3B,YAAzB,CACA,GAAIvnF,GAAMgwD,EAAQkjB,oBAAoB7kF,EAAKgkF,oBAC3C,IAAIryE,EACA,GAAIosB,GAAQ,GAAI64C,GAAMjlE,EAAIyyD,IAAKzyD,EAAI0yD,OAAQ1yD,EAAIyyD,IAAKzyD,EAAI0yD,OAAS,OAC9D,IAAI1C,EAAQ6jB,MAAMsqB,YACrB,GAAI/xE,GAAQ4jC,EAAQ6jB,MAAMsqB,YAAY9vG,EAAK2hE,QAE3C5jC,KACA4jC,EAAQiuC,kBAAoBjuC,EAAQ4J,UAAUxtC,EAAO,cAAe,WACzE,MAEPhmC,KAAKg4G,eAAiB,WAClB,IAAIh4G,KAAKi4G,qBAAT,CAEA,GAAIhwG,GAAOjI,IACXA,MAAKi4G,sBAAuB,EAC5BjwG,WAAW,WACPC,EAAKgwG,sBAAuB,CAE5B,IAAIruC,GAAU3hE,EAAK2hE,OACnB,IAAKA,GAAYA,EAAQu3B,YAAzB,CAEA,GAAIvnF,GAAM3R,EAAKgkF,oBACX2B,EAAW,GAAI9D,GAAc7hF,EAAK2hE,QAAShwD,EAAIyyD,IAAKzyD,EAAI0yD,QACxD10B,EAAQg2C,EAASlD,iBAErB,KAAK9yC,IAAU,0BAA0B/oC,KAAK+oC,EAAMl/B,MAGhD,MAFAkxD,GAAQoK,aAAapK,EAAQsuC,oBAC7BtuC,EAAQsuC,cAAgB,KAI5B,KAAuC,GAAnCtgE,EAAMl/B,KAAK1W,QAAQ,cACnB41C,EAAQg2C,EAASpD,eADrB,CAMA,GAAIv1B,GAAMrd,EAAMnuC,MACZ40F,EAAQ,EACR8Z,EAAYvqB,EAASrD,cAEzB,IAAuB,KAAnB4tB,EAAU1uG,MACV,GACI0uG,EAAYvgE,GACZA,EAAQg2C,EAASpD,gBAEJ5yC,EAAMnuC,QAAUwrD,IAA2C,IAApCrd,EAAMl/B,KAAK1W,QAAQ,cAC3B,MAApBm2G,EAAU1uG,MACV40F,IAC2B,OAApB8Z,EAAU1uG,OACjB40F,WAIHzmD,GAASymD,GAAS,OACxB,CACH,GACIzmD,EAAQugE,EACRA,EAAYvqB,EAASrD,eAEjB3yC,GAASA,EAAMnuC,QAAUwrD,IAA2C,IAApCrd,EAAMl/B,KAAK1W,QAAQ,cAC3B,MAApBm2G,EAAU1uG,MACV40F,IAC2B,OAApB8Z,EAAU1uG,OACjB40F,WAGH8Z,GAAa9Z,GAAS,EAC/BzQ,GAASpD,cAGb,IAAK5yC,EAGD,MAFAgyB,GAAQoK,aAAapK,EAAQsuC,oBAC7BtuC,EAAQsuC,cAAgB,KAI5B,IAAI7rC,GAAMuhB,EAASjD,qBACfre,EAASshB,EAAShD,wBAClB5kD,EAAQ,GAAI64C,GAAMxS,EAAKC,EAAQD,EAAKC,EAAO10B,EAAMnuC,MAAMvH,QACvDk2G,EAAMxuC,EAAQi3B,aAAaj3B,EAAQsuC,cACnCtuC,GAAQsuC,mBAAwBtoG,IAAPwoG,GAAsD,IAAlCpyE,EAAMm5C,aAAai5B,EAAIpyE,SACpE4jC,EAAQoK,aAAapK,EAAQsuC,eAC7BtuC,EAAQsuC,cAAgB,MAGxBlyE,IAAU4jC,EAAQsuC,gBAClBtuC,EAAQsuC,cAAgBtuC,EAAQ4J,UAAUxtC,EAAO,cAAe,YACrE,MAEPhmC,KAAKwjC,MAAQ,WACT,GAAIiiC,GAAQzlE,IACZgI,YAAW,WACPy9D,EAAMuF,UAAUxnC,UAEpBxjC,KAAKgrE,UAAUxnC,SAEnBxjC,KAAKmnE,UAAY,WACb,MAAOnnE,MAAKgrE,UAAU7D,aAE1BnnE,KAAKqjC,KAAO,WACRrjC,KAAKgrE,UAAU3nC,QAEnBrjC,KAAKsnE,QAAU,SAAShiE,GAChBtF,KAAKq4G,aAETr4G,KAAKq4G,YAAa,EAClBr4G,KAAK2mE,SAAS2xC,aACdt4G,KAAK2mE,SAAS4xC,iBACdv4G,KAAKuqE,MAAM,QAASjlE,KAExBtF,KAAKqnE,OAAS,SAAS/hE,GACdtF,KAAKq4G,aAEVr4G,KAAKq4G,YAAa,EAClBr4G,KAAK2mE,SAAS6xC,aACdx4G,KAAK2mE,SAAS8xC,gBACdz4G,KAAKuqE,MAAM,OAAQjlE,KAGvBtF,KAAK04G,cAAgB,WACjB14G,KAAK2mE,SAASgyC,gBAElB34G,KAAKw2G,iBAAmB,SAAS7hF,GAC7B,GAAI7E,GAAO9vB,KAAK4pE,QAAQgzB,aACpB7c,EAAWprD,EAAMqV,MAAMqiC,KAAO13C,EAAMsV,IAAIoiC,IAAM13C,EAAMsV,IAAIoiC,IAAM90D,EAAAA,CAClEvX,MAAK2mE,SAASiyC,YAAYjkF,EAAMqV,MAAMqiC,IAAK0T,EAASjwD,GAEpD9vB,KAAK2wE,QAAQ,SAAUh8C,GACvB30B,KAAK04G,gBACL14G,KAAK64G,8BAGT74G,KAAK02G,kBAAoB,SAASpxG,GAC9B,GAAI0/E,GAAO1/E,EAAE7B,IACbzD,MAAK2mE,SAASiyC,YAAY5zB,EAAKt6C,MAAOs6C,EAAKnnD,OAI/C79B,KAAKm3G,kBAAoB,WACrBn3G,KAAK2mE,SAASmyC,UAAU94G,KAAK4pE,QAAQi8B,iBAGzC7lG,KAAKo3G,mBAAqB,WACtBp3G,KAAK2mE,SAASoyC,UAAU/4G,KAAK4pE,QAAQo8B,kBAEzChmG,KAAKk3G,eAAiB,WAClBl3G,KAAK04G,gBAEA14G,KAAK+sD,kBACNnpD,EAAOvC,KAAK,kEACR,4CACA,iEAEJrB,KAAK2mE,SAASkH,wBAGlB7tE,KAAK43G,qBACL53G,KAAKg4G,iBACLh4G,KAAK64G,6BACL74G,KAAK2wE,QAAQ,oBAGjB3wE,KAAK64G,2BAA6B,WAC9B,GAEIpsE,GAFAm9B,EAAU5pE,KAAKqtD,YAUnB,IAPIrtD,KAAKg5G,uBACwB,QAAxBh5G,KAAKi5G,iBAA8Bj5G,KAAK4hC,UAAU+sC,gBACnDliC,EAAYzsC,KAAKisF,sBACjBjsF,KAAK2mE,SAASuyC,WAA0C,IAA7Bl5G,KAAK4pE,QAAQwG,aAAuBpwE,KAAK2mE,SAASwyC,UAAY,IACzF1sE,GAAY,IAGhBm9B,EAAQwvC,uBAAyB3sE,EACjCm9B,EAAQoK,aAAapK,EAAQwvC,qBAAqB/4G,IAClDupE,EAAQwvC,qBAAuB,SAC5B,KAAKxvC,EAAQwvC,sBAAwB3sE,EAAW,CACnD,GAAIzG,GAAQ,GAAI64C,GAAMpyC,EAAU4/B,IAAK5/B,EAAU6/B,OAAQ7/B,EAAU4/B,IAAK90D,EAAAA,EACtEyuB,GAAM3lC,GAAKupE,EAAQ4J,UAAUxtC,EAAO,kBAAmB,cACvD4jC,EAAQwvC,qBAAuBpzE,MACxByG,KACPm9B,EAAQwvC,qBAAqBpvE,MAAMqiC,IAAM5/B,EAAU4/B,IACnDzC,EAAQwvC,qBAAqBnvE,IAAIoiC,IAAM5/B,EAAU4/B,IACjDzC,EAAQwvC,qBAAqBpvE,MAAMsiC,OAAS7/B,EAAU6/B,OACtD1C,EAAQ+G,QAAQ,sBAIxB3wE,KAAKq3G,kBAAoB,SAAS/xG,GAC9B,GAAIskE,GAAU5pE,KAAK4pE,OAOnB,IALIA,EAAQyvC,kBACRzvC,EAAQoK,aAAapK,EAAQyvC,kBAEjCzvC,EAAQyvC,iBAAmB,KAEtBr5G,KAAK4hC,UAAUmkC,UAKhB/lE,KAAK64G,iCALsB,CAC3B,GAAI7yE,GAAQhmC,KAAK4hC,UAAUqoC,WACvBp5B,EAAQ7wC,KAAKyzE,mBACjB7J,GAAQyvC,iBAAmBzvC,EAAQ4J,UAAUxtC,EAAO,gBAAiB6K,GAKzE,GAAI2Z,GAAKxqD,KAAKs5G,wBAA0Bt5G,KAAKu5G,8BAC7Cv5G,MAAK4pE,QAAQn9B,UAAU+d,GAEvBxqD,KAAK2wE,QAAQ,oBAGjB3wE,KAAKu5G,6BAA+B,WAChC,GAAI3vC,GAAU5pE,KAAK4pE,QAEfhoC,EAAY5hC,KAAK4sE,mBACrB,KAAIhrC,EAAUmkC,YAAankC,EAAU+sC,cAArC,CAGA,GAAI6qC,GAAa53E,EAAUoI,MAAMsiC,OAAS,EACtCmtC,EAAW73E,EAAUqI,IAAIqiC,OAAS,EAClCxzB,EAAO8wB,EAAQ0T,QAAQ17C,EAAUoI,MAAMqiC,KACvCqtC,EAAW5gE,EAAK52C,OAChB2qG,EAAS/zD,EAAKjF,UAAUvc,KAAKqP,IAAI6yE,EAAY,GACrBliF,KAAKoP,IAAI+yE,EAAUC,GAC/C,MAAKF,GAAc,GAAK,UAAU3qG,KAAKg+F,IAClC4M,GAAYC,GAAY,UAAU7qG,KAAKg+F,MAG5CA,EAAS/zD,EAAKjF,UAAUjS,EAAUoI,MAAMsiC,OAAQ1qC,EAAUqI,IAAIqiC,QACzD,YAAYz9D,KAAKg+F,IAAtB,CASA,MANS7sG,MAAK+zG,QAAQ3G,iBAClBW,WAAW,EACXE,eAAe,EACfpB,OAAQA,OAOhB7sG,KAAK82G,oBAAsB,WACvB92G,KAAK2mE,SAASgzC,sBAGlB35G,KAAK+2G,mBAAqB,WACtB/2G,KAAK2mE,SAASizC,qBAIlB55G,KAAKg3G,mBAAqB,WACtBh3G,KAAK2mE,SAASkzC,qBAGlB75G,KAAKi3G,mBAAqB,WACtBj3G,KAAK2mE,SAAS29B,eAAetkG,KAAK4pE,QAAQ46B,mBAI9CxkG,KAAKy2G,aAAe,SAASnxG,GACzBtF,KAAK2mE,SAASmzC,aACd95G,KAAKuqE,MAAM,aAAcjlE,IAI7BtF,KAAK42G,kBAAoB,WACrB52G,KAAK2mE,SAAS2wC,cAGlBt3G,KAAK62G,iBAAmB,WACpB72G,KAAK2mE,SAAS8wC,UAAS,IAI3Bz3G,KAAKihG,aAAe,WAChBjhG,KAAK64G,6BACL74G,KAAK2mE,SAAS2wC,cAElBt3G,KAAK+5G,gBAAkB,WACnB,MAAO/5G,MAAK4pE,QAAQyL,aAAar1E,KAAK4sE,sBAE1C5sE,KAAKupE,YAAc,WACf,GAAI53C,GAAO3xB,KAAK+5G,iBAEhB,OADA/5G,MAAK2wE,QAAQ,OAAQh/C,GACdA,GAEX3xB,KAAKypE,OAAS,WACVzpE,KAAKytD,SAASjyB,KAAK,OAAQx7B,OAE/BA,KAAKwpE,MAAQ,WACTxpE,KAAKytD,SAASjyB,KAAK,MAAOx7B,OAE9BA,KAAK4oE,QAAU,SAASj3C,EAAMqV,GAC1B,GAAI1hC,IAAKqsB,KAAMA,EAAMqV,MAAOA,EAC5BhnC,MAAKytD,SAASjyB,KAAK,QAASx7B,KAAMsF,IAGtCtF,KAAKmyG,aAAe,SAAS7sG,GACT,gBAALA,KACPA,GAAKqsB,KAAMrsB,IACftF,KAAK2wE,QAAQ,QAASrrE,EACtB,IAAIqsB,GAAOrsB,EAAEqsB,IACb,KAAK3xB,KAAKgtE,mBAAqBhtE,KAAKg6G,uBAChCh6G,KAAK0xD,OAAO//B,OACT,CACH,GAAIqoB,GAAQroB,EAAKljB,MAAM,cACnB+2E,EAASxlF,KAAK4hC,UAAU+jD,UAAUH,MAEtC,IAAIxrC,EAAM93C,OAASsjF,EAAOtjF,QAAU83C,EAAM93C,OAAS,IAAM83C,EAAM,GAC3D,MAAOh6C,MAAKytD,SAASjyB,KAAK,eAAgBx7B,KAAM2xB,EAEpD,KAAK,GAAI5sB,GAAIygF,EAAOtjF,OAAQ6C,KAAM,CAC9B,GAAIihC,GAAQw/C,EAAOzgF,EACdihC,GAAM+/B,WACP/lE,KAAK4pE,QAAQ/9C,OAAOma,GAExBhmC,KAAK4pE,QAAQlY,OAAO1rB,EAAMgE,MAAOgQ,EAAMj1C,OAKnD/E,KAAK6oE,YAAc,SAASrQ,EAASlqC,GACjC,MAAOtuB,MAAKytD,SAASjyB,KAAKg9B,EAASx4D,KAAMsuB,IAE7CtuB,KAAK0xD,OAAS,SAAS//B,EAAMs1C,GACzB,GAAI2C,GAAU5pE,KAAK4pE,QACfjnE,EAAOinE,EAAQxlE,UACfqgD,EAASzkD,KAAKisF,mBAElB,IAAIjsF,KAAKi6G,yBAA2BhzC,EAAQ,CACxC,GAAIizC,GAAYv3G,EAAKywF,gBAAgBxpB,EAAQ+uB,SAASl0C,EAAO4nB,KAAM,YAAarsE,KAAM4pE,EAASj4C,EAC3FuoF,KACIvoF,IAASuoF,EAAUvoF,OACnB3xB,KAAK4pE,QAAQi5B,iBAAkB,EAC/B7iG,KAAKm6G,mBAAoB,GAE7BxoF,EAAOuoF,EAAUvoF,MAOzB,GAFY,MAARA,IACAA,EAAO3xB,KAAK4pE,QAAQqjB,gBACnBjtF,KAAK4hC,UAAUmkC,WAKf,GAAI/lE,KAAK4pE,QAAQy5B,eAAgB,CAClC,GAAIr9D,GAAQ,GAAI64C,GAAMmB,WAAWv7B,EAAQA,EACzCze,GAAMiE,IAAIqiC,QAAU36C,EAAKzvB,OACzBlC,KAAK4pE,QAAQ/9C,OAAOma,QARO,CAC3B,GAAIA,GAAQhmC,KAAK4sE,mBACjBnoB,GAASzkD,KAAK4pE,QAAQ/9C,OAAOma,GAC7BhmC,KAAK+pE,iBAQT,GAAY,MAARp4C,GAAwB,QAARA,EAAgB,CAChC,GAAImnB,GAAO8wB,EAAQ0T,QAAQ74B,EAAO4nB,IAClC,IAAI5nB,EAAO6nB,OAASxzB,EAAKhgB,OAAO,QAAS,CACrC,GAAIshF,GAAIthE,EAAK7gB,OAAOwsB,EAAO6nB,QAAQxzC,OAAO,OAC1C8wC,GAAQ/U,IAAI28B,aAAa/sC,EAAO4nB,IAAK5nB,EAAO6nB,OAAQ7nB,EAAO6nB,OAAS8tC,IAG5Ep6G,KAAK+pE,gBAEL,IAAI//B,GAAQya,EAAO6nB,OACf+tC,EAAYzwC,EAAQ+uB,SAASl0C,EAAO4nB,KACpCvzB,EAAO8wB,EAAQ0T,QAAQ74B,EAAO4nB,KAC9BiuC,EAAgB33G,EAAK+vF,aAAa2nB,EAAWvhE,EAAMnnB,EAC7Ci4C,GAAQlY,OAAOjN,EAAQ9yB,EAgBjC,IAdIuoF,GAAaA,EAAUt4E,YACW,GAA9Bs4E,EAAUt4E,UAAU1/B,OACpBlC,KAAK4hC,UAAUwkC,kBACX,GAAIyY,GAAMp6B,EAAO4nB,IAAKriC,EAAQkwE,EAAUt4E,UAAU,GACxC6iB,EAAO4nB,IAAKriC,EAAQkwE,EAAUt4E,UAAU,KAEtD5hC,KAAK4hC,UAAUwkC,kBACX,GAAIyY,GAAMp6B,EAAO4nB,IAAM6tC,EAAUt4E,UAAU,GACjCs4E,EAAUt4E,UAAU,GACpB6iB,EAAO4nB,IAAM6tC,EAAUt4E,UAAU,GACjCs4E,EAAUt4E,UAAU,MAItCgoC,EAAQ4W,cAAcwV,UAAUrkE,GAAO,CACvC,GAAI4oF,GAAa53G,EAAK6vF,kBAAkB6nB,EAAWvhE,EAAKjiC,MAAM,EAAG4tC,EAAO6nB,QAAS1C,EAAQqjB,eAEzFrjB,GAAQlY,QAAQ2a,IAAK5nB,EAAO4nB,IAAI,EAAGC,OAAQ,GAAIiuC,GAE/CD,GACA33G,EAAKgwF,YAAY0nB,EAAWzwC,EAASnlB,EAAO4nB,MAGpDrsE,KAAK8oE,YAAc,SAASn3C,GACxB3xB,KAAK6zG,WAAW/qC,YAAYn3C,IAGhC3xB,KAAK0pE,aAAe,SAASpkE,EAAGi6D,EAAQj0B,GACpCtrC,KAAK6zG,WAAWnqC,aAAapkE,EAAGi6D,EAAQj0B,IAE5CtrC,KAAKmjG,aAAe,SAASC,GACzBpjG,KAAK4pE,QAAQu5B,aAAaC,IAE9BpjG,KAAKqjG,aAAe,WAChB,MAAOrjG,MAAK4pE,QAAQy5B,gBAExBrjG,KAAKsjG,gBAAkB,WACnBtjG,KAAK4pE,QAAQ05B,mBAEjBtjG,KAAKw6G,eAAiB,SAASxrC,GAC3BhvE,KAAKu4E,UAAU,cAAevJ,IAElChvE,KAAKy6G,eAAiB,WAClB,MAAOz6G,MAAK24E,UAAU,gBAE1B34E,KAAK06G,aAAe,SAASj+B,GACzBz8E,KAAKu4E,UAAU,YAAakE,IAEhCz8E,KAAK81E,aAAe,WAChB,MAAO91E,MAAK24E,UAAU,cAE1B34E,KAAK26G,kBAAoB,SAAS9qF,GAC9B7vB,KAAKu4E,UAAU,iBAAkB1oD,IAErC7vB,KAAKyzE,kBAAoB,WACrB,MAAOzzE,MAAK24E,UAAU,mBAE1B34E,KAAK46G,uBAAyB,SAASC,GACnC76G,KAAKu4E,UAAU,sBAAuBsiC,IAE1C76G,KAAK86G,uBAAyB,WAC1B,MAAO96G,MAAK24E,UAAU,wBAE1B34E,KAAK+6G,uBAAyB,SAASF,GACnC76G,KAAKu4E,UAAU,sBAAuBsiC,IAG1C76G,KAAKg7G,uBAAyB,WAC1B,MAAOh7G,MAAK24E,UAAU,wBAE1B34E,KAAKi7G,yBAA2B,SAASJ,GACrC76G,KAAKu4E,UAAU,wBAAyBsiC,IAE5C76G,KAAKk7G,yBAA2B,WAC5B,MAAOl7G,MAAKs5G,wBAGhBt5G,KAAKm7G,kBAAoB,SAASC,GAC9Bp7G,KAAK2mE,SAASw0C,kBAAkBC,IAGpCp7G,KAAKq7G,kBAAoB,WACrB,MAAOr7G,MAAK2mE,SAAS00C,qBAEzBr7G,KAAKs7G,kBAAoB,SAASC,GAC9Bv7G,KAAK2mE,SAAS20C,kBAAkBC,IAEpCv7G,KAAKw7G,kBAAoB,WACrB,MAAOx7G,MAAK2mE,SAAS60C,qBAGzBx7G,KAAKy7G,uBAAyB,SAASh9D,GACnCz+C,KAAK2mE,SAAS80C,uBAAuBh9D,IAGzCz+C,KAAK07G,uBAAyB,WAC1B,MAAO17G,MAAK2mE,SAAS+0C,0BAEzB17G,KAAKmtD,mBAAqB,SAASwuD,GAC/B37G,KAAK2mE,SAASxZ,mBAAmBwuD,IAErC37G,KAAK47G,mBAAqB,WACtB,MAAO57G,MAAK2mE,SAASi1C,sBAEzB57G,KAAK67G,qBAAuB,SAASF,GACjC37G,KAAK2mE,SAASk1C,qBAAqBF,IAEvC37G,KAAK87G,qBAAuB,WACxB,MAAO97G,MAAK2mE,SAASm1C,wBAEzB97G,KAAKqqE,YAAc,SAASnd,GACxBltD,KAAKu4E,UAAU,WAAYrrB,IAE/BltD,KAAKm0E,YAAc,WACf,MAAOn0E,MAAK24E,UAAU,aAE1B34E,KAAK+7G,qBAAuB,SAAUC,GAClCh8G,KAAKu4E,UAAU,oBAAqByjC,IAExCh8G,KAAKi6G,qBAAuB,WACxB,MAAOj6G,MAAK24E,UAAU,sBAE1B34E,KAAKi8G,yBAA2B,SAAUD,GACtCh8G,KAAKu4E,UAAU,wBAAyByjC,IAE5Ch8G,KAAKksF,yBAA2B,WAC5B,MAAOlsF,MAAK24E,UAAU,0BAE1B34E,KAAKk8G,mBAAqB,SAAS3vE,GAC/BvsC,KAAKu4E,UAAU,kBAAmBhsC,IAGtCvsC,KAAKm8G,mBAAqB,WACtB,MAAOn8G,MAAK24E,UAAU,oBAG1B34E,KAAKo8G,mBAAqB,SAASC,GAC/Br8G,KAAKu4E,UAAU,kBAAmB8jC,IAGtCr8G,KAAKs8G,mBAAqB,WACtB,MAAOt8G,MAAK24E,UAAU,oBAE1B34E,KAAK6rB,OAAS,SAASuyE,GACfp+F,KAAK4hC,UAAUmkC,YACJ,QAAPq4B,EACAp+F,KAAK4hC,UAAUogD,aAEfhiF,KAAK4hC,UAAUkgD,cAGvB,IAAI97C,GAAQhmC,KAAK4sE,mBACjB,IAAI5sE,KAAKi6G,uBAAwB,CAC7B,GAAIrwC,GAAU5pE,KAAK4pE,QACfpxB,EAAQoxB,EAAQ+uB,SAAS3yD,EAAMgE,MAAMqiC,KACrCkwC,EAAY3yC,EAAQxlE,UAAUgvF,gBAAgB56C,EAAO,WAAYx4C,KAAM4pE,EAAS5jC,EAEpF,IAAyB,IAArBA,EAAMiE,IAAIqiC,OAAc,CACxB,GAAI36C,GAAOi4C,EAAQyL,aAAarvC,EAChC,IAA6B,MAAzBrU,EAAKA,EAAKzvB,OAAS,GAAY,CAC/B,GAAI42C,GAAO8wB,EAAQ0T,QAAQt3C,EAAMiE,IAAIoiC,IACjC,SAAQx9D,KAAKiqC,KACb9S,EAAMiE,IAAIqiC,OAASxzB,EAAK52C,SAIhCq6G,IACAv2E,EAAQu2E,GAGhBv8G,KAAK4pE,QAAQ/9C,OAAOma,GACpBhmC,KAAK+pE,kBAET/pE,KAAK4yG,gBAAkB,WACf5yG,KAAK4hC,UAAUmkC,WACf/lE,KAAK4hC,UAAU8gD,kBAEnB1iF,KAAK4pE,QAAQ/9C,OAAO7rB,KAAK4sE,qBACzB5sE,KAAK+pE,kBAET/pE,KAAK2yG,eAAiB,WACd3yG,KAAK4hC,UAAUmkC,WACf/lE,KAAK4hC,UAAUghD,iBAEnB5iF,KAAK4pE,QAAQ/9C,OAAO7rB,KAAK4sE,qBACzB5sE,KAAK+pE,kBAET/pE,KAAKyyG,kBAAoB,WACjBzyG,KAAK4hC,UAAUmkC,WACf/lE,KAAK4hC,UAAUsgD,kBAEnBliF,KAAK4pE,QAAQ/9C,OAAO7rB,KAAK4sE,qBACzB5sE,KAAK+pE,kBAET/pE,KAAK0yG,gBAAkB,WACf1yG,KAAK4hC,UAAUmkC,WACf/lE,KAAK4hC,UAAUwgD,eAEnB,IAAIp8C,GAAQhmC,KAAK4sE,mBACb5mC,GAAMgE,MAAMsiC,QAAUtmC,EAAMiE,IAAIqiC,QAAUtmC,EAAMgE,MAAMqiC,KAAOrmC,EAAMiE,IAAIoiC,MACvErmC,EAAMiE,IAAIqiC,OAAS,EACnBtmC,EAAMiE,IAAIoiC,OAGdrsE,KAAK4pE,QAAQ/9C,OAAOma,GACpBhmC,KAAK+pE,kBAET/pE,KAAK+yG,UAAY,WACR/yG,KAAK4hC,UAAUmkC,YAChB/lE,KAAK4pE,QAAQ/9C,OAAO7rB,KAAK4sE,qBACzB5sE,KAAK+pE,iBAGT,IAAItlB,GAASzkD,KAAKisF,mBAClBjsF,MAAK0xD,OAAO,MACZ1xD,KAAKkyE,qBAAqBztB,IAE9BzkD,KAAKgzG,iBAAmB,WACpB,GAAKhzG,KAAK4hC,UAAUmkC,UAApB,CAIA,GAAIthB,GAASzkD,KAAKisF,oBACd3f,EAAS7nB,EAAO6nB,MACpB,IAAe,IAAXA,EAAJ,CAGA,GACIkwC,GAAMx2E,EADN8S,EAAO94C,KAAK4pE,QAAQ0T,QAAQ74B,EAAO4nB,IAEnCC,GAASxzB,EAAK52C,QACds6G,EAAO1jE,EAAK9mB,OAAOs6C,GAAUxzB,EAAK9mB,OAAOs6C,EAAO,GAChDtmC,EAAQ,GAAI64C,GAAMp6B,EAAO4nB,IAAKC,EAAO,EAAG7nB,EAAO4nB,IAAKC,EAAO,KAG3DkwC,EAAO1jE,EAAK9mB,OAAOs6C,EAAO,GAAKxzB,EAAK9mB,OAAOs6C,EAAO,GAClDtmC,EAAQ,GAAI64C,GAAMp6B,EAAO4nB,IAAKC,EAAO,EAAG7nB,EAAO4nB,IAAKC,IAExDtsE,KAAK4pE,QAAQ7xD,QAAQiuB,EAAOw2E,MAEhCx8G,KAAK02B,YAAc;4BACf,GAAI+lF,GAAgBz8G,KAAK4sE,mBACrB5sE,MAAK4hC,UAAUmkC,WACf/lE,KAAK4hC,UAAUkhD,YAGnB,IAAI98C,GAAQhmC,KAAK4sE,oBACbj7C,EAAO3xB,KAAK4pE,QAAQyL,aAAarvC,EACrChmC,MAAK4pE,QAAQ7xD,QAAQiuB,EAAOrU,EAAK+E,eACjC12B,KAAK4hC,UAAUwkC,kBAAkBq2C,IAErCz8G,KAAKu6E,YAAc,WACf,GAAIkiC,GAAgBz8G,KAAK4sE,mBACrB5sE,MAAK4hC,UAAUmkC,WACf/lE,KAAK4hC,UAAUkhD,YAGnB,IAAI98C,GAAQhmC,KAAK4sE,oBACbj7C,EAAO3xB,KAAK4pE,QAAQyL,aAAarvC,EACrChmC,MAAK4pE,QAAQ7xD,QAAQiuB,EAAOrU,EAAK4oD,eACjCv6E,KAAK4hC,UAAUwkC,kBAAkBq2C,IAErCz8G,KAAK2wB,OAAS,WACV,GAAIi5C,GAAU5pE,KAAK4pE,QACf5jC,EAAQhmC,KAAK4sE,mBAEjB,IAAI5mC,EAAMgE,MAAMqiC,IAAMrmC,EAAMiE,IAAIoiC,IAAK,CACjC,GAAI2Y,GAAOhlF,KAAK08G,kBAEhB,YADA9yC,GAAQ+9B,WAAW3iB,EAAKt6C,MAAOs6C,EAAKnnD,KAAM,MAEvC,GAAImI,EAAMgE,MAAMsiC,OAAStmC,EAAMiE,IAAIqiC,OAAQ,CAE9C,IAAK,QAAQz9D,KADF+6D,EAAQyL,aAAarvC,IACP,CACrB,GAAIg/C,GAAOhlF,KAAK08G,kBAEhB,YADA9yC,GAAQ+9B,WAAW3iB,EAAKt6C,MAAOs6C,EAAKnnD,KAAM,OAKlD,GAAIib,GAAO8wB,EAAQ0T,QAAQt3C,EAAMgE,MAAMqiC,KACnCrgB,EAAWhmB,EAAMgE,MACjBg+D,EAAOp+B,EAAQ6Z,aACfnX,EAAS1C,EAAQuhC,uBAAuBn/C,EAASqgB,IAAKrgB,EAASsgB,OAEnE,IAAItsE,KAAK4pE,QAAQynB,iBACb,GAAI/5E,GAAS0wF,EAAO17B,EAAS07B,EACzBJ,EAAeliC,EAAKxB,aAAa,IAAK5sD,OACvC,CAEH,IADA,GAAIA,GAAQg1D,EAAS07B,EACkB,KAAhClvD,EAAK9S,EAAMgE,MAAMsiC,OAAS,IAAah1D,GAC1C0uB,EAAMgE,MAAMsiC,SACZh1D,GAEJtX,MAAK4hC,UAAUwkC,kBAAkBpgC,GACjC4hE,EAAe,KAEnB,MAAO5nG,MAAK0xD,OAAOk2C,IAEvB5nG,KAAK8yG,YAAc,WACf,GAAI9tB,GAAOhlF,KAAK08G,kBAChB18G,MAAK4pE,QAAQ+9B,WAAW3iB,EAAKt6C,MAAOs6C,EAAKnnD,KAAM,OAEnD79B,KAAK6yG,aAAe,WAChB,GAAIjxE,GAAY5hC,KAAK4pE,QAAQ1jC,cAC7BlmC,MAAK4pE,QAAQi+B,YAAYjmE,EAAUqoC,aAEvCjqE,KAAKqyG,UAAY,WACb,GAAIrtB,GAAOhlF,KAAK08G,mBACZ9yC,EAAU5pE,KAAK4pE,QAEf5vB,IACJ,KAAKj1C,EAAIigF,EAAKt6C,MAAO3lC,GAAKigF,EAAKnnD,KAAM94B,IACjCi1C,EAAM9gC,KAAK0wD,EAAQ0T,QAAQv4E,GAE/Bi1C,GAAMjpB,KAAK,SAASlrB,EAAGyG,GACnB,MAAIzG,GAAE6wB,cAAgBpqB,EAAEoqB,eAAuB,EAC3C7wB,EAAE6wB,cAAgBpqB,EAAEoqB,cAAsB,EACvC,GAIX,KAAK,GADDqxE,GAAc,GAAIlpB,GAAM,EAAG,EAAG,EAAG,GAC5B95E,EAAIigF,EAAKt6C,MAAO3lC,GAAKigF,EAAKnnD,KAAM94B,IAAK,CAC1C,GAAI+zC,GAAO8wB,EAAQ0T,QAAQv4E,EAC3BgjG,GAAY/9D,MAAMqiC,IAAMtnE,EACxBgjG,EAAY99D,IAAIoiC,IAAMtnE,EACtBgjG,EAAY99D,IAAIqiC,OAASxzB,EAAK52C,OAC9B0nE,EAAQ7xD,QAAQgwF,EAAa/tD,EAAMj1C,EAAEigF,EAAKt6C,UAGlD1qC,KAAK8wF,mBAAqB,WACtB,GAAIt4C,GAAQx4C,KAAK4pE,QAAQ+uB,SAAS34F,KAAKisF,oBAAoB5f,KACvD2Y,EAAOhlF,KAAK08G,kBAChB18G,MAAK4pE,QAAQxlE,UAAU0sF,mBAAmBt4C,EAAOx4C,KAAK4pE,QAASob,EAAKt6C,MAAOs6C,EAAKnnD,OAGpF79B,KAAKmyF,mBAAqB,WACtB,GAAI1tC,GAASzkD,KAAKisF,oBACdzzC,EAAQx4C,KAAK4pE,QAAQ+uB,SAASl0C,EAAO4nB,KACrCrmC,EAAQhmC,KAAK4sE,mBACjB5sE,MAAK4pE,QAAQxlE,UAAU+tF,mBAAmB35C,EAAOx4C,KAAK4pE,QAAS5jC,EAAOye,IAE1EzkD,KAAK28G,YAAc,SAAStwC,EAAKC,GAC7B,GAAIswC,GAAY,2BAChBA,GAAU5pF,UAAY,CAGtB,KADA,GAAIttB,GAAI1F,KAAK4pE,QAAQ0T,QAAQjR,GACtBuwC,EAAU5pF,UAAYs5C,GAAQ,CACjC,GAAI9rE,GAAIo8G,EAAUphF,KAAK91B,EACvB,IAAGlF,EAAE2T,OAASm4D,GAAU9rE,EAAE2T,MAAM3T,EAAE,GAAG0B,QAAUoqE,EAAO,CAMlD,OAJI7iE,MAAOjJ,EAAE,GACTwpC,MAAOxpC,EAAE2T,MACT81B,IAAKzpC,EAAE2T,MAAM3T,EAAE,GAAG0B,SAK9B,MAAO,OAEXlC,KAAKsyG,aAAe,SAASuK,GACzB,GAAIxwC,GAAMrsE,KAAK4hC,UAAUo/C,YAAY3U,IACjCC,EAAStsE,KAAK4hC,UAAUo/C,YAAY1U,OACpCwwC,EAAY,GAAIj+B,GAAMxS,EAAKC,EAAO,EAAGD,EAAKC,GAE1C7rE,EAAIT,KAAK4pE,QAAQyL,aAAaynC,EAClC,KAAK/yD,MAAM7W,WAAWzyC,KAAOyxB,SAASzxB,GAAI,CACtC,GAAIs8G,GAAK/8G,KAAK28G,YAAYtwC,EAAKC,EAC/B,IAAIywC,EAAI,CACJ,GAAIC,GAAKD,EAAGtzG,MAAMzH,QAAQ,MAAQ,EAAI+6G,EAAG/yE,MAAQ+yE,EAAGtzG,MAAMzH,QAAQ,KAAO,EAAI+6G,EAAG9yE,IAC5EgzE,EAAWF,EAAG/yE,MAAQ+yE,EAAGtzG,MAAMvH,OAAS86G,EAExCz3G,EAAI2tC,WAAW6pE,EAAGtzG,MACtBlE,IAAK+xB,KAAKmmC,IAAI,GAAIw/C,GAGfD,IAAOD,EAAG9yE,KAAOqiC,EAAS0wC,EACzBH,GAAUvlF,KAAKmmC,IAAI,GAAIs/C,EAAG9yE,IAAMqiC,EAAS,GAEzCuwC,GAAUvlF,KAAKmmC,IAAI,GAAIs/C,EAAG9yE,IAAMqiC,GAGpC/mE,GAAKs3G,EACLt3G,GAAK+xB,KAAKmmC,IAAI,GAAIw/C,EAClB,IAAIC,GAAM33G,EAAE43G,QAAQF,GAChBG,EAAe,GAAIv+B,GAAMxS,EAAK0wC,EAAG/yE,MAAOqiC,EAAK0wC,EAAG9yE,IACpDjqC,MAAK4pE,QAAQ7xD,QAAQqlG,EAAcF,GACnCl9G,KAAKshF,aAAajV,EAAK/0C,KAAKqP,IAAIo2E,EAAG/yE,MAAO,EAAGsiC,EAAS4wC,EAAIh7G,OAAS66G,EAAGtzG,MAAMvH,YAKxFlC,KAAKq2F,YAAc,WACf,GAAIrR,GAAOhlF,KAAK08G,kBAChB18G,MAAK4pE,QAAQ0sB,gBAAgBtR,EAAKt6C,MAAOs6C,EAAKnnD,MAC9C79B,KAAK+pE,kBAGT/pE,KAAKoyG,mBAAqB,WACtB,GAAI5gE,GAAMxxC,KAAK4hC,UACXizB,EAAM70D,KAAK4pE,QACX5jC,EAAQwL,EAAIy4B,WACZhG,EAAUzyB,EAAI+vC,aAClB,IAAIv7C,EAAM+/B,UAAW,CACjB,GAAIsG,GAAMrmC,EAAMgE,MAAMqiC,GACtBxX,GAAIyzC,eAAej8B,EAAKA,OACrB,CACH,GAAIooB,GAAQxwB,EAAUj+B,EAAMgE,MAAQhE,EAAMiE,IACtCozE,EAAWxoD,EAAInD,OAAO+iC,EAAO5/B,EAAIwgB,aAAarvC,IAAQ,EAC1DA,GAAMgE,MAAQyqD,EACdzuD,EAAMiE,IAAMozE,EAEZ7rE,EAAI40B,kBAAkBpgC,EAAOi+B,KAGrCjkE,KAAKqoG,cAAgB,WACjBroG,KAAKioG,WAAW,GAAG,IAEvBjoG,KAAKooG,YAAc,WACfpoG,KAAKioG,YAAY,GAAG,IAExBjoG,KAAK21E,SAAW,SAAS3vC,EAAOshE,EAAY1gG,GACxC,MAAO5G,MAAK4pE,QAAQ+L,SAAS3vC,EAAOshE,EAAY1gG,IAEpD5G,KAAKuyG,YAAc,WACfvyG,KAAKioG,YAAY,GAAG,IAExBjoG,KAAKwyG,cAAgB,WACjBxyG,KAAKioG,WAAW,GAAG,IAEvBjoG,KAAKioG,WAAa,SAAS7J,EAAKx3F,GAC5B,GAAIo+E,GAAMv/B,EACN7jB,EAAY5hC,KAAK4hC,SACrB,KAAKA,EAAUorC,mBAAqBhtE,KAAKg6G,uBAAwB,CAC7D,GAAIh0E,GAAQpE,EAAU0xC,iBACtB0R,GAAOhlF,KAAK08G,iBAAiB12E,GAC7Byf,EAAQzlD,KAAK4pE,QAAQq+B,WAAWjjB,EAAKt6C,MAAOs6C,EAAKnnD,KAAMj3B,EAAO,EAAIw3F,GAC9Dx3F,IAAgB,GAARw3F,IAAW34C,EAAQ,GAC/Bzf,EAAMs6C,OAAO76B,EAAO,GACpB7jB,EAAUqyC,kBAAkBjuC,OACzB,CACH,GAAIw/C,GAAS5jD,EAAU+jD,UAAUH,MACjC5jD,GAAU+jD,UAAUxH,OAAOn+E,KAAK4pE,SAChC5pE,KAAKg6G,wBAAyB,CAK9B,KAAK,GAHDnzE,GAAO,EACPy2E,EAAY,EACZv3G,EAAIy/E,EAAOtjF,OACN6C,EAAI,EAAGA,EAAIgB,EAAGhB,IAAK,CACxB,GAAIw4G,GAAax4G,CACjBygF,GAAOzgF,GAAGu7E,OAAOz5C,EAAM,GACvBm+C,EAAOhlF,KAAK08G,iBAAiBl3B,EAAOzgF,GAGpC,KAFA,GAAI2lC,GAAQs6C,EAAKt6C,MACb7M,EAAOmnD,EAAKnnD,OACP94B,EAAIgB,GAAG,CACRu3G,GAAW93B,EAAOzgF,GAAGu7E,OAAOg9B,EAAW,EAC3C,IAAIE,GAAUx9G,KAAK08G,iBAAiBl3B,EAAOzgF,GAC3C,IAAI6B,GAAQ42G,EAAQ9yE,OAAS7M,EACzB,KACC,KAAKj3B,GAAQ42G,EAAQ9yE,MAAQ7M,EAAO,EACrC,KACJA,GAAO2/E,EAAQ3/E,KAKnB,IAHA94B,IACA8hC,EAAO7mC,KAAK4pE,QAAQq+B,WAAWv9D,EAAO7M,EAAMj3B,EAAO,EAAIw3F,GACnDx3F,IAAgB,GAARw3F,IAAWmf,EAAax4G,EAAI,GACjCw4G,GAAcx4G,GACjBygF,EAAO+3B,GAAYj9B,OAAOz5C,EAAM,GAChC02E,GAEC32G,KAAMigC,EAAO,GAClBy2E,GAAaz2E,EAGjBjF,EAAUqyC,kBAAkBryC,EAAU4jD,OAAO,IAC7C5jD,EAAU+jD,UAAUzH,OAAOl+E,KAAK4pE,SAChC5pE,KAAKg6G,wBAAyB,IAGtCh6G,KAAK08G,iBAAmB,SAAS12E,GAG7B,MAFAA,IAASA,GAAShmC,KAAK4sE,qBAAqBqT,gBAGxCv1C,MAAO1qC,KAAK4pE,QAAQ8zB,gBAAgB13D,EAAMgE,MAAMqiC,KAChDxuC,KAAM79B,KAAK4pE,QAAQ6zB,cAAcz3D,EAAMiE,IAAIoiC,OAInDrsE,KAAKqoE,mBAAqB,SAAS12C,GAC/B3xB,KAAK2mE,SAAS82C,gBAAgBz9G,KAAKisF,sBAGvCjsF,KAAKooE,oBAAsB,SAASz2C,GAChC3xB,KAAK2mE,SAAS+2C,mBAAmB/rF,IAGrC3xB,KAAKmoE,iBAAmB,WACpBnoE,KAAK2mE,SAASg3C,mBAElB39G,KAAK49G,mBAAqB,WACtB,MAAO59G,MAAK2mE,SAASi3C,sBAEzB59G,KAAK69G,kBAAoB,WACrB,MAAO79G,MAAK2mE,SAASk3C,qBAEzB79G,KAAK89G,aAAe,SAASzxC,GACzB,MAAQA,IAAOrsE,KAAK49G,sBAAwBvxC,GAAOrsE,KAAK69G,qBAE5D79G,KAAK+9G,kBAAoB,SAAS1xC,GAC9B,MAAQA,IAAOrsE,KAAK2mE,SAASq3C,2BAA6B3xC,GAAOrsE,KAAK2mE,SAASs3C,0BAEnFj+G,KAAKk+G,oBAAsB,WACvB,MAAOl+G,MAAK2mE,SAASw3C,qBAAuBn+G,KAAK2mE,SAASy3C,kBAAoB,GAGlFp+G,KAAKq+G,YAAc,SAASjgB,EAAKr4D,GAC7B,GAAI4gC,GAAW3mE,KAAK2mE,SAChB/iE,EAAS5D,KAAK2mE,SAAS6L,YACvBwS,EAAOoZ,EAAM9mE,KAAKxC,MAAMlxB,EAAOwhC,OAASxhC,EAAO2uE,WAEnDvyE,MAAK+sD,mBACU,IAAXhnB,EACA/lC,KAAK4hC,UAAU4/C,eAAe,WAC1BxhF,KAAKujF,aAAayB,EAAM,MAEV,IAAXj/C,IACP/lC,KAAK4hC,UAAU2hD,aAAayB,EAAM,GAClChlF,KAAK4hC,UAAUmoC,kBAEnB/pE,KAAK+sD,iBAEL,IAAIxnB,GAAYohC,EAASphC,SAEzBohC,GAASsI,SAAS,EAAG+V,EAAOphF,EAAO2uE,YACrB,MAAVxsC,GACA4gC,EAASkH,qBAAqB,KAAM,IAExClH,EAASouC,iBAAiBxvE,IAE9BvlC,KAAK4xG,eAAiB,WAClB5xG,KAAKq+G,YAAY,GAAG,IAExBr+G,KAAK+xG,aAAe,WAChB/xG,KAAKq+G,aAAa,GAAG,IAEzBr+G,KAAK8xG,aAAe,WACjB9xG,KAAKq+G,YAAY,GAAG,IAEvBr+G,KAAKiyG,WAAa,WACdjyG,KAAKq+G,aAAa,GAAG,IAEzBr+G,KAAK6xG,eAAiB,WAClB7xG,KAAKq+G,YAAY,IAErBr+G,KAAKgyG,aAAe,WAChBhyG,KAAKq+G,aAAa,IAEtBr+G,KAAKs+G,YAAc,SAASjyC,GACxBrsE,KAAK2mE,SAAS23C,YAAYjyC,IAE9BrsE,KAAKu+G,aAAe,SAASzlE,EAAM0lE,EAAQ53E,EAASh/B,GAChD5H,KAAK2mE,SAAS43C,aAAazlE,EAAM0lE,EAAQ53E,EAASh/B,IAEtD5H,KAAKywG,gBAAkB,WACnB,GAAIzqE,GAAQhmC,KAAK4sE,oBACbhzD,GACAyyD,IAAK/0C,KAAKxC,MAAMkR,EAAMgE,MAAMqiC,KAAOrmC,EAAMiE,IAAIoiC,IAAMrmC,EAAMgE,MAAMqiC,KAAO,GACtEC,OAAQh1C,KAAKxC,MAAMkR,EAAMgE,MAAMsiC,QAAUtmC,EAAMiE,IAAIqiC,OAAStmC,EAAMgE,MAAMsiC,QAAU,GAEtFtsE,MAAK2mE,SAAS83C,YAAY7kG,EAAK,KAEnC5Z,KAAKisF,kBAAoB,WACrB,MAAOjsF,MAAK4hC,UAAUo/C,aAE1BhhF,KAAK0+G,wBAA0B,WAC3B,MAAO1+G,MAAK4pE,QAAQwW,yBAAyBpgF,KAAKisF,sBAEtDjsF,KAAK4sE,kBAAoB,WACrB,MAAO5sE,MAAK4hC,UAAUqoC,YAE1BjqE,KAAKuoE,UAAY,WACbvoE,KAAK+sD,iBAAmB,EACxB/sD,KAAK4hC,UAAU2mC,YACfvoE,KAAK+sD,iBAAmB,GAE5B/sD,KAAK+pE,eAAiB,WAClB/pE,KAAK4hC,UAAUmoC,kBAEnB/pE,KAAKshF,aAAe,SAASjV,EAAKC,GAC9BtsE,KAAK4hC,UAAU0/C,aAAajV,EAAKC,IAErCtsE,KAAKkyE,qBAAuB,SAASt4D,GACjC5Z,KAAK4hC,UAAUswC,qBAAqBt4D,IAExC5Z,KAAKkyG,eAAiB,SAASnsE,EAAQ7C,GACnC,GAAIuhB,GAASzkD,KAAKisF,oBACd2B,EAAW,GAAI9D,GAAc9pF,KAAK4pE,QAASnlB,EAAO4nB,IAAK5nB,EAAO6nB,QAC9D6rC,EAAYvqB,EAASlD,kBACrB9yC,EAAQugE,GAAavqB,EAASpD,aAElC,IAAK5yC,EAAL,CACA,GAAI+mE,GAIAC,EAHAC,GAAQ,EACRxgB,KACAt5F,EAAI0/C,EAAO6nB,OAAS10B,EAAM5N,MAE1B80E,GACA7e,IAAK,IACLC,IAAK,IACLxpD,IAAK,IACLD,IAAK,IACLN,IAAK,IACLC,IAAK,IAGT,GAAG,CACC,GAAIwB,EAAMnuC,MAAMkE,MAAM,gBAClB,KAAO5I,EAAI6yC,EAAMnuC,MAAMvH,SAAW28G,EAAO95G,IACrC,GAAK+5G,EAASlnE,EAAMnuC,MAAM1E,IAU1B,OANA65G,EAAcE,EAASlnE,EAAMnuC,MAAM1E,IAAM,IAAM6yC,EAAMl/B,KAAKX,QAAQ,SAAU,UAExEgyC,MAAMs0C,EAAMugB,MACZvgB,EAAMugB,GAAe,GAGjBhnE,EAAMnuC,MAAM1E,IAChB,IAAK,IACL,IAAK,IACL,IAAK,IACDs5F,EAAMugB,IACN,MACJ,KAAK,IACL,IAAK,IACL,IAAK,IACDvgB,EAAMugB,MAEsB,IAAxBvgB,EAAMugB,KACND,EAAY,UACZE,GAAQ,QAMnBjnE,KAA6C,IAApCA,EAAMl/B,KAAK1W,QAAQ,cAC7B+nD,MAAMs0C,EAAMzmD,EAAMnuC,UAClB40F,EAAMzmD,EAAMnuC,OAAS,GAGD,MAApB0uG,EAAU1uG,MACV40F,EAAMzmD,EAAMnuC,SAEa,OAApB0uG,EAAU1uG,OACf40F,EAAMzmD,EAAMnuC,UAGY,IAAxB40F,EAAMzmD,EAAMnuC,SACZk1G,EAAY,MACZE,GAAQ,GAIXA,KACD1G,EAAYvgE,EACZA,EAAQg2C,EAASpD,cACjBzlF,EAAI,SAEH6yC,IAAUinE,EACnB,IAAKF,EAAL,CAGA,GAAI34E,GAAOpsB,CACX,IAAkB,YAAd+kG,GACA34E,EAAQhmC,KAAK4pE,QAAQ6E,gBAAgBhqB,MAEjCze,EAAQ,GAAI64C,GACR+O,EAASjD,qBACTiD,EAAShD,wBAA0B7lF,EAAI,EACvC6oF,EAASjD,qBACTiD,EAAShD,wBAA0B7lF,EAAI,GAE3C6U,EAAMosB,EAAMgE,OACR9G,GAAUtpB,EAAIyyD,MAAQ5nB,EAAO4nB,KAAO/0C,KAAKwP,IAAIltB,EAAI0yD,OAAS7nB,EAAO6nB,QAAU,KAC3EtmC,EAAQhmC,KAAK4pE,QAAQ6E,gBAAgB70D,SAG5C,IAAkB,QAAd+kG,EAAqB,CAC1B,IAAI/mE,IAA6C,IAApCA,EAAMl/B,KAAK1W,QAAQ,YAG5B,MAFA,IAAIizD,GAAMrd,EAAMnuC,KAUpB,IANAu8B,EAAQ,GAAI64C,GACR+O,EAASjD,qBACTiD,EAAShD,wBAA0B,EACnCgD,EAASjD,qBACTiD,EAAShD,wBAA0B,GAEU,IAA7C5kD,EAAMz4B,QAAQk3C,EAAO4nB,IAAK5nB,EAAO6nB,QAAe,CAChDuyC,GAAQ,CACR,IACIjnE,EAAQugE,GACRA,EAAYvqB,EAASrD,mBAG4B,IAAzC4tB,EAAUz/F,KAAK1W,QAAQ,cACvBgkC,EAAMkM,OAAO07C,EAASjD,qBAAsBiD,EAAShD,wBAA0B,GAG/EhzC,EAAMnuC,QAAUwrD,IAA2C,IAApCrd,EAAMl/B,KAAK1W,QAAQ,cAClB,MAApBm2G,EAAU1uG,MACV40F,EAAMppC,KAEmB,OAApBkjD,EAAU1uG,OACf40F,EAAMppC,KAGS,IAAfopC,EAAMppC,KACN4pD,GAAQ,WAGf1G,IAAc0G,GAEvBjnE,GAASA,EAAMl/B,KAAK1W,QAAQ,cAC5B4X,EAAMosB,EAAMgE,MACRpwB,EAAIyyD,KAAO5nB,EAAO4nB,KAAO/0C,KAAKwP,IAAIltB,EAAI0yD,OAAS7nB,EAAO6nB,QAAU,IAChE1yD,EAAMosB,EAAMiE,MAIxBrwB,EAAMosB,GAASA,EAAMye,QAAU7qC,EAC3BA,IACImsB,EACIC,GAAS9C,EACTljC,KAAK4hC,UAAUsoC,SAASlkC,GACjBA,GAASA,EAAMk5C,QAAQl/E,KAAK4sE,qBACnC5sE,KAAK+pE,iBAEL/pE,KAAK4hC,UAAUuvC,SAASv3D,EAAIyyD,IAAKzyD,EAAI0yD,QAGzCtsE,KAAK4hC,UAAU8f,OAAO9nC,EAAIyyD,IAAKzyD,EAAI0yD,YAI/CtsE,KAAK2wG,SAAW,SAASoO,EAAYzyC,EAAQ1lC,GACzC5mC,KAAK4hC,UAAUmoC,iBACf/pE,KAAK4pE,QAAQyzB,QAAQhxB,IAAK0yC,EAAa,EAAGzyC,OAAQA,GAAU,IAE5DtsE,KAAK+sD,iBAAmB,EACxB/sD,KAAKwzG,qBAAuBxzG,KAAKwzG,sBACjCxzG,KAAKshF,aAAay9B,EAAa,EAAGzyC,GAAU,GAC5CtsE,KAAK+sD,iBAAmB,EAEnB/sD,KAAK+9G,kBAAkBgB,EAAa,IACrC/+G,KAAKu+G,aAAaQ,EAAa,GAAG,EAAMn4E,IAEhD5mC,KAAKg/G,WAAa,SAAS3yC,EAAKC,GAC5BtsE,KAAK4hC,UAAU8f,OAAO2qB,EAAKC,IAE/BtsE,KAAKkxG,WAAa,SAASC,GACvB,GAAInxG,KAAK4hC,UAAU+sC,gBAAkB3uE,KAAK4hC,UAAU2/C,cAAe,CAC/D,GAAIrb,GAAiBlmE,KAAK4hC,UAAUqK,OAAOg1C,aAC3C,OAAOjhF,MAAKkyE,qBAAqBhM,GAErClmE,KAAK4hC,UAAUmoC,iBACf/pE,KAAK4hC,UAAU2hD,cAAc4tB,IAAU,EAAG,IAE9CnxG,KAAKqxG,aAAe,SAASF,GACzB,GAAInxG,KAAK4hC,UAAU+sC,eAAiB3uE,KAAK4hC,UAAU2/C,cAAe,CAC9D,GAAIpb,GAAenmE,KAAK4hC,UAAUqK,OAAOg1C,aACzC,OAAOjhF,MAAKkyE,qBAAqB/L,GAErCnmE,KAAK4hC,UAAUmoC,iBACf/pE,KAAK4hC,UAAU2hD,aAAa4tB,GAAS,EAAG,IAE5CnxG,KAAKwxG,aAAe,SAASL,GACzB,GAAKnxG,KAAK4hC,UAAUmkC,UAMhB,IADAorC,EAAQA,GAAS,EACVA,KACHnxG,KAAK4hC,UAAUqgD,qBAPQ,CAC3B,GAAI/b,GAAiBlmE,KAAK4sE,oBAAoB5iC,KAC9ChqC,MAAKkyE,qBAAqBhM,GAQ9BlmE,KAAK+pE,kBAET/pE,KAAK2xG,cAAgB,SAASR,GAC1B,GAAKnxG,KAAK4hC,UAAUmkC,UAMhB,IADAorC,EAAQA,GAAS,EACVA,KACHnxG,KAAK4hC,UAAUmgD,sBAPQ,CAC3B,GAAI5b,GAAenmE,KAAK4sE,oBAAoB3iC,GAC5CjqC,MAAKkyE,qBAAqB/L,GAQ9BnmE,KAAK+pE,kBAET/pE,KAAKuxG,kBAAoB,WACrBvxG,KAAK4hC,UAAUugD,sBACfniF,KAAK+pE,kBAET/pE,KAAK0xG,gBAAkB,WACnB1xG,KAAK4hC,UAAUygD,oBACfriF,KAAK+pE,kBAET/pE,KAAKoxG,gBAAkB,WACnBpxG,KAAK4hC,UAAU2gD,oBACfviF,KAAK+pE,kBAET/pE,KAAKixG,kBAAoB,WACrBjxG,KAAK4hC,UAAU6gD,sBACfziF,KAAK+pE,kBAET/pE,KAAKyxG,kBAAoB,WACrBzxG,KAAK4hC,UAAU+gD,sBACf3iF,KAAK+pE,kBAET/pE,KAAKsxG,iBAAmB,WACpBtxG,KAAK4hC,UAAUihD,qBACf7iF,KAAK+pE,kBAET/pE,KAAK+X,QAAU,SAASw1F,EAAa1sG,GAC7BA,GACAb,KAAK+zG,QAAQjxG,IAAIjC,EAErB,IAAImlC,GAAQhmC,KAAK+zG,QAAQ/G,KAAKhtG,KAAK4pE,SAC/Bq1C,EAAW,CACf,OAAKj5E,IAGDhmC,KAAKk/G,YAAYl5E,EAAOunE,KACxB0R,EAAW,GAED,OAAVj5E,IACAhmC,KAAK4hC,UAAUwkC,kBAAkBpgC,GACjChmC,KAAK2mE,SAASmuC,wBAAwB9uE,EAAMgE,MAAOhE,EAAMiE,MAGtDg1E,GAVIA,GAYfj/G,KAAKm/G,WAAa,SAAS5R,EAAa1sG,GAChCA,GACAb,KAAK+zG,QAAQjxG,IAAIjC,EAGrB,IAAI2kF,GAASxlF,KAAK+zG,QAAQ5G,QAAQntG,KAAK4pE,SACnCq1C,EAAW,CACf,KAAKz5B,EAAOtjF,OACR,MAAO+8G,EAEXj/G,MAAK+sD,iBAAmB,CAExB,IAAInrB,GAAY5hC,KAAK4sE,mBACrB5sE,MAAK4hC,UAAU8f,OAAO,EAAG,EAEzB,KAAK,GAAI38C,GAAIygF,EAAOtjF,OAAS,EAAG6C,GAAK,IAAKA,EACnC/E,KAAKk/G,YAAY15B,EAAOzgF,GAAIwoG,IAC3B0R,GAOR,OAHAj/G,MAAK4hC,UAAUwkC,kBAAkBxkC,GACjC5hC,KAAK+sD,iBAAmB,EAEjBkyD,GAGXj/G,KAAKk/G,YAAc,SAASl5E,EAAOunE,GAC/B,GAAIn4E,GAAQp1B,KAAK4pE,QAAQyL,aAAarvC,EAEtC,OADAunE,GAAcvtG,KAAK+zG,QAAQh8F,QAAQqd,EAAOm4E,GACtB,OAAhBA,GACAvnE,EAAMiE,IAAMjqC,KAAK4pE,QAAQ7xD,QAAQiuB,EAAOunE,GACjCvnE,GAEA,MAGfhmC,KAAKo/G,qBAAuB,WACxB,MAAOp/G,MAAK+zG,QAAQv7B,cAExBx4E,KAAKgtG,KAAO,SAASH,EAAQhsG,EAAS+lC,GAC7B/lC,IACDA,MAEiB,gBAAVgsG,IAAsBA,YAAkB9/F,QAC/ClM,EAAQgsG,OAASA,EACK,gBAAVA,IACZ70C,EAAIj0D,MAAMlD,EAASgsG,EAEvB,IAAI7mE,GAAQhmC,KAAK4hC,UAAUqoC,UACL,OAAlBppE,EAAQgsG,SACRA,EAAS7sG,KAAK4pE,QAAQyL,aAAarvC,IAC5BhmC,KAAK+zG,QAAQr7B,SAASm0B,OACxBA,IACD7mE,EAAQhmC,KAAK4pE,QAAQ8E,aAAa1oC,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,QAC/DugC,EAAS7sG,KAAK4pE,QAAQyL,aAAarvC,IAEvChmC,KAAK+zG,QAAQjxG,KAAK+pG,OAAQA,KAG9B7sG,KAAK+zG,QAAQjxG,IAAIjC,GACZA,EAAQmpC,OACThqC,KAAK+zG,QAAQjxG,KAAKknC,MAAOhE,GAE7B,IAAIq5E,GAAWr/G,KAAK+zG,QAAQ/G,KAAKhtG,KAAK4pE,QACtC,OAAI/oE,GAAQy+G,cACDD,EACPA,GACAr/G,KAAKu/G,YAAYF,EAAUz4E,GACpBy4E,IAEPx+G,EAAQ6sG,UACR1nE,EAAMgE,MAAQhE,EAAMiE,IAEpBjE,EAAMiE,IAAMjE,EAAMgE,UACtBhqC,MAAK4hC,UAAUsoC,SAASlkC,KAE5BhmC,KAAK8wG,SAAW,SAASjwG,EAAS+lC,GAC9B5mC,KAAKgtG,MAAME,aAAa,EAAMQ,WAAW,GAAQ7sG,EAAS+lC,IAE9D5mC,KAAK+wG,aAAe,SAASlwG,EAAS+lC,GAClC5mC,KAAKgtG,KAAKnsG,GAAUqsG,aAAa,EAAMQ,WAAW,GAAO9mE,IAG7D5mC,KAAKu/G,YAAc,SAASv5E,EAAOY,GAC/B5mC,KAAK+sD,iBAAmB,EACxB/sD,KAAK4pE,QAAQyzB,OAAOr3D,GACpBhmC,KAAK4hC,UAAUwkC,kBAAkBpgC,GACjChmC,KAAK+sD,iBAAmB,CAExB,IAAIxnB,GAAYvlC,KAAK2mE,SAASphC,SAC9BvlC,MAAK2mE,SAASmuC,wBAAwB9uE,EAAMgE,MAAOhE,EAAMiE,IAAK,KAC9C,IAAZrD,GACA5mC,KAAK2mE,SAASouC,iBAAiBxvE,IAEvCvlC,KAAKqoC,KAAO,WACRroC,KAAK+sD,kBACL/sD,KAAK4pE,QAAQ44B,iBAAiBn6D,OAC9BroC,KAAK+sD,kBACL/sD,KAAK2mE,SAASkH,qBAAqB,KAAM,KAE7C7tE,KAAKuoC,KAAO,WACRvoC,KAAK+sD,kBACL/sD,KAAK4pE,QAAQ44B,iBAAiBj6D,OAC9BvoC,KAAK+sD,kBACL/sD,KAAK2mE,SAASkH,qBAAqB,KAAM,KAE7C7tE,KAAK6C,QAAU,WACX7C,KAAK2mE,SAAS9jE,UACd7C,KAAK2wE,QAAQ,UAAW3wE,MACpBA,KAAK4pE,SACL5pE,KAAK4pE,QAAQ/mE,WAGrB7C,KAAKw/G,4BAA8B,SAAS3xF,GACxC,GAAKA,EAAL,CAEA,GAAI88C,GACA1iE,EAAOjI,KACPy/G,GAAe,CACdz/G,MAAK0/G,gBACN1/G,KAAK0/G,cAAgBx4E,SAASC,cAAc,OAChD,IAAIw4E,GAAe3/G,KAAK0/G,aACxBC,GAAa9uE,MAAMmlB,QAAU,oBAC7Bh2D,KAAKY,UAAU+sC,aAAagyE,EAAc3/G,KAAKY,UAAUmxC,WACzD,IAAI6tE,GAAoB5/G,KAAK6tD,GAAG,kBAAmB,WAC/C4xD,GAAe,IAEfI,EAAiB7/G,KAAK2mE,SAAS9Y,GAAG,eAAgB,WAC9C4xD,IACA90C,EAAO1iE,EAAK0+D,SAAS/lE,UAAUqvC,2BAEnC6vE,EAAgB9/G,KAAK2mE,SAAS9Y,GAAG,cAAe,WAChD,GAAI4xD,GAAgB90C,IAAS1iE,EAAKk/D,aAC3Bl/D,EAAKw6B,WAAax6B,EAAKw6B,UAAU0kC,aACtC,CACE,GAAIR,GAAW1+D,EAAK0+D,SAChB/sD,EAAM+sD,EAAS+M,aAAaqsC,UAC5Bn8G,EAAS+iE,EAAS6L,YAClBttC,EAAMtrB,EAAIsrB,IAAMthC,EAAOohE,MAEvBy6C,GADA7lG,EAAIsrB,KAAO,GAAKA,EAAMylC,EAAKzlC,IAAM,KAE1BtrB,EAAIsrB,IAAMthC,EAAOwhC,QACxBxrB,EAAIsrB,IAAMylC,EAAKzlC,IAAMthC,EAAO2uE,WAAat7C,OAAOw6C,cAGjC,KAEC,MAAhBguC,IACAE,EAAa9uE,MAAM3L,IAAMA,EAAM,KAC/By6E,EAAa9uE,MAAMX,KAAOt2B,EAAIs2B,KAAO,KACrCyvE,EAAa9uE,MAAMzL,OAASxhC,EAAO2uE,WAAa,KAChDotC,EAAanP,eAAeiP,IAEhCA,EAAe90C,EAAO,OAG9B3qE,MAAKw/G,4BAA8B,SAAS3xF,GACpCA,UAEG7tB,MAAKw/G,4BACZx/G,KAAKi4E,IAAI,kBAAmB2nC,GAC5B5/G,KAAK2mE,SAASsR,IAAI,cAAe6nC,GACjC9/G,KAAK2mE,SAASsR,IAAI,eAAgB4nC,OAK1C7/G,KAAKggH,kBAAoB,WACrB,GAAInvE,GAAQ7wC,KAAKigH,cAAgB,MAC7BC,EAAclgH,KAAK2mE,SAAS+M,YAC3BwsC,KAELA,EAAYC,kBAAkB,SAAStxG,KAAKgiC,IAC5CqvE,EAAYE,YAAcpgH,KAAK2pE,WAAsB,QAAT94B,EAC5CnP,EAAI8zB,YAAY0qD,EAAY9tE,QAAS,mBAAoB,OAAOvjC,KAAKgiC,QAG1EtwC,KAAKmzG,EAAOjxG,WAIfmB,EAAOq1E,cAAcy6B,EAAOjxG,UAAW,UACnC49G,gBACIv9G,IAAK,SAAS+tC,GACV7wC,KAAKq3G,oBACLr3G,KAAK2wE,QAAQ,wBAAyBltE,KAAMotC,KAEhDqoC,aAAc,QAElBonC,qBACIx9G,IAAK,WAAY9C,KAAK64G,8BACtB3/B,cAAc,GAElBqnC,uBACIz9G,IAAK,SAAS+3G,GAAkB76G,KAAKu2G,sBACrCr9B,cAAc,GAElBhsB,UACIpqD,IAAK,SAASoqD,GACVltD,KAAKggH,qBAET9mC,cAAc,GAElBhD,aACIpzE,IAAK,SAAS+sB,GAAO7vB,KAAKggH,qBAC1B74B,QAAS,MAAO,OAAQ,SAAU,QAClCjO,aAAc,OAElB2pB,iBACI1b,SAAS,GAAO,EAAM,UACtBjO,cAAc,GAElBsnC,mBAAoBtnC,cAAc,GAClCunC,uBAAwBvnC,cAAc,GACtCwnC,0BACI59G,IAAK,SAAS+sB,GAAM7vB,KAAKw/G,4BAA4B3vF,KAEzDylF,iBACIxyG,IAAK,SAAS+sB,GAAO7vB,KAAKg+E,mBAAmBnuD,IAC7C9sB,IAAK,WAAa,MAAO/C,MAAK2gH,cAC9B7nC,YAAY,GAGhB8nC,wBAAyB,WACzBC,wBAAyB,WACzBC,oBAAqB,WACrBC,eAAgB,WAChBxF,eAAgB,WAChBI,gBAAiB,WACjBqF,kBAAmB,WACnBC,YAAa,WACbC,gBAAiB,WACjBC,gBAAiB,WACjBC,gBAAiB,WACjBC,WAAY,WACZC,oBAAqB,WACrBC,SAAU,WACVC,WAAY,WACZC,SAAU,WACVC,SAAU,WACVC,cAAe,WACfC,iBAAkB,WAClBx1D,MAAO,WAEPowB,YAAa,gBACbC,UAAW,gBACXC,YAAa,gBACbC,YAAa,gBACbC,oBAAqB,gBAErB8vB,gBAAiB,UACjBtJ,UAAW,UACXtN,YAAa,UACb+O,UAAW,UACX8H,YAAa,UACbnpB,QAAS,UACT1zD,KAAM,UACNm6E,iBAAkB,UAClB4X,UAAW,UACXl/G,KAAM,YAGV/C,EAAQ8zG,OAASA,IAGjBznD,IAAInsD,OAAO,mBAAmB,UAAU,UAAU,UAAW,SAAS+uD,EAAUjvD,EAASC,GACzF,YACA,IAAIiiH,GAAc,WACd9hH,KAAKyiG,UAGT,WA6DI,QAASsf,GAAgBptF,GACrB,OACIsP,OAAQtP,EAAMsP,OACd+F,MAAOrV,EAAMqV,MACbC,IAAKtV,EAAMsV,IACX+P,MAA6B,GAAtBrlB,EAAMqlB,MAAM93C,OAAc,KAAOyyB,EAAMqlB,MAC9CroB,KAA4B,GAAtBgD,EAAMqlB,MAAM93C,OAAcyyB,EAAMqlB,MAAM,GAAK,MAIzD,QAASgoE,GAAkBrtF,GACvB,OACIsP,OAAQtP,EAAMsP,OACd+F,MAAOrV,EAAMqV,MACbC,IAAKtV,EAAMsV,IACX+P,MAAOrlB,EAAMqlB,QAAUrlB,EAAMhD,OAIrC,QAASswF,GAAkBC,EAAeC,GAEtC,IAAK,GADDC,GAAgB,GAAI51G,OAAM01G,EAAchgH,QACnC6C,EAAI,EAAGA,EAAIm9G,EAAchgH,OAAQ6C,IAAK,CAI3C,IAAK,GAHDs9G,GAAeH,EAAcn9G,GAC7Bu9G,GAAiBtpG,MAAOqpG,EAAarpG,MAAOk+E,OAAQ,GAAI1qF,OAAM61G,EAAangH,SAEtEypB,EAAI,EAAGA,EAAI02F,EAAanrB,OAAOh1F,OAAQypB,IAAK,CACjD,GAAI42F,GAAYF,EAAanrB,OAAOvrE,EACpC22F,GAAaprB,OAAOvrE,GAAKw2F,EAAmBI,GAGhDH,EAAcr9G,GAAKu9G,EAEvB,MAAOF,GA5FXpiH,KAAK4iG,QAAU,SAAS/hG,GACpB,GAAI2hH,GAAY3hH,EAAQytB,KAAK,EAC7BtuB,MAAKyiH,KAAQ5hH,EAAQytB,KAAK,GACtBztB,EAAQknF,OAAS/nF,KAAK0iH,YACtB1iH,KAAK2iH,eACLH,EAAYxiH,KAAK4iH,WAAWxiG,MAAMhH,OAAOopG,IAE7CxiH,KAAK4iH,WAAW1pG,KAAKspG,GACrBxiH,KAAK6iH,cACD7iH,KAAK2iH,aAAe,IACpB3iH,KAAK2iH,aAAeG,KAExB9iH,KAAK2iH,gBAET3iH,KAAKqoC,KAAO,SAASy+D,GACjB,GAAI0b,GAAYxiH,KAAK4iH,WAAWxiG,MAC5B2iG,EAAqB,IAOzB,OANIP,KACAO,EAAqB/iH,KAAKyiH,KAAK5b,YAAY2b,EAAW1b,GACtD9mG,KAAK6iH,WAAW3pG,KAAKspG,GACrBxiH,KAAK2iH,gBAGFI,GAEX/iH,KAAKuoC,KAAO,SAASu+D,GACjB,GAAI0b,GAAYxiH,KAAK6iH,WAAWziG,MAC5B4iG,EAAqB,IAOzB,OANIR,KACAQ,EACIhjH,KAAKyiH,KAAKvb,YAAYlnG,KAAKijH,mBAAmBT,GAAY1b,GAC9D9mG,KAAK4iH,WAAW1pG,KAAKspG,GACrBxiH,KAAK2iH,gBAEFK,GAEXhjH,KAAKyiG,MAAQ,WACTziG,KAAK4iH,cACL5iH,KAAK6iH,cACL7iH,KAAK2iH,aAAe,GAExB3iH,KAAK0iH,QAAU,WACX,MAAO1iH,MAAK4iH,WAAW1gH,OAAS,GAEpClC,KAAKkjH,QAAU,WACX,MAAOljH,MAAK6iH,WAAW3gH,OAAS,GAEpClC,KAAKmjH,UAAY,WACbnjH,KAAK2iH,aAAe,GAExB3iH,KAAKojH,QAAU,WACX,MAA6B,KAAtBpjH,KAAK2iH,cAEhB3iH,KAAKqjH,iBAAmB,SAASb,GAC7B,MAAOP,GAAkBO,EAAWT,IAExC/hH,KAAKijH,mBAAqB,SAAST,GAC/B,MAAOP,GAAkBO,EAAWR,MAsCzCzhH,KAAKuhH,EAAYr/G,WAEpB7C,EAAQkiH,YAAcA,IAGtB71D,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,SAAS,cAAc,cAAc,eAAe,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GAC7J,YAEA,IAAI6hC,GAAMmtB,EAAS,cACfmJ,EAAMnJ,EAAS,cACf6W,EAAO7W,EAAS,eAChBsoB,EAAetoB,EAAS,wBAAwBsoB,aAEhDmsC,EAAS,SAASC,GAClBvjH,KAAKoyC,QAAU1Q,EAAIyF,cAAc,OACjCnnC,KAAKoyC,QAAQhL,UAAY,6BACzBm8E,EAASpgF,YAAYnjC,KAAKoyC,SAC1BpyC,KAAKk8G,mBAAmBl8G,KAAKwjH,kBAE7BxjH,KAAKyjH,YAAc,EAEnBzjH,KAAKkwE,gBACLlwE,KAAK0jH,mBAAqB1jH,KAAK0jH,mBAAmB9gF,KAAK5iC,MAEvDA,KAAK2jH,YAGT,WAEI3rD,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAKm0G,WAAa,SAASvqC,GACnB5pE,KAAK4pE,SACL5pE,KAAK4pE,QAAQr/B,oBAAoB,SAAUvqC,KAAK0jH,oBACpD1jH,KAAK4pE,QAAUA,EACXA,GACAA,EAAQ/b,GAAG,SAAU7tD,KAAK0jH,qBAGlC1jH,KAAKujG,oBAAsB,SAASl3B,EAAKjlC,GACjCnQ,OAAO71B,SACPA,QAAQC,MAAQD,QAAQC,KAAK,8CACjCrB,KAAK4pE,QAAQ25B,oBAAoBl3B,EAAKjlC,IAG1CpnC,KAAKwjG,uBAAyB,SAASn3B,EAAKjlC,GACpCnQ,OAAO71B,SACPA,QAAQC,MAAQD,QAAQC,KAAK,iDACjCrB,KAAK4pE,QAAQ45B,uBAAuBn3B,EAAKjlC,IAG7CpnC,KAAKskG,eAAiB,SAASC,GAC3BvkG,KAAKkwE,eACL,KAAK,GAAInrE,GAAI,EAAGA,EAAIw/F,EAAYriG,OAAQ6C,IAAK,CACzC,GAAIirE,GAAau0B,EAAYx/F,GACzBsnE,EAAM2D,EAAW3D,IACjBu3C,EAAU5jH,KAAKkwE,aAAa7D,EAC3Bu3C,KACDA,EAAU5jH,KAAKkwE,aAAa7D,IAAQ16C,SAExC,IAAIkyF,GAAW7zC,EAAWr+C,IAC1BkyF,GAAWA,EAAWn+C,EAAKb,WAAWg/C,GAAY7zC,EAAW/lB,MAAQ,IAE7B,IAApC25D,EAAQjyF,KAAK3vB,QAAQ6hH,IACrBD,EAAQjyF,KAAKzY,KAAK2qG,EAEtB,IAAInrG,GAAOs3D,EAAWt3D,IACV,UAARA,EACAkrG,EAAQx8E,UAAY,aACP,WAAR1uB,GAA0C,cAArBkrG,EAAQx8E,UAClCw8E,EAAQx8E,UAAY,eACP,QAAR1uB,GAAoBkrG,EAAQx8E,YACjCw8E,EAAQx8E,UAAY,eAIhCpnC,KAAK0jH,mBAAqB,SAAU/uF,GAChC,GAAK30B,KAAKkwE,aAAahuE,OAAvB,CAEA,GAAI49E,GAAWnrD,EAAMqV,MAAMqiC,IACvB1yD,EAAMgb,EAAMsV,IAAIoiC,IAAMyT,CAC1B,IAAY,IAARnmE,OACG,IAAoB,UAAhBgb,EAAMsP,OACbjkC,KAAKkwE,aAAa16D,OAAOsqE,EAAUnmE,EAAM,EAAG,UACzC,CACH,GAAI2U,GAAO,GAAI9hB,OAAMmN,EAAM,EAC3B2U,GAAK+N,QAAQyjD,EAAU,GACvB9/E,KAAKkwE,aAAa16D,OAAOvE,MAAMjR,KAAKkwE,aAAc5hD,MAI1DtuB,KAAKg5F,OAAS,SAASp1F,GAkBnB,IAjBA,GAAIgmE,GAAU5pE,KAAK4pE,QACfkW,EAAWl8E,EAAOk8E,SAClBC,EAAUzoD,KAAKoP,IAAI9iC,EAAOm8E,QAAUn8E,EAAOkgH,aAC3Cl6C,EAAQwG,YAAc,GACtB0M,EAAOlT,EAAQwyB,gBAAgBtc,GAC/B6mB,EAAY7pB,EAAOA,EAAK9yC,MAAMqiC,IAAM90D,EAAAA,EACpC2lE,EAAcl9E,KAAKwjH,kBAAoB55C,EAAQsT,YAC/C6mC,EAAcn6C,EAAQ82B,aACtBsjB,EAAcp6C,EAAQ+2B,aACtB+L,EAAkB9iC,EAAQq6C,iBAC1BC,EAAiB,EAEjBC,EAAiBv6C,EAAQu6C,gBAAkBnkH,KAAKokH,UAEhDC,EAAO,KACPlwG,GAAS,EACTk4D,EAAMyT,IACG,CAMT,GALIzT,EAAMs6B,IACNt6B,EAAMyQ,EAAK7yC,IAAIoiC,IAAM,EACrByQ,EAAOlT,EAAQwyB,gBAAgB/vB,EAAKyQ,GACpC6pB,EAAY7pB,EAAOA,EAAK9yC,MAAMqiC,IAAM90D,EAAAA,GAEpC80D,EAAM0T,EAAS,CACf,KAAO//E,KAAK2jH,OAAOzhH,OAASiS,EAAQ,GAChCkwG,EAAOrkH,KAAK2jH,OAAOvjG,MACnBpgB,KAAKoyC,QAAQ7P,YAAY8hF,EAAKjyE,QAElC,OAGJiyE,EAAOrkH,KAAK2jH,SAASxvG,GAChBkwG,IACDA,GAAQjyE,QAAS,KAAMkyE,SAAU,KAAMC,WAAY,MACnDF,EAAKjyE,QAAU1Q,EAAIyF,cAAc,OACjCk9E,EAAKC,SAAWp9E,SAAS8K,eAAe,IACxCqyE,EAAKjyE,QAAQjP,YAAYkhF,EAAKC,UAC9BtkH,KAAKoyC,QAAQjP,YAAYkhF,EAAKjyE,SAC9BpyC,KAAK2jH,OAAOxvG,GAASkwG,EAGzB,IAAIj9E,GAAY,kBACZ28E,GAAY13C,KACZjlC,GAAa28E,EAAY13C,IACzB23C,EAAY33C,KACZjlC,GAAa48E,EAAY33C,IACzBrsE,KAAKkwE,aAAa7D,KAClBjlC,GAAapnC,KAAKkwE,aAAa7D,GAAKjlC,WACpCi9E,EAAKjyE,QAAQhL,WAAaA,IAC1Bi9E,EAAKjyE,QAAQhL,UAAYA,EAE7B,IAAIhC,GAASwkC,EAAQmhC,aAAa1+B,GAAOzoE,EAAO2uE,WAAa,IAI7D,IAHIntC,GAAUi/E,EAAKjyE,QAAQvB,MAAMzL,SAC7Bi/E,EAAKjyE,QAAQvB,MAAMzL,OAASA,GAE5B83C,EAAa,CACb,GAAIz8E,GAAIy8E,EAAY7Q,EACX,OAAL5rE,IACAA,EAAIy8E,EAAY7Q,GAAOzC,EAAQ00B,cAAcjyB,IAGrD,GAAI5rE,EAAG,CACE4jH,EAAKE,aACNF,EAAKE,WAAa7iF,EAAIyF,cAAc,QACpCk9E,EAAKjyE,QAAQjP,YAAYkhF,EAAKE,YAElC,IAAIn9E,GAAY,uBAAyB3mC,CAChC,UAALA,GAAgB4rE,GAAOs6B,GAAat6B,EAAMyQ,EAAK7yC,IAAIoiC,IACnDjlC,GAAa,cAEbA,GAAa,YACbi9E,EAAKE,WAAWn9E,WAAaA,IAC7Bi9E,EAAKE,WAAWn9E,UAAYA,EAEhC,IAAIhC,GAASxhC,EAAO2uE,WAAa,IAC7B8xC,GAAKE,WAAW1zE,MAAMzL,QAAUA,IAChCi/E,EAAKE,WAAW1zE,MAAMzL,OAASA,OAE/Bi/E,GAAKE,aACLF,EAAKjyE,QAAQ7P,YAAY8hF,EAAKE,YAC9BF,EAAKE,WAAa,KAI1B,IAAI5yF,GAAOuyF,EAAiBC,EACtBA,EAAehhH,QAAQymE,EAASyC,GAChCA,EAAMqgC,CACR/6E,IAAQ0yF,EAAKC,SAAS7gH,OACtB4gH,EAAKC,SAAS7gH,KAAOkuB,GAEzB06C,IAGJrsE,KAAKoyC,QAAQvB,MAAMzL,OAASxhC,EAAO4gH,UAAY,MAE3CxkH,KAAKykH,aAAe76C,EAAQgzB,gBAC5BsnB,EAAiBt6C,EAAQwG,YAAcs8B,EAE3C,IAAI+W,GAAcU,EACZA,EAAev0C,SAAShG,EAASs6C,EAAgBtgH,GACjDsgH,EAAej3G,WAAW/K,OAAS0B,EAAO6uE,eAE5Cj0B,EAAUx+C,KAAK0kH,UAAY1kH,KAAK2kH,mBACpClB,GAAejlE,EAAQtO,KAAOsO,EAAQpK,SAClBp0C,KAAKyjH,aAAgB15D,MAAM05D,KAC3CzjH,KAAKyjH,YAAcA,EACnBzjH,KAAKoyC,QAAQvB,MAAM7E,MAAQ1U,KAAKstF,KAAK5kH,KAAKyjH,aAAe,KACzDzjH,KAAKuqE,MAAM,oBAAqBk5C,KAIxCzjH,KAAKykH,aAAc,EAEnBzkH,KAAK6kH,kBAAmB,EACxB7kH,KAAKokH,UAAY,GACjBpkH,KAAK8kH,mBAAqB,SAASv4E,GAC/BvsC,KAAKokH,WAAa73E,IACdqjC,SAAU,WAAY,MAAO,IAC7BzsE,QAAS,WAAY,MAAO,MAIpCnD,KAAK+kH,mBAAqB,WACtB,MAAO/kH,MAAK6kH,kBAGhB7kH,KAAKwjH,kBAAmB,EACxBxjH,KAAKk8G,mBAAqB,SAAS3vE,GAC3BA,EACA7K,EAAI2zB,YAAYr1D,KAAKoyC,QAAS,uBAE9B1Q,EAAI4zB,eAAet1D,KAAKoyC,QAAS,uBAErCpyC,KAAKwjH,iBAAmBj3E,EACxBvsC,KAAK0kH,SAAW,MAGpB1kH,KAAKm8G,mBAAqB,WACtB,MAAOn8G,MAAKwjH,kBAGhBxjH,KAAK2kH,gBAAkB,WACnB,IAAK3kH,KAAKoyC,QAAQL,WACd,OAAQ7B,KAAM,EAAGkE,MAAO,EAC5B,IAAIvD,GAAQnP,EAAI00B,cAAcp2D,KAAKoyC,QAAQL,WAI3C,OAHA/xC,MAAK0kH,YACL1kH,KAAK0kH,SAASx0E,KAAO7d,SAASwe,EAAM0a,aAAe,GAAK,EACxDvrD,KAAK0kH,SAAStwE,MAAQ/hB,SAASwe,EAAMm0E,eAAiB,EAC/ChlH,KAAK0kH,UAGhB1kH,KAAKkxE,UAAY,SAASujB,GACtB,GAAIj2C,GAAUx+C,KAAK0kH,UAAY1kH,KAAK2kH,kBAChCh6C,EAAO3qE,KAAKoyC,QAAQnC,uBACxB,OAAIwkD,GAAMvjE,EAAIstB,EAAQtO,KAAOy6B,EAAKz6B,KACvB,UACPlwC,KAAKwjH,kBAAoB/uB,EAAMvjE,EAAIy5C,EAAKv2B,MAAQoK,EAAQpK,MACjD,kBADX,MAIL7zC,KAAK+iH,EAAO7gH,WAEf7C,EAAQ0jH,OAASA,IAIjBr3D,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,SAAS,YAAY,eAAgB,SAAS+uD,EAAUjvD,EAASC,GACpH,YAEA,IAAIg/E,GAAQhwB,EAAS,YAAYgwB,MAC7Bn9C,EAAMmtB,EAAS,cAEfo2D,EAAS,SAAS1B,GAClBvjH,KAAKoyC,QAAU1Q,EAAIyF,cAAc,OACjCnnC,KAAKoyC,QAAQhL,UAAY,6BACzBm8E,EAASpgF,YAAYnjC,KAAKoyC,WAG9B,WA4DI,QAAS8yE,GAAeC,EAAInqE,EAAIoqE,EAAIC,GAChC,OAAQF,EAAK,EAAI,IAAMnqE,EAAK,EAAI,IAAMoqE,EAAK,EAAI,IAAMC,EAAK,EAAI,GA3DlErlH,KAAK0kH,SAAW,EAEhB1kH,KAAKslH,WAAa,SAAS9mE,GACvBx+C,KAAK0kH,SAAWlmE,GAEpBx+C,KAAKm0G,WAAa,SAASvqC,GACvB5pE,KAAK4pE,QAAUA,GAGnB5pE,KAAKulH,WAAa,SAASrhB,GACvBlkG,KAAKkkG,QAAUA,GAGnBlkG,KAAKg5F,OAAS,SAASp1F,GACnB,GAAIA,GAASA,GAAU5D,KAAK4D,MAC5B,IAAKA,EAAL,CAGA5D,KAAK4D,OAASA,CAGd,IAAIqmD,KACJ,KAAK,GAAIzgD,KAAOxJ,MAAKkkG,QAAS,CAC1B,GAAIH,GAAS/jG,KAAKkkG,QAAQ16F,EAE1B,IAAKu6F,EAAO/9D,MAAZ,CAKA,GAAIA,GAAQ+9D,EAAO/9D,MAAM65C,SAASj8E,EAAOk8E,SAAUl8E,EAAOm8E,QAC1D,KAAI/5C,EAAM+/B,UAGV,GADA//B,EAAQA,EAAMk6C,cAAclgF,KAAK4pE,SAC7Bm6B,EAAOp9B,SAAU,CACjB,GAAIzhC,GAAMllC,KAAKwlH,QAAQx/E,EAAMgE,MAAMqiC,IAAKzoE,GACpCssC,EAAOlwC,KAAK0kH,SAAW1+E,EAAMgE,MAAMsiC,OAAS1oE,EAAO6uE,cACvDsxB,GAAOp9B,SAAS1c,EAAMjkB,EAAOkK,EAAMhL,EAAKthC,OAClB,YAAfmgG,EAAOrrF,KACd1Y,KAAKylH,mBAAmBx7D,EAAMjkB,EAAO+9D,EAAOlL,MAAOj1F,GAC7B,cAAfmgG,EAAOrrF,KACd1Y,KAAK0lH,qBAAqBz7D,EAAMjkB,EAAO+9D,EAAOlL,MAAOj1F,GAC9CoiC,EAAM2oC,cACM,QAAfo1B,EAAOrrF,KACP1Y,KAAK2lH,eAAe17D,EAAMjkB,EAAO+9D,EAAOlL,MAAOj1F,GAE/C5D,KAAK4lH,oBAAoB37D,EAAMjkB,EAAO+9D,EAAOlL,MAAOj1F,GAExD5D,KAAKk5F,qBAAqBjvC,EAAMjkB,EAAO+9D,EAAOlL,MAAQ,sBAA4Bj1F,OAtBlFmgG,GAAO/K,OAAO/uC,EAAMjqD,KAAMA,KAAK4pE,QAAShmE,GAyBhD5D,KAAKoyC,QAAQgK,UAAY6N,EAAKtmC,KAAK,MAGvC3jB,KAAKwlH,QAAU,SAASn5C,EAAKmG,GACzB,OAAQnG,EAAMmG,EAAYqzC,gBAAkBrzC,EAAYD,YAM5DvyE,KAAK2lH,eAAiB,SAASG,EAAe9/E,EAAO6yD,EAAOrmB,EAAauzC,GASrE,IARA,GAAIn8C,GAAU5pE,KAAK4pE,QACf5/B,EAAQhE,EAAMgE,MAAMqiC,IACpBpiC,EAAMjE,EAAMiE,IAAIoiC,IAChBA,EAAMriC,EACNqF,EAAO,EACPD,EAAO,EACPzgB,EAAOi7C,EAAQshC,uBAAuB7+B,GACtC25C,EAAY,GAAInnC,GAAMxS,EAAKrmC,EAAMgE,MAAMsiC,OAAQD,EAAKj9B,GACjDi9B,GAAOpiC,EAAKoiC,IACf25C,EAAUh8E,MAAMqiC,IAAM25C,EAAU/7E,IAAIoiC,IAAMA,EAC1C25C,EAAUh8E,MAAMsiC,OAASD,GAAOriC,EAAQhE,EAAMgE,MAAMsiC,OAAS1C,EAAQqhC,iBAAiB5+B,GACtF25C,EAAU/7E,IAAIqiC,OAAS39C,EACvB0gB,EAAOD,EACPA,EAAOzgB,EACPA,EAAO09C,EAAM,EAAIpiC,EAAM2/B,EAAQshC,uBAAuB7+B,EAAM,GAAKA,GAAOpiC,EAAM,EAAIjE,EAAMiE,IAAIqiC,OAC5FtsE,KAAKk5F,qBAAqB4sB,EAAeE,EACrCntB,GAASxsB,GAAOriC,EAAS,aAAe,IAAM,UACxCk7E,EAAe74C,GAAOriC,GAASqiC,GAAOriC,EAAQ,GAAKhE,EAAMgE,MAAMsiC,OAAQj9B,EAAOD,EAAMA,EAAOzgB,EAAM09C,GAAOpiC,GAC9GuoC,EAAanG,GAAOpiC,EAAM,EAAI,EAAG87E,IAG7C/lH,KAAK4lH,oBAAsB,SAASE,EAAe9/E,EAAO6yD,EAAOj1F,EAAQmiH,GACrE,GAAIvnE,GAAUx+C,KAAK0kH,SACft/E,EAASxhC,EAAO2uE,WAChBrtC,EAAMllC,KAAKwlH,QAAQx/E,EAAMgE,MAAMqiC,IAAKzoE,GACpCssC,EAAOsO,EAAUxY,EAAMgE,MAAMsiC,OAAS1oE,EAAO6uE,cACjDszC,GAAaA,GAAc,GAE3BD,EAAc5sG,KACV,eAAgB2/E,EAAO,8BACvB,UAAWzzD,EAAQ,MACnB,WACA,OAAQF,EAAK,MACb,QAASgL,EAAM,MAAO61E,EAAY,YAEtC7gF,EAAMllC,KAAKwlH,QAAQx/E,EAAMiE,IAAIoiC,IAAKzoE,EAClC,IAAIooC,GAAQhG,EAAMiE,IAAIqiC,OAAS1oE,EAAO6uE,cAUtC,IARAqzC,EAAc5sG,KACV,eAAgB2/E,EAAO,qBACvB,UAAWzzD,EAAQ,MACnB,SAAU4G,EAAO,MACjB,OAAQ9G,EAAK,MACb,QAASsZ,EAAS,MAAOunE,EAAY,eAEzC3gF,GAAUY,EAAMiE,IAAIoiC,IAAMrmC,EAAMgE,MAAMqiC,IAAM,GAAKzoE,EAAO2uE,aAC1C,GAAd,CAEArtC,EAAMllC,KAAKwlH,QAAQx/E,EAAMgE,MAAMqiC,IAAM,EAAGzoE,EAExC,IAAIqiH,IAAejgF,EAAMgE,MAAMsiC,OAAS,EAAI,IAAMtmC,EAAMiE,IAAIqiC,OAAS,EAAI,EAEzEw5C,GAAc5sG,KACV,eAAgB2/E,EAAQotB,EAAc,UAAYA,EAAc,GAAK,YACrE,UAAW7gF,EAAQ,MACnB,WACA,OAAQF,EAAK,MACb,QAASsZ,EAAS,MAAOunE,EAAY,cAG7C/lH,KAAKk5F,qBAAuB,SAAS4sB,EAAe9/E,EAAO6yD,EAAOj1F,EAAQsiH,EAAaH,GACnF,GAAI3gF,GAASxhC,EAAO2uE,WAChBvmC,GAAShG,EAAMiE,IAAIqiC,QAAU45C,GAAe,GAAKlgF,EAAMgE,MAAMsiC,QAAU1oE,EAAO6uE,eAE9EvtC,EAAMllC,KAAKwlH,QAAQx/E,EAAMgE,MAAMqiC,IAAKzoE,GACpCssC,EAAOlwC,KAAK0kH,SAAW1+E,EAAMgE,MAAMsiC,OAAS1oE,EAAO6uE,cAEvDqzC,GAAc5sG,KACV,eAAgB2/E,EAAO,YACvB,UAAWzzD,EAAQ,MACnB,SAAU4G,EAAO,MACjB,OAAQ9G,EAAK,MACb,QAASgL,EAAM,MAAO61E,GAAc,GAAI,aAIhD/lH,KAAKylH,mBAAqB,SAASK,EAAe9/E,EAAO6yD,EAAOj1F,EAAQmiH,GACpE,GAAI7gF,GAAMllC,KAAKwlH,QAAQx/E,EAAMgE,MAAMqiC,IAAKzoE,GACpCwhC,EAASxhC,EAAO2uE,UAChBvsC,GAAMgE,MAAMqiC,KAAOrmC,EAAMiE,IAAIoiC,MAC7BjnC,GAAUplC,KAAKwlH,QAAQx/E,EAAMiE,IAAIoiC,IAAKzoE,GAAUshC,GAEpD4gF,EAAc5sG,KACV,eAAgB2/E,EAAO,YACvB,UAAWzzD,EAAQ,MACnB,OAAQF,EAAK,MACb,kBAAmB6gF,GAAc,GAAI,aAI7C/lH,KAAK0lH,qBAAuB,SAASI,EAAe9/E,EAAO6yD,EAAOj1F,EAAQmiH,GACtE,GAAI7gF,GAAMllC,KAAKwlH,QAAQx/E,EAAMgE,MAAMqiC,IAAKzoE,GACpCwhC,EAASxhC,EAAO2uE,UAEpBuzC,GAAc5sG,KACV,eAAgB2/E,EAAO,YACvB,UAAWzzD,EAAQ,MACnB,OAAQF,EAAK,MACb,kBAAmB6gF,GAAc,GAAI,eAI9CxlH,KAAK0kH,EAAOxiH,WAEf7C,EAAQqlH,OAASA,IAIjBh5D,IAAInsD,OAAO,kBAAkB,UAAU,UAAU,SAAS,cAAc,cAAc,eAAe,oBAAoB,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GAC/K,YAEA,IAAIm4D,GAAMnJ,EAAS,cACfntB,EAAMmtB,EAAS,cACf6W,EAAO7W,EAAS,eAEhBsoB,GADYtoB,EAAS,oBACNA,EAAS,wBAAwBsoB,cAEhDgvC,EAAO,SAAS5C,GAChBvjH,KAAKoyC,QAAU1Q,EAAIyF,cAAc,OACjCnnC,KAAKoyC,QAAQhL,UAAY,2BACzBm8E,EAASpgF,YAAYnjC,KAAKoyC,SAC1BpyC,KAAKomH,eAAiBpmH,KAAKomH,eAAexjF,KAAK5iC,QAGnD,WAEIg4D,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAKqmH,SAAW,IAChBrmH,KAAKsmH,YAAc,IACnBtmH,KAAKumH,cAAgB,IACrBvmH,KAAKwmH,SAAWxmH,KAAKsmH,YACrBtmH,KAAKymH,SAAW,IAChBzmH,KAAK0mH,WAAa,IAClB1mH,KAAK0kH,SAAW,EAEhB1kH,KAAKomH,eAAiB,WAClB,GAAII,GAAqD,MAA1CxmH,KAAK4pE,QAAQ/U,IAAI2gC,sBAC3Bx1F,KAAKsmH,YACLtmH,KAAKumH,aACV,IAAIvmH,KAAKwmH,UAAYA,EAEjB,MADAxmH,MAAKwmH,SAAWA,GACT,GAIfxmH,KAAKslH,WAAa,SAAS9mE,GACvBx+C,KAAK0kH,SAAWlmE,EAChBx+C,KAAKoyC,QAAQvB,MAAM2N,QAAU,KAAOA,EAAU,MAGlDx+C,KAAK2mH,cAAgB,WACjB,MAAO3mH,MAAK4mH,aAAaC,eAAezhF,QAAU,GAGtDplC,KAAKwsG,kBAAoB,WACrB,MAAOxsG,MAAK4mH,aAAaC,eAAe76E,OAAS,GAGrDhsC,KAAKqsG,gBAAkB,SAASya,GAC5B9mH,KAAK4mH,aAAeE,EACpB9mH,KAAK4mH,aAAa/4D,GAAG,sBAAuB,SAASvoD,GACjDtF,KAAK2wE,QAAQ,sBAAuBrrE,IACtCs9B,KAAK5iC,OACPA,KAAK+mH,oBAGT/mH,KAAKgnH,oBAAsB,WACvBhnH,KAAK4mH,aAAaI,uBAEtBhnH,KAAK+mH,iBAAmB,WACpB,MAAO/mH,MAAKinH,sBAAwBjnH,KAAK4mH,aAAaG,oBAE1D/mH,KAAKm0G,WAAa,SAASvqC,GACvB5pE,KAAK4pE,QAAUA,EACXA,GACA5pE,KAAKknH,qBAGblnH,KAAKu7G,gBAAiB,EACtBv7G,KAAKs7G,kBAAoB,SAASC,GAC9B,MAAIv7G,MAAKu7G,gBAAkBA,IAG3Bv7G,KAAKu7G,eAAiBA,EACtBv7G,KAAKknH,qBACE,IAGXlnH,KAAKshH,qBAAsB,EAC3BthH,KAAKy7G,uBAAyB,SAASh9D,GACnC,MAAIz+C,MAAKshH,qBAAuB7iE,IAGhCz+C,KAAKshH,oBAAsB7iE,EAC3Bz+C,KAAKknH,qBACE,IAGXlnH,KAAKmnH,eACLnnH,KAAK22G,gBACL32G,KAAKknH,kBAAoB,WACrB,GAAI1jC,GAAUxjF,KAAK4pE,QAAQ6Z,YAC3BzjF,MAAKwjF,QAAUA,CAEf,KAAK,GADD4jC,GAASpnH,KAAKmnH,aAAe,GACxBpiH,EAAI,EAAGA,EAAIy+E,EAAU,EAAGz+E,IACzB/E,KAAKu7G,eACL6L,EAAOluG,KAAK,iDACNwsD,EAAKxB,aAAalkE,KAAKymH,SAAU1hH,GACjC,WAENqiH,EAAOluG,KAAKwsD,EAAKxB,aAAa,IAAKn/D,GAG3C,IAAI/E,KAAKshH,oBAAqB,CAC1BthH,KAAKqnH,eAAkB,kBACvB,IAAIjgF,GAAY,mBACZkgF,EAAa,GACbC,EAAW,EACf,IAAIvnH,KAAKu7G,eAAgB,CACrBn0E,GAAa,iBACbkgF,EAAa,uBACbC,EAAW,oBACX,IAAIC,GAAe9hD,EAAKxB,aAAalkE,KAAK0mH,WAAY1mH,KAAKwjF,SACvDikC,EAAa/hD,EAAKxB,aAAalkE,KAAKymH,SAAUzmH,KAAKwjF,aAEvD,IAAIgkC,GAAe9hD,EAAKxB,aAAa,IAAKlkE,KAAKwjF,SAC3CikC,EAAaD,CAGrBxnH,MAAKmnH,YAAY,KAAO,gBAAkB//E,EAAYkgF,EAAa,KAAOE,EAAe,UACzFxnH,KAAKmnH,YAAY,MAAQ,gBAAkB//E,EAAYmgF,EAAW,KAAOE,EAAa,YAI9FznH,KAAK44G,YAAc,SAASh1G,EAAQk8E,EAAUC,GACtC//E,KAAK4D,OAAOm8E,SAAWn8E,EAAOm8E,SAC9B//E,KAAK4D,OAAOk8E,UAAYl8E,EAAOk8E,UAC/B9/E,KAAK0nH,YAAY9jH,GAErB5D,KAAK4D,OAASA,CAQd,KAAK,GAND8mC,GAAQpT,KAAKqP,IAAIm5C,EAAUl8E,EAAOk8E,UAClCjiD,EAAOvG,KAAKoP,IAAIq5C,EAASn8E,EAAOm8E,SAEhC4nC,EAAe3nH,KAAKoyC,QAAQzB,WAC5Bi3E,EAAkB,EAEbv7C,EAAMzoE,EAAOk8E,SAAUzT,EAAM3hC,EAAO2hC,IAAO,CAChD,GAAI+W,GAAWpjF,KAAK4pE,QAAQyZ,YAAYhX,EACxC,IAAI+W,EAAU,CACV,GAAIA,EAASqW,YAAY/uD,GAAQ,CAC7BA,EAAQ04C,EAASp5C,MAAMqiC,GACvB,OAEAA,EAAM+W,EAASn5C,IAAIoiC,IAG3Bu7C,IAOJ,IAJA,GAAIv7C,GAAM3hC,EACN04C,EAAWpjF,KAAK4pE,QAAQwyB,gBAAgB/vB,GACxCs6B,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,IAEnC,CAMT,GALI80D,EAAMs6B,IACNt6B,EAAM+W,EAASn5C,IAAIoiC,IAAI,EACvB+W,EAAWpjF,KAAK4pE,QAAQwyB,gBAAgB/vB,EAAK+W,GAC7CujB,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAK90D,EAAAA,GAE3C80D,EAAMxuC,EACN,KAEJ,IAAIgqF,GAAcF,EAAaC,IAC/B,IAAIC,EAAa,CACb,GAAI59D,KACJjqD,MAAK8nH,YACD79D,EAAMoiB,GAAMrsE,KAAK+nH,iBAAkB17C,GAAOs6B,GAAYvjB,GAE1DykC,EAAYh3E,MAAMzL,OAASxhC,EAAO2uE,WAAavyE,KAAK4pE,QAAQmhC,aAAa1+B,GAAO,KAChFw7C,EAAYzrE,UAAY6N,EAAKtmC,KAAK,IAEtC0oD,MAIRrsE,KAAK0nH,YAAc,SAAS9jH,GACxB,GAAIokH,GAAYhoH,KAAK4D,MAGrB,IAFA5D,KAAK4D,OAASA,GAETokH,GAAaA,EAAUjoC,QAAUn8E,EAAOk8E,SACzC,MAAO9/E,MAAKg5F,OAAOp1F,EAEvB,IAAIA,EAAOm8E,QAAUioC,EAAUloC,SAC3B,MAAO9/E,MAAKg5F,OAAOp1F,EAEvB,IAAIwxD,GAAKp1D,KAAKoyC,OACd,IAAI41E,EAAUloC,SAAWl8E,EAAOk8E,SAC5B,IAAK,GAAIzT,GAAIrsE,KAAK4pE,QAAQyyB,kBAAkB2rB,EAAUloC,SAAUl8E,EAAOk8E,SAAW,GAAIzT,EAAI,EAAGA,IACzFjX,EAAG7yB,YAAY6yB,EAAGrjB,WAE1B,IAAIi2E,EAAUjoC,QAAUn8E,EAAOm8E,QAC3B,IAAK,GAAI1T,GAAIrsE,KAAK4pE,QAAQyyB,kBAAkBz4F,EAAOm8E,QAAU,EAAGioC,EAAUjoC,SAAU1T,EAAI,EAAGA,IACvFjX,EAAG7yB,YAAY6yB,EAAG5L,UAE1B,IAAI5lD,EAAOk8E,SAAWkoC,EAAUloC,SAAU,CACtC,GAAI5gD,GAAWl/B,KAAKioH,qBAAqBrkH,EAAQA,EAAOk8E,SAAUkoC,EAAUloC,SAAW,EACnF1qB,GAAGrjB,WACHqjB,EAAGznB,aAAazO,EAAUk2B,EAAGrjB,YAE7BqjB,EAAGjyB,YAAYjE,GAGvB,GAAIt7B,EAAOm8E,QAAUioC,EAAUjoC,QAAS,CACpC,GAAI7gD,GAAWl/B,KAAKioH,qBAAqBrkH,EAAQokH,EAAUjoC,QAAU,EAAGn8E,EAAOm8E,QAC/E3qB,GAAGjyB,YAAYjE,KAIvBl/B,KAAKioH,qBAAuB,SAASrkH,EAAQk8E,EAAUC,GAMnD,IALA,GAAI7gD,GAAWl/B,KAAKoyC,QAAQw1B,cAAcsgD,yBACtC77C,EAAMyT,EACNsD,EAAWpjF,KAAK4pE,QAAQwyB,gBAAgB/vB,GACxCs6B,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,IAEnC,CAMT,GALI80D,EAAMs6B,IACNt6B,EAAM+W,EAASn5C,IAAIoiC,IAAI,EACvB+W,EAAWpjF,KAAK4pE,QAAQwyB,gBAAgB/vB,EAAK+W,GAC7CujB,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,GAE5C80D,EAAM0T,EACN,KAEJ,IAAIn/E,GAAY8gC,EAAIyF,cAAc,OAE9B8iB,IAGJ,IAFAjqD,KAAK8nH,YAAY79D,EAAMoiB,GAAK,EAAOA,GAAOs6B,GAAYvjB,GACtDxiF,EAAUw7C,UAAY6N,EAAKtmC,KAAK,IAC5B3jB,KAAK+nH,iBACLnnH,EAAUwmC,UAAY,iBACtBlI,EAASiE,YAAYviC,GACrBA,EAAUiwC,MAAMzL,OAASxhC,EAAO2uE,WAAavyE,KAAK4pE,QAAQmhC,aAAa1+B,GAAO,SAG9E,MAAMzrE,EAAUmxC,YACZ7S,EAASiE,YAAYviC,EAAUmxC,WAGvCs6B,KAEJ,MAAOntC,IAGXl/B,KAAKg5F,OAAS,SAASp1F,GACnB5D,KAAK4D,OAASA,CASd,KAPA,GAAIqmD,MACA61B,EAAWl8E,EAAOk8E,SAAUC,EAAUn8E,EAAOm8E,QAE7C1T,EAAMyT,EACNsD,EAAWpjF,KAAK4pE,QAAQwyB,gBAAgB/vB,GACxCs6B,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAM90D,EAAAA,IAEnC,CAMT,GALI80D,EAAMs6B,IACNt6B,EAAM+W,EAASn5C,IAAIoiC,IAAI,EACvB+W,EAAWpjF,KAAK4pE,QAAQwyB,gBAAgB/vB,EAAK+W,GAC7CujB,EAAYvjB,EAAWA,EAASp5C,MAAMqiC,IAAK90D,EAAAA,GAE3C80D,EAAM0T,EACN,KAEA//E,MAAK+nH,kBACL99D,EAAK/wC,KAAK,6CAA8CtV,EAAO2uE,WAAWvyE,KAAK4pE,QAAQmhC,aAAa1+B,GAAM,QAE9GrsE,KAAK8nH,YAAY79D,EAAMoiB,GAAK,EAAOA,GAAOs6B,GAAYvjB,GAElDpjF,KAAK+nH,kBACL99D,EAAK/wC,KAAK,UAEdmzD,IAEJrsE,KAAKoyC,QAAQgK,UAAY6N,EAAKtmC,KAAK,KAGvC3jB,KAAKmoH,YACDx2F,MAAQ,EACRy2F,QAAU,EACVC,QAAU,GAGdroH,KAAKsoH,aAAe,SAASxC,EAAehb,EAAclzD,EAAOnuC,GAC7D,GAAIxB,GAAOjI,KAEPuoH,EAAc,SAAS9nH,EAAGoF,EAAGyG,EAAGk8G,EAAQC,GACxC,GAAI5iH,EACA,MAAOoC,GAAKszG,eACN,mDAAqD71C,EAAKxB,aAAaj8D,EAAKy+G,WAAYjmH,EAAEyB,QAAU,UACpGzB,CACH,IAAS,KAALA,EACP,MAAO,OACJ,IAAS,KAALA,EACP,MAAO,OACJ,IAAS,KAALA,EACP,MAAO,OACJ,IAAS,MAALA,EAAW,CAClB,GAAI+iF,GAAUv7E,EAAK2hE,QAAQghC,iBAAiBE,EAAe0d,EAE3D,OADA1d,IAAgBtnB,EAAU,EACnBv7E,EAAKk/G,YAAY3jC,GACrB,GAAS,KAAL/iF,EAAe,CACtB,GAAIioH,GAAazgH,EAAKszG,eAAiB,4CAA8C,UACjFprF,EAAQloB,EAAKszG,eAAiBtzG,EAAKy+G,WAAa,EAEpD,OADA5b,IAAgB,EACT,gBAAkB4d,EAAa,kBACJ,EAA7BzgH,EAAKrE,OAAO6uE,eACb,OAAStiD,EAAQ,UAClB,MAAI7jB,GACA,+DAAiErE,EAAKy+G,WAAa,WAE1F5b,GAAgB,EACT,sCAC2B,EAA7B7iG,EAAKrE,OAAO6uE,eACb,OAAShyE,EAAI,YAIrBuzB,EAASvqB,EAAMsO,QAjCF,yhBAiCsBwwG,EAEvC,IAAKvoH,KAAKmoH,WAAWvwE,EAAMl/B,MAQvBotG,EAAc5sG,KAAK8a,OARW,CAC9B,GAAIuc,GAAU,OAASqH,EAAMl/B,KAAKX,QAAQ,MAAO,SAC7C84B,EAAQ,EACM,SAAd+G,EAAMl/B,OACNm4B,EAAQ,iBAAoB+G,EAAMnuC,MAAMvH,OAASlC,KAAK4D,OAAO6uE,eAAkB,SACnFqzC,EAAc5sG,KAAK,gBAAiBq3B,EAAS,IAAKM,EAAO,IAAK7c,EAAQ,WAK1E,MAAO82E,GAAerhG,EAAMvH,QAGhClC,KAAK2oH,kBAAoB,SAAS7C,EAAer8G,EAAOk9B,GACpD,GAAIiiF,GAAOn/G,EAAMqvB,OAAO94B,KAAKqnH,eAC7B,OAAIuB,IAAQ,GAAKA,GAAQjiF,EACdl9B,EACK,KAAZA,EAAM,IACNm/G,GAAQA,EAAO5oH,KAAKwjF,QACpBsiC,EAAc5sG,KAAKwsD,EAAKxB,aAAalkE,KAAKmnH,YAAY,KAAMyB,EAAK5oH,KAAKwjF,UAC/D/5E,EAAMwuB,OAAO2wF,IACD,MAAZn/G,EAAM,IACbq8G,EAAc5sG,KAAKwsD,EAAKxB,aAAalkE,KAAKmnH,YAAY,MAAOyB,IACtDn/G,EAAMwuB,OAAO2wF,IAEjBn/G,GAGXzJ,KAAK6oH,mBAAqB,SAAS/C,EAAe1+B,EAAQkjB,EAAQwe,GAM9D,IAAK,GALDx5E,GAAQ,EACR7gC,EAAQ,EACRs6G,EAAaze,EAAO,GACpBQ,EAAe,EAEV/lG,EAAI,EAAGA,EAAIqiF,EAAOllF,OAAQ6C,IAAK,CACpC,GAAI6yC,GAAQwvC,EAAOriF,GACf0E,EAAQmuC,EAAMnuC,KAClB,IAAS,GAAL1E,GAAU/E,KAAKshH,oBAAqB,CAGpC,GAFAhyE,EAAQ7lC,EAAMvH,SACduH,EAAQzJ,KAAK2oH,kBAAkB7C,EAAer8G,EAAOs/G,IAEjD,QACJz5E,IAAS7lC,EAAMvH,OAGnB,GAAIotC,EAAQ7lC,EAAMvH,OAAS6mH,EACvBje,EAAe9qG,KAAKsoH,aAAaxC,EAAehb,EAAclzD,EAAOnuC,GACrE6lC,GAAS7lC,EAAMvH,WACZ,CACH,KAAOotC,EAAQ7lC,EAAMvH,QAAU6mH,GAC3Bje,EAAe9qG,KAAKsoH,aAChBxC,EAAehb,EACflzD,EAAOnuC,EAAMoqC,UAAU,EAAGk1E,EAAaz5E,IAE3C7lC,EAAQA,EAAMoqC,UAAUk1E,EAAaz5E,GACrCA,EAAQy5E,EAEHD,GACDhD,EAAc5sG,KAAK,SACf,uCACAlZ,KAAK4D,OAAO2uE,WAAY,QAIhCuzC,EAAc5sG,KAAKwsD,EAAKxB,aAAa,IAAQomC,EAAO35E,SAEpDliB,IACAq8F,EAAe,EACfie,EAAaze,EAAO77F,IAAUkhC,OAAOw4D,SAErB,IAAhB1+F,EAAMvH,SACNotC,GAAS7lC,EAAMvH,OACf4oG,EAAe9qG,KAAKsoH,aAChBxC,EAAehb,EAAclzD,EAAOnuC,OAOxDzJ,KAAKgpH,kBAAoB,SAASlD,EAAe1+B,GAC7C,GAAI0jB,GAAe,EACflzD,EAAQwvC,EAAO,GACf39E,EAAQmuC,EAAMnuC,KACdzJ,MAAKshH,sBACL73G,EAAQzJ,KAAK2oH,kBAAkB7C,EAAer8G,IAC9CA,IACAqhG,EAAe9qG,KAAKsoH,aAAaxC,EAAehb,EAAclzD,EAAOnuC,GACzE,KAAK,GAAI1E,GAAI,EAAGA,EAAIqiF,EAAOllF,OAAQ6C,IAC/B6yC,EAAQwvC,EAAOriF,GACf0E,EAAQmuC,EAAMnuC,MACdqhG,EAAe9qG,KAAKsoH,aAAaxC,EAAehb,EAAclzD,EAAOnuC,IAG7EzJ,KAAK8nH,YAAc,SAAShC,EAAez5C,EAAKy8C,EAAc1lC,GAI1D,GAHKA,GAAwB,GAAZA,IACbA,EAAWpjF,KAAK4pE,QAAQyZ,YAAYhX,IAEpC+W,EACA,GAAIgE,GAASpnF,KAAKipH,mBAAmB58C,EAAK+W,OAE1C,IAAIgE,GAASpnF,KAAK4pE,QAAQwgB,UAAU/d,EAYxC,IATKy8C,GACDhD,EAAc5sG,KACV,uCACIlZ,KAAK4D,OAAO2uE,YACRvyE,KAAK+nH,iBAAmB,EAAG/nH,KAAK4pE,QAAQmhC,aAAa1+B,IACtD,QAIX+a,EAAOllF,OAAQ,CACf,GAAIooG,GAAStqG,KAAK4pE,QAAQ0hC,gBAAgBj/B,EACtCi+B,IAAUA,EAAOpoG,OACjBlC,KAAK6oH,mBAAmB/C,EAAe1+B,EAAQkjB,EAAQwe,GAEvD9oH,KAAKgpH,kBAAkBlD,EAAe1+B,GAG1CpnF,KAAKu7G,iBACDn4B,IACA/W,EAAM+W,EAASn5C,IAAIoiC,KAEvBy5C,EAAc5sG,KACV,iDACAmzD,GAAOrsE,KAAK4pE,QAAQwG,YAAc,EAAIpwE,KAAKqmH,SAAWrmH,KAAKwmH,SAC3D,YAGHsC,GACDhD,EAAc5sG,KAAK,WAG3BlZ,KAAKipH,mBAAqB,SAAS58C,EAAK+W,GAIpC,QAAS8lC,GAAU9hC,EAAQ13B,EAAM31C,GAE7B,IADA,GAAIie,GAAM,EAAG8T,EAAM,EACXA,EAAMs7C,EAAOpvD,GAAKvuB,MAAMvH,OAAUwtD,GAItC,GAHA5jB,GAAOs7C,EAAOpvD,GAAKvuB,MAAMvH,SACzB81B,GAEWovD,EAAOllF,OACd,MAER,IAAI4pC,GAAO4jB,EAAM,CACb,GAAIjmD,GAAQ29E,EAAOpvD,GAAKvuB,MAAMoqC,UAAU6b,EAAO5jB,EAC3CriC,GAAMvH,OAAU6X,EAAK21C,IACrBjmD,EAAQA,EAAMoqC,UAAU,EAAG95B,EAAK21C,IAEpCy5D,EAAajwG,MACTR,KAAM0uE,EAAOpvD,GAAKtf,KAClBjP,MAAOA,IAGXqiC,EAAM4jB,EAAOjmD,EAAMvH,OACnB81B,GAAO,EAGX,KAAO8T,EAAM/xB,GAAMie,EAAMovD,EAAOllF,QAAQ,CACpC,GAAIuH,GAAQ29E,EAAOpvD,GAAKvuB,KACpBA,GAAMvH,OAAS4pC,EAAM/xB,EACrBovG,EAAajwG,MACTR,KAAM0uE,EAAOpvD,GAAKtf,KAClBjP,MAAOA,EAAMoqC,UAAU,EAAG95B,EAAK+xB,KAGnCq9E,EAAajwG,KAAKkuE,EAAOpvD,IAC7B8T,GAAOriC,EAAMvH,OACb81B,GAAO,GApCf,GAAI4xC,GAAU5pE,KAAK4pE,QACfu/C,KAuCA/hC,EAASxd,EAAQwgB,UAAU/d,EAgB/B,OAfA+W,GAAS1wD,KAAK,SAASknE,EAAavtB,EAAKC,EAAQuxB,EAAYlE,GACtC,MAAfC,EACAuvB,EAAajwG,MACTR,KAAM,OACNjP,MAAOmwF,KAGPD,IACAvS,EAASxd,EAAQwgB,UAAU/d,IAE3B+a,EAAOllF,QACPgnH,EAAU9hC,EAAQyW,EAAYvxB,KAEvC8W,EAASn5C,IAAIoiC,IAAKrsE,KAAK4pE,QAAQ0T,QAAQ8F,EAASn5C,IAAIoiC,KAAKnqE,QAErDinH,GAGXnpH,KAAK+nH,eAAiB,WAClB,MAAO/nH,MAAK4pE,QAAQ8+B,kBAGxB1oG,KAAK6C,QAAU,WACX+wE,cAAc5zE,KAAKinH,uBACfjnH,KAAKopH,cACLppH,KAAKopH,aAAa9mF,WAAWC,YAAYviC,KAAKopH,oBAC3CppH,MAAKopH,gBAGjB7oH,KAAK4lH,EAAK1jH,WAEb7C,EAAQumH,KAAOA,IAIfl6D,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,SAAS,eAAgB,SAAS+uD,EAAUjvD,EAASC,GACxG,YAEA,IACIwpH,GADA3nF,EAAMmtB,EAAS,cAGfy6D,EAAS,SAAS/F,GAClBvjH,KAAKoyC,QAAU1Q,EAAIyF,cAAc,OACjCnnC,KAAKoyC,QAAQhL,UAAY,6BACzBm8E,EAASpgF,YAAYnjC,KAAKoyC,aAEZxiC,KAAVy5G,IACAA,IAAU,WAAarpH,MAAKoyC,QAAQvB,QAExC7wC,KAAK4oD,WAAY,EACjB5oD,KAAKogH,YAAa,EAClBpgH,KAAKupH,cAAgB,IACrBvpH,KAAKwpH,gBAAiB,EAEtBxpH,KAAKypH,WACLzpH,KAAKykD,OAASzkD,KAAK0pH,YACnBhoF,EAAI2zB,YAAYr1D,KAAKoyC,QAAS,sBAC9BpyC,KAAK2pH,gBAAkBN,EACjBrpH,KAAK4pH,kBACL5pH,KAAK6pH,gBAAgBjnF,KAAK5iC,QAGpC,WAEIA,KAAK4pH,kBAAoB,SAAS/5F,GAE9B,IAAK,GADD45F,GAAUzpH,KAAKypH,QACV1kH,EAAI0kH,EAAQvnH,OAAQ6C,KACzB0kH,EAAQ1kH,GAAG8rC,MAAM0S,WAAa1zB,EAAM,GAAK,UAEjD7vB,KAAK6pH,eAAiB,SAASh6F,GAE3B,IAAK,GADD45F,GAAUzpH,KAAKypH,QACV1kH,EAAI0kH,EAAQvnH,OAAQ6C,KACzB0kH,EAAQ1kH,GAAG8rC,MAAMk2B,QAAUl3C,EAAM,GAAK,KAI9C7vB,KAAK0kH,SAAW,EAChB1kH,KAAKslH,WAAa,SAAS9mE,GACvBx+C,KAAK0kH,SAAWlmE,GAGpBx+C,KAAKm0G,WAAa,SAASvqC,GACvB5pE,KAAK4pE,QAAUA,GAGnB5pE,KAAK2zE,YAAc,SAASm2C,GACpBA,GAAY9pH,KAAKogH,aACjBpgH,KAAKogH,WAAa0J,EAClB9pH,KAAK+pH,iBAIb/pH,KAAKgqH,iBAAmB,SAAST,GACzBA,GAAiBvpH,KAAKupH,gBACtBvpH,KAAKupH,cAAgBA,EACrBvpH,KAAK+pH,iBAIb/pH,KAAKmgH,kBAAoB,SAASqJ,GAC1BA,GAAkBxpH,KAAKwpH,gBAAmBH,IAC1CrpH,KAAKwpH,eAAiBA,EACtB9nF,EAAI8zB,YAAYx1D,KAAKoyC,QAAS,sBAAuBo3E,GACrDxpH,KAAK2pH,gBAAe,GACpB3pH,KAAK2pH,eAAkB3pH,KAAmB,eAAE4iC,KAAK5iC,MACjDA,KAAK+pH,iBAIb/pH,KAAK0pH,UAAY,WACb,GAAIt0D,GAAK1zB,EAAIyF,cAAc,MAI3B,OAHAiuB,GAAGhuB,UAAY,aACfpnC,KAAKoyC,QAAQjP,YAAYiyB,GACzBp1D,KAAKypH,QAAQvwG,KAAKk8C,GACXA,GAGXp1D,KAAKiqH,aAAe,WAChB,GAAIjqH,KAAKypH,QAAQvnH,OAAS,EAAG,CACzB,GAAIkzD,GAAKp1D,KAAKypH,QAAQrpG,KAEtB,OADAg1C,GAAG9yB,WAAWC,YAAY6yB,GACnBA,IAIfp1D,KAAKw4G,WAAa,WACdx4G,KAAK4oD,WAAY,EACjBlnB,EAAI2zB,YAAYr1D,KAAKoyC,QAAS,sBAC9BpyC,KAAK+pH,gBAGT/pH,KAAKs4G,WAAa,WACdt4G,KAAK4oD,WAAY,EACjBlnB,EAAI4zB,eAAet1D,KAAKoyC,QAAS,sBACjCpyC,KAAK+pH,gBAGT/pH,KAAK+pH,aAAe,WAChB,GAAI/wB,GAASh5F,KAAK2pH,cASlB,IARA/1C,cAAc5zE,KAAKkqH,YACnBrkF,aAAa7lC,KAAKmqH,WACdnqH,KAAKwpH,gBACL9nF,EAAI4zB,eAAet1D,KAAKoyC,QAAS,uBAGrC4mD,GAAO,GAEFh5F,KAAKogH,YAAepgH,KAAKupH,eAAkBvpH,KAAK4oD,UAArD,CAGI5oD,KAAKwpH,gBACLxhH,WAAW,WACP05B,EAAI2zB,YAAYr1D,KAAKoyC,QAAS,wBAChCxP,KAAK5iC,MAGX,IAAIoqH,GAAQ,WACRpqH,KAAKmqH,UAAYniH,WAAW,WACxBgxF,GAAO,IACR,GAAMh5F,KAAKupH,gBAChB3mF,KAAK5iC,KAEPA,MAAKkqH,WAAavkF,YAAY,WAC1BqzD,GAAO,GACPoxB,KACDpqH,KAAKupH,eAERa,MAGJpqH,KAAKqqH,iBAAmB,SAASr+D,EAAUs+D,GACvC,IAAKtqH,KAAK4D,SAAW5D,KAAK4pE,QACtB,OAAQ15B,KAAO,EAAGhL,IAAM,EAEvB8mB,KACDA,EAAWhsD,KAAK4pE,QAAQhoC,UAAUo/C,YACtC,IAAIpnE,GAAM5Z,KAAK4pE,QAAQwW,yBAAyBp0B,EAKhD,QAAQ9b,KAJSlwC,KAAK0kH,SAAW9qG,EAAI0yD,OAAStsE,KAAK4D,OAAO6uE,eAI/BvtC,KAHVtrB,EAAIyyD,KAAOi+C,EAAWtqH,KAAK4D,OAAOiiH,eAAiB,IAChE7lH,KAAK4D,OAAO2uE,aAKpBvyE,KAAKg5F,OAAS,SAASp1F,GACnB5D,KAAK4D,OAASA,CAEd,IAAIwwG,GAAap0G,KAAK4pE,QAAQ2gD,kBAC1BxlH,EAAI,EAAGylH,EAAc,MAEN56G,KAAfwkG,GAAkD,IAAtBA,EAAWlyG,SACvCkyG,IAAe3vD,OAAQ,OAG3B,KAAK,GAAI1/C,GAAI,EAAGS,EAAI4uG,EAAWlyG,OAAQ6C,EAAIS,EAAGT,IAAK,CAC/C,GAAI0lH,GAAWzqH,KAAKqqH,iBAAiBjW,EAAWrvG,GAAG0/C,QAAQ,EAC3D,OAAKgmE,EAASvlF,IAAMthC,EAAOwhC,OAASxhC,EAAOohE,QACtCylD,EAASvlF,IAAM,IAAMngC,EAAI,GAD9B,CAKA,GAAI8rC,IAAS7wC,KAAKypH,QAAQe,MAAkBxqH,KAAK0pH,aAAa74E,KAEzD7wC,MAAK0qH,WAMN1qH,KAAK0qH,WAAW75E,EAAO45E,EAAU7mH,EAAQwwG,EAAWrvG,GAAI/E,KAAK4pE,UAL7D/4B,EAAMX,KAAOu6E,EAASv6E,KAAO,KAC7BW,EAAM3L,IAAMulF,EAASvlF,IAAM,KAC3B2L,EAAM7E,MAAQpoC,EAAO6uE,eAAiB,KACtC5hC,EAAMzL,OAASxhC,EAAO2uE,WAAa,OAK3C,KAAOvyE,KAAKypH,QAAQvnH,OAASsoH,GACzBxqH,KAAKiqH,cAET,IAAI7mB,GAAYpjG,KAAK4pE,QAAQy5B,cAC7BrjG,MAAK2qH,cAAcvnB,GACnBpjG,KAAK+/G,UAAY0K,EACjBzqH,KAAK+pH,gBAGT/pH,KAAK0qH,WAAa,KAElB1qH,KAAK2qH,cAAgB,SAASvnB,GACtBA,GAAapjG,KAAKojG,YAClBpjG,KAAKojG,UAAYA,EACbA,EACA1hE,EAAI2zB,YAAYr1D,KAAKoyC,QAAS,yBAE9B1Q,EAAI4zB,eAAet1D,KAAKoyC,QAAS,2BAI7CpyC,KAAK6C,QAAU,WACX+wE,cAAc5zE,KAAKkqH,YACnBrkF,aAAa7lC,KAAKmqH,cAGvB5pH,KAAK+oH,EAAO7mH,WAEf7C,EAAQ0pH,OAASA,IAIjBr9D,IAAInsD,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAc,cAAc,gBAAgB,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GAC3J,YAEA,IAAIm4D,GAAMnJ,EAAS,aACfntB,EAAMmtB,EAAS,aACf7nB,EAAQ6nB,EAAS,eACjBsoB,EAAetoB,EAAS,uBAAuBsoB,aAE/CyzC,EAAY,SAASl6F,GACrB1wB,KAAKoyC,QAAU1Q,EAAIyF,cAAc,OACjCnnC,KAAKoyC,QAAQhL,UAAY,8BAAgCpnC,KAAK6qH,YAE9D7qH,KAAKu2D,MAAQ70B,EAAIyF,cAAc,OAC/BnnC,KAAKu2D,MAAMnvB,UAAY,sBACvBpnC,KAAKoyC,QAAQjP,YAAYnjC,KAAKu2D,OAE9B7lC,EAAOyS,YAAYnjC,KAAKoyC,SAExBpyC,KAAK8qH,YAAW,GAChB9qH,KAAK+qH,WAAY,EAEjB/jF,EAAMo5B,YAAYpgE,KAAKoyC,QAAS,SAAUpyC,KAAKgrH,SAASpoF,KAAK5iC,OAC7DgnC,EAAMo5B,YAAYpgE,KAAKoyC,QAAS,YAAapL,EAAMO,kBAGvD,WACIywB,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAK8qH,WAAa,SAASliE,GACvB5oD,KAAKoyC,QAAQvB,MAAM4N,QAAUmK,EAAY,GAAK,OAC9C5oD,KAAK4oD,UAAYA,EACjB5oD,KAAKirH,MAAQ,KAElB1qH,KAAKqqH,EAAUnoH,UAClB,IAAIyoH,GAAa,SAASx6F,EAAQi2C,GAC9BikD,EAAUrqH,KAAKP,KAAM0wB,GACrB1wB,KAAKulC,UAAY,EACjBvlC,KAAKylC,aAAe,EACpBkhC,EAASwkD,gBACTnrH,KAAKgsC,MAAQtK,EAAI40B,eAAe5lC,EAAOk3C,eACvC5nE,KAAKu2D,MAAM1lB,MAAM7E,MACjBhsC,KAAKoyC,QAAQvB,MAAM7E,OAAShsC,KAAKgsC,OAAS,IAAM,EAAI,KAGxDgsB,GAAIN,SAASwzD,EAAYN,GAEzB,WAEI5qH,KAAK6qH,YAAc,KACnB7qH,KAAKgrH,SAAW,WACZ,IAAKhrH,KAAK+qH,UAAW,CAEjB,GADA/qH,KAAKulC,UAAYvlC,KAAKoyC,QAAQ7M,UACZ,GAAdvlC,KAAKirH,MAAY,CACjB,GAAI3uF,GAAIt8B,KAAKoyC,QAAQ/M,aAAerlC,KAAKylC,YACzCzlC,MAAKulC,UAAYvlC,KAAKulC,WAAa,EAAIjJ,IAAMt8B,KAAKirH,MAAQ3uF,GAE9Dt8B,KAAKuqE,MAAM,UAAW9mE,KAAMzD,KAAKulC,YAErCvlC,KAAK+qH,WAAY,GAErB/qH,KAAK4vE,SAAW,WACZ,MAAO5vE,MAAK4oD,UAAY5oD,KAAKgsC,MAAQ,GAEzChsC,KAAKorH,UAAY,SAAShmF,GACtBplC,KAAKoyC,QAAQvB,MAAMzL,OAASA,EAAS,MAEzCplC,KAAKqrH,eACLrrH,KAAKsrH,gBAAkB,SAASlmF,GAC5BplC,KAAKylC,aAAeL,EAChBA,EA9DO,OA+DPplC,KAAKirH,MA/DE,MA+DqB7lF,EAC5BA,EAhEO,OAiEc,GAAdplC,KAAKirH,QACZjrH,KAAKirH,MAAQ,GAEjBjrH,KAAKu2D,MAAM1lB,MAAMzL,OAASA,EAAS,MAEvCplC,KAAK4lG,aAAe,SAASrgE,GACrBvlC,KAAKulC,WAAaA,IAClBvlC,KAAK+qH,WAAY,EACjB/qH,KAAKulC,UAAYA,EACjBvlC,KAAKoyC,QAAQ7M,UAAYA,EAAYvlC,KAAKirH,SAInD1qH,KAAK2qH,EAAWzoH,UACnB,IAAI8oH,GAAa,SAAS76F,EAAQi2C,GAC9BikD,EAAUrqH,KAAKP,KAAM0wB,GACrB1wB,KAAKowC,WAAa,EAClBpwC,KAAKolC,OAASuhC,EAASwkD,gBACvBnrH,KAAKu2D,MAAM1lB,MAAMzL,OACjBplC,KAAKoyC,QAAQvB,MAAMzL,QAAUplC,KAAKolC,QAAU,IAAM,EAAI,KAG1D4yB,GAAIN,SAAS6zD,EAAYX,GAEzB,WAEI5qH,KAAK6qH,YAAc,KACnB7qH,KAAKgrH,SAAW,WACPhrH,KAAK+qH,YACN/qH,KAAKowC,WAAapwC,KAAKoyC,QAAQhC,WAC/BpwC,KAAKuqE,MAAM,UAAW9mE,KAAMzD,KAAKowC,cAErCpwC,KAAK+qH,WAAY,GAErB/qH,KAAK2vE,UAAY,WACb,MAAO3vE,MAAK4oD,UAAY5oD,KAAKolC,OAAS,GAE1CplC,KAAKwrH,SAAW,SAASx/E,GACrBhsC,KAAKoyC,QAAQvB,MAAM7E,MAAQA,EAAQ,MAEvChsC,KAAKyrH,cAAgB,SAASz/E,GAC1BhsC,KAAKu2D,MAAM1lB,MAAM7E,MAAQA,EAAQ,MAErChsC,KAAK0rH,eAAiB,SAAS1/E,GAC3BhsC,KAAKu2D,MAAM1lB,MAAM7E,MAAQA,EAAQ,MAErChsC,KAAK+lG,cAAgB,SAAS31D,GACtBpwC,KAAKowC,YAAcA,IACnBpwC,KAAK+qH,WAAY,EACjB/qH,KAAKowC,WAAapwC,KAAKoyC,QAAQhC,WAAaA,KAIrD7vC,KAAKgrH,EAAW9oH,WAGnB7C,EAAQgrH,UAAYM,EACpBtrH,EAAQ+rH,WAAaT,EACrBtrH,EAAQgsH,WAAaL,EAErB3rH,EAAQsrH,WAAaA,EACrBtrH,EAAQ2rH,WAAaA,IAGrBt/D,IAAInsD,OAAO,kBAAkB,UAAU,UAAU,SAAS,iBAAkB,SAAS+uD,EAAUjvD,EAASC,GACxG,YAEA,IAAImnC,GAAQ6nB,EAAS,eAGjBg9D,EAAa,SAASC,EAAUroD,GAChCzjE,KAAK8rH,SAAWA,EAChB9rH,KAAK+rH,SAAU,EACf/rH,KAAKgsH,QAAU,EACfhsH,KAAKi3B,OAASwsC,GAAOxsC,SAGzB,WAGIj3B,KAAKqlE,SAAW,SAAS9jE,GAErB,GADAvB,KAAKgsH,QAAUhsH,KAAKgsH,QAAUzqH,GACzBvB,KAAK+rH,SAAW/rH,KAAKgsH,QAAS,CAC/BhsH,KAAK+rH,SAAU,CACf,IAAItmD,GAAQzlE,IACZgnC,GAAM08B,UAAU,WACZ+B,EAAMsmD,SAAU,CAEhB,KADA,GAAIC,GACGA,EAAUvmD,EAAMumD,SACnBvmD,EAAMumD,QAAU,EAChBvmD,EAAMqmD,SAASE,IAEpBhsH,KAAKi3B,YAIjB12B,KAAKsrH,EAAWppH,WAEnB7C,EAAQisH,WAAaA,IAGrB5/D,IAAInsD,OAAO,0BAA0B,UAAU,UAAU,SAAS,cAAc,cAAc,eAAe,oBAAoB,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GAEvL,GAAIm4D,GAAMnJ,EAAS,cACfntB,EAAMmtB,EAAS,cACf6W,EAAO7W,EAAS,eAChB4Q,EAAY5Q,EAAS,oBACrBsoB,EAAetoB,EAAS,wBAAwBsoB,aAEhD80C,EAAa,EAEbC,EAActsH,EAAQssH,YAAc,SAAS3I,GAC7CvjH,KAAKo1D,GAAK1zB,EAAIyF,cAAc,OAC5BnnC,KAAKmsH,sBAAsBnsH,KAAKo1D,GAAGvkB,OAAO,GAE1C7wC,KAAKosH,MAAQ1qF,EAAIyF,cAAc,OAC/BnnC,KAAKmsH,sBAAsBnsH,KAAKosH,MAAMv7E,OAEtC7wC,KAAKopH,aAAe1nF,EAAIyF,cAAc,OACtCnnC,KAAKmsH,sBAAsBnsH,KAAKopH,aAAav4E,OAG7C7wC,KAAKo1D,GAAGjyB,YAAYnjC,KAAKosH,OACzBpsH,KAAKo1D,GAAGjyB,YAAYnjC,KAAKopH,cACzB7F,EAASpgF,YAAYnjC,KAAKo1D,IAErB62D,GACDjsH,KAAKqsH,sBACTrsH,KAAKopH,aAAahtE,UAAYspB,EAAKxB,aAAa,IAAK+nD,GAErDjsH,KAAK6mH,gBAAkB76E,MAAO,EAAG5G,OAAQ,GACzCplC,KAAKgnH,wBAGT,WAEIhvD,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAK6mH,gBAAkB76E,MAAO,EAAG5G,OAAQ,GAEzCplC,KAAKqsH,oBAAsB,WACvB,GAAIj3D,GAAK1zB,EAAIyF,cAAc,MAC3BnnC,MAAKmsH,sBAAsB/2D,EAAGvkB,OAC9BukB,EAAGvkB,MAAM7E,MAAQ,QACjB9E,SAAS8tB,gBAAgB7xB,YAAYiyB,EACrC,IAAI7/B,GAAI6/B,EAAGnlB,wBAAwBjE,KAE/BigF,GADA12F,EAAI,GAAKA,EAAI,EACA,GAEA,IACjB6/B,EAAG9yB,WAAWC,YAAY6yB,IAG9Bp1D,KAAKmsH,sBAAwB,SAASt7E,EAAOv/B,GACzCu/B,EAAM7E,MAAQ6E,EAAMzL,OAAS,OAC7ByL,EAAMX,KAAOW,EAAM3L,IAAM,MACzB2L,EAAM0S,WAAa,SACnB1S,EAAMmb,SAAW,WACjBnb,EAAMy7E,WAAa,MAEf7sD,EAAUnB,KAAO,EACjBztB,EAAM,eAAiB,UAEvBA,EAAM07E,KAAO,UAEjB17E,EAAM1Z,SAAW7lB,EAAS,SAAW,WAGzCtR,KAAKgnH,oBAAsB,WACvB,GAAIhf,GAAOhoG,KAAKwsH,eAChB,IAAIxkB,IAAShoG,KAAK6mH,eAAe76E,QAAUg8D,EAAKh8D,OAAShsC,KAAK6mH,eAAezhF,SAAW4iE,EAAK5iE,QAAS,CAClGplC,KAAKopH,aAAav4E,MAAM47E,WAAa,MACrC,IAAIC,GAAW1sH,KAAKwsH,eACpBxsH,MAAKopH,aAAav4E,MAAM47E,WAAa,GACrCzsH,KAAK6mH,eAAiB7e,EACtBhoG,KAAK2sH,UAAY/qH,OAAOoC,OAAO,MAC/BhE,KAAK4sH,eAAiBF,GAAYA,EAAS1gF,QAAUg8D,EAAKh8D,OAAS0gF,EAAStnF,SAAW4iE,EAAK5iE,OAC5FplC,KAAKuqE,MAAM,uBAAwB9mE,KAAMukG,MAIjDhoG,KAAK+mH,iBAAmB,WACpB,GAAI/mH,KAAKinH,sBACL,MAAOjnH,MAAKinH,qBAChB,IAAIh/G,GAAOjI,IACX,OAAOA,MAAKinH,sBAAwBthF,YAAY,WAC5C19B,EAAK++G,uBACN,MAGPhnH,KAAK6sH,WAAa,SAASh9F,GACnBA,EACA7vB,KAAK+mH,mBACE/mH,KAAKinH,wBACZrzC,cAAc5zE,KAAKinH,uBACnBjnH,KAAKinH,sBAAwB,IAIrCjnH,KAAKwsH,cAAgB,WACjB,GAAmB,KAAfP,EAAmB,CACnB,GAAIthD,GAAO,IACX,KACGA,EAAO3qE,KAAKopH,aAAan5E,wBAC1B,MAAM3qC,GACLqlE,GAAQ3+B,MAAO,EAAG5G,OAAO,GAE5B,GAAI4iE,IACA5iE,OAAQulC,EAAKvlC,OACb4G,MAAO2+B,EAAK3+B,MAAQigF,OAGxB,IAAIjkB,IACA5iE,OAAQplC,KAAKopH,aAAa/jF,aAC1B2G,MAAOhsC,KAAKopH,aAAa78D,YAAc0/D,EAG/C,OAAmB,KAAfjkB,EAAKh8D,OAA+B,IAAhBg8D,EAAK5iE,OAClB,KACJ4iE,GAGXhoG,KAAK8sH,kBAAoB,SAASp7F,GAG9B,MAFA1xB,MAAKosH,MAAMhwE,UAAYspB,EAAKxB,aAAaxyC,EAAIu6F,GAClCjsH,KAAKosH,MAAMn8E,wBACVjE,MAAQigF,GAGxBjsH,KAAKwsG,kBAAoB,SAAS96E,GAC9B,GAAI6D,GAAIv1B,KAAK2sH,UAAUj7F,EAIvB,YAHU9hB,KAAN2lB,IACAA,EAAIv1B,KAAK2sH,UAAUj7F,GAAM1xB,KAAK8sH,kBAAkBp7F,GAAM1xB,KAAK6mH,eAAe76E,OAEvEzW,GAGXv1B,KAAK6C,QAAU,WACX+wE,cAAc5zE,KAAKinH,uBACfjnH,KAAKo1D,IAAMp1D,KAAKo1D,GAAG9yB,YACnBtiC,KAAKo1D,GAAG9yB,WAAWC,YAAYviC,KAAKo1D,OAG7C70D,KAAK2rH,EAAYzpH,aAIpBwpD,IAAInsD,OAAO,wBAAwB,UAAU,UAAU,SAAS,cAAc,cAAc,aAAa,oBAAoB,mBAAmB,mBAAmB,iBAAiB,mBAAmB,gBAAgB,gBAAgB,iBAAiB,yBAAyB,yBAA0B,SAAS+uD,EAAUjvD,EAASC,GACvU,YAEA,IAAIm4D,GAAMnJ,EAAS,aACfntB,EAAMmtB,EAAS,aACfjrD,EAASirD,EAAS,YAClB4Q,EAAY5Q,EAAS,mBACrBk+D,EAAcl+D,EAAS,kBAAkBy0D,OACzC0J,EAAcn+D,EAAS,kBAAkBo2D,OACzCgI,EAAYp+D,EAAS,gBAAgBs3D,KACrC+G,EAAcr+D,EAAS,kBAAkBy6D,OACzCiC,EAAa18D,EAAS,eAAe08D,WACrCL,EAAar8D,EAAS,eAAeq8D,WACrCW,EAAah9D,EAAS,gBAAgBg9D,WACtCK,EAAcr9D,EAAS,wBAAwBq9D,YAC/C/0C,EAAetoB,EAAS,uBAAuBsoB,YAwXnDz1C,GAAIq0B,gBAvXY,ogZAuXe,iBAE/B,IAAIo3D,GAAkB,SAASvsH,EAAWwrD,GACtC,GAAIqZ,GAAQzlE,IAEZA,MAAKY,UAAYA,GAAa8gC,EAAIyF,cAAc,OAChDnnC,KAAK4mE,uBAAyBnH,EAAUlB,QAExC78B,EAAI2zB,YAAYr1D,KAAKY,UAAW,cAEhCZ,KAAKgtD,SAASZ,GAEdpsD,KAAKqxE,QAAU3vC,EAAIyF,cAAc,OACjCnnC,KAAKqxE,QAAQjqC,UAAY,aACzBpnC,KAAKY,UAAUuiC,YAAYnjC,KAAKqxE,SAEhCrxE,KAAKirE,SAAWvpC,EAAIyF,cAAc,OAClCnnC,KAAKirE,SAAS7jC,UAAY,eAC1BpnC,KAAKY,UAAUuiC,YAAYnjC,KAAKirE,UAEhCjrE,KAAK6iC,QAAUnB,EAAIyF,cAAc,OACjCnnC,KAAK6iC,QAAQuE,UAAY,cACzBpnC,KAAKirE,SAAS9nC,YAAYnjC,KAAK6iC,SAE/B7iC,KAAKgxE,aAAe,GAAI+7C,GAAY/sH,KAAKqxE,SACzCrxE,KAAKgxE,aAAanjB,GAAG,oBAAqB7tD,KAAKotH,eAAexqF,KAAK5iC,OAEnEA,KAAKqtH,YAAc,GAAIL,GAAYhtH,KAAK6iC,QAExC,IAAIyqF,GAAYttH,KAAKutH,WAAa,GAAIN,GAAUjtH,KAAK6iC,QACrD7iC,MAAKwtH,OAASF,EAAUl7E,QAExBpyC,KAAKytH,aAAe,GAAIT,GAAYhtH,KAAK6iC,SAEzC7iC,KAAK0zE,aAAe,GAAIw5C,GAAYltH,KAAK6iC,SACzC7iC,KAAK0tH,cAAe,EACpB1tH,KAAK2tH,UAAW,EAEhB3tH,KAAK4tH,UACL5tH,KAAK07E,WAAa,GAAIwvC,GAAWlrH,KAAKY,UAAWZ,MACjDA,KAAK27E,WAAa,GAAI4vC,GAAWvrH,KAAKY,UAAWZ,MACjDA,KAAK07E,WAAWxzC,iBAAiB,SAAU,SAAS5iC,GAC3CmgE,EAAMooD,kBACPpoD,EAAMmE,QAAQg8B,aAAatgG,EAAE7B,KAAOgiE,EAAMqoD,aAAa5oF,OAE/DllC,KAAK27E,WAAWzzC,iBAAiB,SAAU,SAAS5iC,GAC3CmgE,EAAMooD,kBACPpoD,EAAMmE,QAAQm8B,cAAczgG,EAAE7B,KAAOgiE,EAAMqoD,aAAa59E,QAGhElwC,KAAKulC,UAAY,EACjBvlC,KAAKowC,WAAa,EAElBpwC,KAAKw3G,WACDnrC,IAAM,EACNC,OAAS,GAGbtsE,KAAK4mH,aAAe,GAAIsF,GAAYlsH,KAAKY,WACzCZ,KAAKutH,WAAWlhB,gBAAgBrsG,KAAK4mH,cACrC5mH,KAAKutH,WAAWrlF,iBAAiB,sBAAuB,SAAS5iC,GAC7DmgE,EAAMsoD,sBACNtoD,EAAMgyC,UAAS,EAAMhyC,EAAMg+C,YAAah+C,EAAMuoD,MAAMhiF,MAAOy5B,EAAMuoD,MAAM5oF,QACvEqgC,EAAMkL,QAAQ,sBAAuBrrE,KAGzCtF,KAAKguH,OACDhiF,MAAO,EACP5G,OAAQ,EACR6oF,eAAgB,EAChBC,cAAe,EACfC,QAAQ,GAGZnuH,KAAKwyE,aACDxmC,MAAQ,EACRwS,QAAU,EACVshC,SAAW,EACX+lC,eAAgB,EAChB9lC,QAAU,EACVxN,WAAa,EACbE,eAAiB,EACjB+xC,UAAY,EACZhnE,UAAY,EACZwnB,OAAS,EACT5/B,OAAS,EACT0+E,aAAc,GAGlB9jH,KAAK8tH,cACD59E,KAAM,EACNkE,MAAO,EACPlP,IAAK,EACLI,OAAQ,EACR3xB,EAAG,EACH2oB,EAAG,GAGPt8B,KAAKouH,MAAQ,GAAIvC,GACb7rH,KAAKquH,eAAezrF,KAAK5iC,MACzBA,KAAKY,UAAUgnE,cAAcpQ,aAEjCx3D,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,aAEzBtuH,KAAK+tH,sBACL/tH,KAAKslH,WAAW,GAChB1hH,EAAOu1E,aAAan5E,MACpB4D,EAAO2mE,MAAM,WAAYvqE,QAG7B,WAEIA,KAAKuuH,cAAgB,EACrBvuH,KAAKwuH,cAAgB,EACrBxuH,KAAKyuH,cAAgB,EACrBzuH,KAAK0uH,cAAgB,EACrB1uH,KAAK2uH,aAAe,GACpB3uH,KAAK4uH,YAAc,GACnB5uH,KAAK6uH,YAAc,GACnB7uH,KAAK8uH,mBAAqB,IAC1B9uH,KAAK+uH,oBAAsB,IAC3B/uH,KAAKsuH,YAAc,IACnBtuH,KAAKgvH,gBAAkB,KAEvBh3D,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAK+tH,oBAAsB,WACnB/tH,KAAKutH,WAAWX,gBAAkB5sH,KAAKivH,kBACvCjvH,KAAKivH,gBAAkBjvH,KAAKutH,WAAWX,eACvC5sH,KAAKytE,SAAS,cAAeztE,KAAKivH,kBAGtCjvH,KAAKwyE,YAAYC,eACjBzyE,KAAKyyE,eAAiBzyE,KAAKutH,WAAW/gB,oBACtCxsG,KAAKwyE,YAAYD,WACjBvyE,KAAKuyE,WAAavyE,KAAKutH,WAAW5G,gBAClC3mH,KAAKkvH,sBAETlvH,KAAKm0G,WAAa,SAASvqC,GACnB5pE,KAAK4pE,SACL5pE,KAAK4pE,QAAQ/U,IAAIojB,IAAI,oBAAqBj4E,KAAKmvH,qBAEnDnvH,KAAK4pE,QAAUA,EACXA,GAAW5pE,KAAK8tH,aAAa5oF,KAAO0kC,EAAQi8B,gBAAkB,GAC9Dj8B,EAAQg8B,cAAc5lG,KAAK8tH,aAAa5oF,KAE5CllC,KAAK0zE,aAAaygC,WAAWvqC,GAC7B5pE,KAAKqtH,YAAYlZ,WAAWvqC,GAC5B5pE,KAAKytH,aAAatZ,WAAWvqC,GAC7B5pE,KAAKgxE,aAAamjC,WAAWvqC,GAC7B5pE,KAAKutH,WAAWpZ,WAAWvqC,GACtBA,IAGL5pE,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,aACzBtuH,KAAK4pE,QAAQyiC,gBAAgBrsG,KAAK4mH,cAClC5mH,KAAK07E,WAAWtrC,WAAapwC,KAAK07E,WAAWn2C,UAAY,KAEzDvlC,KAAKmvH,oBAAsBnvH,KAAKmvH,oBAAoBvsF,KAAK5iC,MACzDA,KAAKmvH,sBACLnvH,KAAK4pE,QAAQ/U,IAAIhH,GAAG,oBAAqB7tD,KAAKmvH,uBAElDnvH,KAAK44G,YAAc,SAAS94B,EAAUC,EAASwmB,GAiB3C,OAhBgB32F,KAAZmwE,IACAA,EAAUxoE,EAAAA,GAETvX,KAAKovH,eAOFpvH,KAAKovH,cAActvC,SAAWA,IAC9B9/E,KAAKovH,cAActvC,SAAWA,GAE9B9/E,KAAKovH,cAAcrvC,QAAUA,IAC7B//E,KAAKovH,cAAcrvC,QAAUA,IAVjC//E,KAAKovH,eACDtvC,SAAUA,EACVC,QAASA,GAUb//E,KAAKovH,cAAcrvC,QAAU//E,KAAKwyE,YAAYsN,SAAU,CACxD,IAAIymB,EAGA,MAFAvmG,MAAKovH,cAAcrvC,QAAU//E,KAAKwyE,YAAYuN,QAIlD//E,KAAKovH,cAActvC,SAAW9/E,KAAKwyE,YAAYuN,SAEnD//E,KAAKouH,MAAM/oD,SAASrlE,KAAK2uH,eAG7B3uH,KAAKmvH,oBAAsB,WACvBnvH,KAAKouH,MAAM/oD,SAASrlE,KAAK4uH,aACzB5uH,KAAKutH,WAAWnH,kBAGpBpmH,KAAK22G,gBAAkB,WACnB32G,KAAKouH,MAAM/oD,SAASrlE,KAAK4uH,YAAc5uH,KAAKwuH,eAC5CxuH,KAAKutH,WAAW5W,mBAEpB32G,KAAK85G,WAAa,WACd95G,KAAKouH,MAAM/oD,SAASrlE,KAAK4uH,cAE7B5uH,KAAKs3G,WAAa,SAAS/Q,GACnBA,EACAvmG,KAAKquH,eAAeruH,KAAKsuH,aAAa,GAEtCtuH,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,cAEjCtuH,KAAKqvH,eAAiB,WAClBrvH,KAAKutH,WAAWvG,uBAGpBhnH,KAAKsvH,SAAW,EAChBtvH,KAAKuvH,iBAAmB,WAChBvvH,KAAKouH,MAAMrC,QACX/rH,KAAKguH,MAAMG,QAAS,EAEpBnuH,KAAKy3G,YAEbz3G,KAAKy3G,SAAW,SAASlR,EAAOkd,EAAaz3E,EAAO5G,GAChD,KAAIplC,KAAKwvH,SAAW,GAApB,CAESxvH,KAAKwvH,SAAW,EACrBxvH,KAAKwvH,WAELxvH,KAAKwvH,SAAWjpB,EAAQ,EAAI,CAChC,IAAInxC,GAAKp1D,KAAKY,SACTwkC,KACDA,EAASgwB,EAAG/vB,cAAgB+vB,EAAG3vB,cAC9BuG,IACDA,EAAQopB,EAAG7I,aAAe6I,EAAGq6D,YACjC,IAAIzD,GAAUhsH,KAAK0vH,kBAAkBnpB,EAAOkd,EAAaz3E,EAAO5G,EAGhE,KAAKplC,KAAKguH,MAAMC,iBAAoBjiF,IAAU5G,EAC1C,MAAOplC,MAAKwvH,SAAW,CAEvBjpB,KACAvmG,KAAKgxE,aAAa0zC,SAAW,MAE7Bne,EACAvmG,KAAKquH,eAAerC,EAAUhsH,KAAKsvH,UAAU,GAE7CtvH,KAAKouH,MAAM/oD,SAAS2mD,EAAUhsH,KAAKsvH,UAEnCtvH,KAAKwvH,WACLxvH,KAAKwvH,SAAW,GACpBxvH,KAAK07E,WAAWtrC,WAAapwC,KAAK07E,WAAWn2C,UAAY,OAG7DvlC,KAAK0vH,kBAAoB,SAASnpB,EAAOkd,EAAaz3E,EAAO5G,GACzDA,GAAWplC,KAAK2vH,cAAgB,CAChC,IAAI3D,GAAU,EACVhkB,EAAOhoG,KAAKguH,MACZ4B,GACA5jF,MAAOg8D,EAAKh8D,MACZ5G,OAAQ4iE,EAAK5iE,OACb6oF,eAAgBjmB,EAAKimB,eACrBC,cAAelmB,EAAKkmB,cAwCxB,OAtCI9oF,KAAWmhE,GAASyB,EAAK5iE,QAAUA,KACnC4iE,EAAK5iE,OAASA,EACd4mF,GAAWhsH,KAAK6uH,YAEhB7mB,EAAKimB,eAAiBjmB,EAAK5iE,OACvBplC,KAAK0tH,eACL1lB,EAAKimB,gBAAkBjuH,KAAK27E,WAAWhM,aAC3C3vE,KAAK07E,WAAWtpC,QAAQvB,MAAMvL,OAAStlC,KAAK27E,WAAWhM,YAAc,KAErEq8C,GAAoBhsH,KAAK0uH,eAGzB1iF,IAAUu6D,GAASyB,EAAKh8D,OAASA,KACjCggF,GAAWhsH,KAAK6uH,YAChB7mB,EAAKh8D,MAAQA,EAEM,MAAfy3E,IACAA,EAAczjH,KAAK6vH,YAAc7vH,KAAKqxE,QAAQ1a,YAAc,GAEhE32D,KAAKyjH,YAAcA,EAEnBzjH,KAAK27E,WAAWvpC,QAAQvB,MAAMX,KAC9BlwC,KAAKirE,SAASp6B,MAAMX,KAAOuzE,EAAc,KACzCzb,EAAKkmB,cAAgB52F,KAAKqP,IAAI,EAAGqF,EAAQy3E,EAAczjH,KAAK07E,WAAW9L,YAEvE5vE,KAAK27E,WAAWvpC,QAAQvB,MAAMuD,MAC9Bp0C,KAAKirE,SAASp6B,MAAMuD,MAAQp0C,KAAK07E,WAAW9L,WAAa;8FACzD5vE,KAAKirE,SAASp6B,MAAMvL,OAAStlC,KAAK27E,WAAWhM,YAAc,MAEvD3vE,KAAK4pE,SAAW5pE,KAAK4pE,QAAQ8+B,kBAAoB1oG,KAAK4oG,mBAAqBrC,KAC3EylB,GAAWhsH,KAAKsuH,cAGxBtmB,EAAKmmB,QAAUniF,IAAU5G,EAErB4mF,GACAhsH,KAAK2wE,QAAQ,SAAUi/C,GAEpB5D,GAGXhsH,KAAKotH,eAAiB,WAClB,GAAI3J,GAAczjH,KAAK6vH,YAAc7vH,KAAKqxE,QAAQ1a,YAAc,CAC5D8sD,IAAezjH,KAAKyjH,cACpBzjH,KAAKsvH,UAAYtvH,KAAK0vH,mBAAkB,EAAMjM,EAAazjH,KAAKguH,MAAMhiF,MAAOhsC,KAAKguH,MAAM5oF,SAExFplC,KAAK4pE,QAAQ8+B,kBAAoB1oG,KAAK4oG,kBACtC5oG,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,aAClBtuH,KAAKguH,MAAMG,OAClBnuH,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,cAEzBtuH,KAAK8vH,sBACL9vH,KAAKouH,MAAM/oD,SAASrlE,KAAKwuH,iBAGjCxuH,KAAK4oG,gBAAkB,WACnB,GAAImnB,GAAiB/vH,KAAKguH,MAAME,cAAgC,EAAhBluH,KAAK0kH,SACjDxtG,EAAQogB,KAAKxC,MAAMi7F,EAAiB/vH,KAAKyyE,eAC7C,OAAOzyE,MAAK4pE,QAAQg/B,gBAAgB1xF,EAAOlX,KAAKgwH,kBAAoBhwH,KAAKiwH,qBAE7EjwH,KAAKm7G,kBAAoB,SAASC,GAC9Bp7G,KAAKu4E,UAAU,iBAAkB6iC,IAErCp7G,KAAKq7G,kBAAoB,WACrB,MAAOr7G,MAAKkwH,iBAEhBlwH,KAAKs7G,kBAAoB,SAASC,GAC9Bv7G,KAAKu4E,UAAU,iBAAkBgjC,IAErCv7G,KAAKw7G,kBAAoB,WACrB,MAAOx7G,MAAK24E,UAAU,mBAE1B34E,KAAK07G,uBAAyB,WAC1B,MAAO17G,MAAK24E,UAAU,wBAG1B34E,KAAKy7G,uBAAyB,SAASh9D,GACnCz+C,KAAKu4E,UAAU,sBAAuB95B,IAE1Cz+C,KAAKmtD,mBAAqB,SAASwuD,GAC/B37G,KAAKu4E,UAAU,kBAAmBojC,IAEtC37G,KAAK47G,mBAAqB,WACtB,MAAO57G,MAAK24E,UAAU,oBAE1B34E,KAAK67G,qBAAuB,SAASF,GACjC37G,KAAKu4E,UAAU,oBAAqBojC,IAExC37G,KAAK87G,qBAAuB,WACxB,MAAO97G,MAAK24E,UAAU,sBAE1B34E,KAAKmwH,cAAgB,WACjB,MAAOnwH,MAAK24E,UAAU,eAE1B34E,KAAKowH,cAAgB,SAAS7jF,GAC1B,MAAOvsC,MAAKu4E,UAAU,aAAchsC,IAGxCvsC,KAAKs8G,mBAAqB,WACtB,MAAOt8G,MAAK24E,UAAU,oBAG1B34E,KAAKo8G,mBAAqB,SAAS7vE,GAC/BvsC,KAAKu4E,UAAU,kBAAmBhsC,IAGtCvsC,KAAK+6G,uBAAyB,SAASF,GACnC76G,KAAKu4E,UAAU,sBAAuBsiC,IAG1C76G,KAAKg7G,uBAAyB,WAC1B,MAAOh7G,MAAK24E,UAAU,wBAG1B34E,KAAKqwH,2BAA6B,WAC9B,GAAIz2G,GAAM5Z,KAAK0zE,aAAaqsC,UACxB36E,EAASplC,KAAKwyE,YAAYD,UAC9B,IAAIvyE,KAAK4pE,QAAQ8+B,iBAAkB,CAC/B,GAAIjkD,GAASzkD,KAAK4pE,QAAQhoC,UAAUo/C,WACpCv8B,GAAO6nB,OAAS,EAChB1yD,EAAM5Z,KAAK0zE,aAAa22C,iBAAiB5lE,GAAQ,GACjDrf,GAAUplC,KAAK4pE,QAAQmhC,aAAatmD,EAAO4nB,KAE/CrsE,KAAKswH,qBAAqBz/E,MAAM3L,IAAMtrB,EAAIsrB,IAAMllC,KAAKwyE,YAAYxN,OAAS,KAC1EhlE,KAAKswH,qBAAqBz/E,MAAMzL,OAASA,EAAS,MAGtDplC,KAAKkvH,mBAAqB,WACtB,GAAKlvH,KAAKgwH,kBAAqBhwH,KAAKuwH,eAApC,CAGA,IAAKvwH,KAAKuwH,eAAgB,CACtB,GAAIC,GAAc9uF,EAAIyF,cAAc,MACpCqpF,GAAYppF,UAAY,mCACxBpnC,KAAKuwH,eAAiB7uF,EAAIyF,cAAc,OACxCnnC,KAAKuwH,eAAenpF,UAAY,mBAChCopF,EAAYrtF,YAAYnjC,KAAKuwH,gBAC7BvwH,KAAK6iC,QAAQ8K,aAAa6iF,EAAaxwH,KAAK6iC,QAAQkP,YAGxD,GAAIlB,GAAQ7wC,KAAKuwH,eAAe1/E,KAChCA,GAAMX,KAASlwC,KAAKyyE,eAAiBzyE,KAAKiwH,mBAAsBjwH,KAAK0kH,SAAY,KACjF7zE,EAAM0S,WAAavjD,KAAKgwH,iBAAmB,UAAY,SAEnDhwH,KAAK4pE,UAAkC,GAAvB5pE,KAAK4pE,QAAQ6iC,OAC7BzsG,KAAK4oG,oBAEb5oG,KAAK2zG,oBAAsB,WACvB,MAAO3zG,MAAKY,WAEhBZ,KAAKw7E,oBAAsB,WACvB,MAAOx7E,MAAKirE,UAEhBjrE,KAAK4zG,qBAAuB,WACxB,MAAO5zG,MAAKY,WAEhBZ,KAAK6mE,sBAAwB,WACzB,GAAK7mE,KAAK4mE,sBAAV,CAEA,GAAIhjE,GAAS5D,KAAKwyE,YACdi+C,EAASzwH,KAAK0zE,aAAaqsC,UAAU76E,IACrCwrF,EAAU1wH,KAAK0zE,aAAaqsC,UAAU7vE,IAC1CugF,IAAU7sH,EAAOohE,MAEjB,IAAIn0B,GAAQ7wC,KAAKssD,SAASzb,MACtBvU,EAAIt8B,KAAKuyE,UACb,IAAIk+C,EAAS,GAAKA,EAAS7sH,EAAOwhC,OAAS9I,EAEvC,YADAuU,EAAM3L,IAAM2L,EAAMX,KAAO,IAI7B,IAAI3a,GAAIv1B,KAAKyyE,cACb,IAAIzyE,KAAK2wH,aAAc,CACnB,GAAI9gG,GAAM7vB,KAAKssD,SAAS7iD,MAAMsO,QAAQ,SAAU,GAChDwd,IAAMv1B,KAAK4pE,QAAQg9B,sBAAsB/2E,GAAK,GAAG,EACjDyM,GAAK,EAETo0F,GAAW1wH,KAAKowC,WACZsgF,EAAU1wH,KAAKguH,MAAME,cAAgB34F,IACrCm7F,EAAU1wH,KAAKguH,MAAME,cAAgB34F,GAEzCm7F,GAAW1wH,KAAKyjH,YAChB5yE,EAAMzL,OAAS9I,EAAI,KACnBuU,EAAM7E,MAAQzW,EAAI,KAClBsb,EAAMX,KAAO5Y,KAAKoP,IAAIgqF,EAAS1wH,KAAKguH,MAAME,cAAgB34F,GAAK,KAC/Dsb,EAAM3L,IAAM5N,KAAKoP,IAAI+pF,EAAQzwH,KAAKguH,MAAM5oF,OAAS9I,GAAK,OAE1Dt8B,KAAK49G,mBAAqB,WACtB,MAAO59G,MAAKwyE,YAAYsN,UAE5B9/E,KAAKg+G,wBAA0B,WAC3B,MAAOh+G,MAAKwyE,YAAYsN,UAAwC,IAA5B9/E,KAAKwyE,YAAYxN,OAAe,EAAI,IAE5EhlE,KAAKi+G,uBAAyB,WAC1B,GAAIr6G,GAAS5D,KAAKwyE,YACduN,EAAUn8E,EAAOm8E,OAErB,OADU//E,MAAK4pE,QAAQ4G,oBAAoBuP,EAAS,GAAKn8E,EAAO2uE,WACtDvyE,KAAK4pE,QAAQi8B,eAAiBjiG,EAAOwhC,OAASxhC,EAAO2uE,WACpDwN,EAAU,EACdA,GAEX//E,KAAK69G,kBAAoB,WACrB,MAAO79G,MAAKwyE,YAAYuN,SAG5B//E,KAAK0kH,SAAW,KAChB1kH,KAAKslH,WAAa,SAAS9mE,GACvBx+C,KAAK0kH,SAAWlmE,EAChBx+C,KAAKutH,WAAWjI,WAAW9mE,GAC3Bx+C,KAAK0zE,aAAa4xC,WAAW9mE,GAC7Bx+C,KAAKytH,aAAanI,WAAW9mE,GAC7Bx+C,KAAKqtH,YAAY/H,WAAW9mE,GAC5Bx+C,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,aACzBtuH,KAAKkvH,sBAGTlvH,KAAK4wH,gBAAkB,SAAS1rF,EAAKI,EAAQ4K,EAAMkE,GAC/C,GAAIy8E,GAAK7wH,KAAK8tH,YACd+C,GAAG3rF,IAAU,EAAJA,EACT2rF,EAAGvrF,OAAgB,EAAPA,EACZurF,EAAGz8E,MAAc,EAANA,EACXy8E,EAAG3gF,KAAY,EAALA,EACV2gF,EAAGl9G,EAAIk9G,EAAG3rF,IAAM2rF,EAAGvrF,OACnBurF,EAAGv0F,EAAIu0F,EAAG3gF,KAAO2gF,EAAGz8E,MAChBy8E,EAAG3rF,KAAOllC,KAAKulC,WAAa,GAAKvlC,KAAK4pE,SACtC5pE,KAAK4pE,QAAQg8B,cAAcirB,EAAG3rF,KAClCllC,KAAKs3G,cAETt3G,KAAK8wH,2BAA6B,WAC9B,MAAO9wH,MAAK+wH,0BAEhB/wH,KAAKgxH,2BAA6B,SAASC,GACvCjxH,KAAKu4E,UAAU,0BAA2B04C,IAE9CjxH,KAAKkxH,2BAA6B,WAC9B,MAAOlxH,MAAKmxH,0BAEhBnxH,KAAKoxH,2BAA6B,SAASH,GACvCjxH,KAAKu4E,UAAU,0BAA2B04C,IAG9CjxH,KAAKqxH,kBAAoB,WACrB,GAAI5rF,GAAezlC,KAAKwyE,YAAYh1B,UAChCywE,EAAiBjuH,KAAKguH,MAAMC,gBAC3BjuH,KAAKk5G,WAAal5G,KAAKsxH,iBACxB7rF,IAAiBwoF,EAAiBjuH,KAAKuyE,YAAcvyE,KAAKsxH,eACtDtxH,KAAKulC,UAAYE,EAAewoF,IAChCxoF,EAAezlC,KAAKulC,UAAY0oF,EAChCjuH,KAAK07E,WAAWn2C,UAAY,OAGpCvlC,KAAK07E,WAAW4vC,gBAAgB7lF,EAAezlC,KAAK8tH,aAAan6G,GACjE3T,KAAK07E,WAAWkqB,aAAa5lG,KAAKulC,UAAYvlC,KAAK8tH,aAAa5oF,MAEpEllC,KAAKuxH,kBAAoB,WACrBvxH,KAAK27E,WAAW+vC,eAAe1rH,KAAKwyE,YAAYxmC,MAAQ,EAAIhsC,KAAK0kH,SAAW1kH,KAAK8tH,aAAaxxF,GAC9Ft8B,KAAK27E,WAAWoqB,cAAc/lG,KAAKowC,WAAapwC,KAAK8tH,aAAa59E,OAGtElwC,KAAKwxH,SAAU,EACfxxH,KAAK4zD,OAAS,WACV5zD,KAAKwxH,SAAU,GAGnBxxH,KAAKyxH,SAAW,WACZzxH,KAAKwxH,SAAU,GAGnBxxH,KAAKquH,eAAiB,SAASrC,EAASzlB,GAKpC,GAJIvmG,KAAKsvH,WACLtD,GAAWhsH,KAAKsvH,SAChBtvH,KAAKsvH,SAAW,IAEdtvH,KAAK4pE,UAAY5pE,KAAKY,UAAU+1D,aAAe32D,KAAKwxH,UAAcxF,IAAYzlB,EAEhF,YADAvmG,KAAKsvH,UAAYtD,EAGrB,IAAIhsH,KAAKguH,MAAMG,OAEX,MADAnuH,MAAKsvH,UAAYtD,EACVhsH,KAAKy3G,UAAS,EAEpBz3G,MAAKuyE,YACNvyE,KAAKutH,WAAWvG,sBAGpBhnH,KAAK2wE,QAAQ,eACb,IAAI/sE,GAAS5D,KAAKwyE,WAClB,IAAIw5C,EAAUhsH,KAAKsuH,aACftC,EAAUhsH,KAAK6uH,aACf7C,EAAUhsH,KAAK4uH,aACf5C,EAAUhsH,KAAK2uH,cACf3C,EAAUhsH,KAAK0uH,eACf1C,EAAUhsH,KAAKgvH,gBACjB,CAEE,GADAhD,GAAWhsH,KAAK8vH,sBACZlsH,EAAOk8E,UAAY9/E,KAAKwyE,YAAYsN,UAAYl8E,EAAOiiH,gBAAkB7lH,KAAKwyE,YAAYqzC,eAAgB,CAC1G,GAAI6L,GAAK1xH,KAAKulC,WAAa3hC,EAAOk8E,SAAW9/E,KAAKwyE,YAAYsN,UAAY9/E,KAAKuyE,UAC3Em/C,GAAK,IACL1xH,KAAKulC,UAAYmsF,EACjB1F,GAAoBhsH,KAAK0uH,cACzB1C,GAAWhsH,KAAK8vH,uBAGxBlsH,EAAS5D,KAAKwyE,YACdxyE,KAAKqxH,oBACDrF,EAAUhsH,KAAKgvH,iBACfhvH,KAAKuxH,oBACTvxH,KAAKgxE,aAAa5+B,QAAQvB,MAAM8gF,WAAc/tH,EAAOohE,OAAU,KAC/DhlE,KAAK6iC,QAAQgO,MAAM8gF,WAAc/tH,EAAOohE,OAAU,KAClDhlE,KAAK6iC,QAAQgO,MAAM7E,MAAQpoC,EAAOooC,MAAQ,EAAIhsC,KAAK0kH,SAAW,KAC9D1kH,KAAK6iC,QAAQgO,MAAMzL,OAASxhC,EAAO4gH,UAAY,KAMnD,MAJIwH,GAAUhsH,KAAKgvH,kBACfhvH,KAAK6iC,QAAQgO,MAAMqV,YAAclmD,KAAKowC,WAAa,KACnDpwC,KAAKirE,SAAS7jC,UAAYpnC,KAAKowC,YAAc,EAAI,eAAiB,gCAElE47E,EAAUhsH,KAAKsuH,aACftuH,KAAKutH,WAAWv0B,OAAOp1F,GACnB5D,KAAK6vH,aACL7vH,KAAKgxE,aAAagoB,OAAOp1F,GAC7B5D,KAAKqtH,YAAYr0B,OAAOp1F,GACxB5D,KAAKytH,aAAaz0B,OAAOp1F,GACzB5D,KAAK0zE,aAAaslB,OAAOp1F,GACzB5D,KAAK6mE,wBACL7mE,KAAK4xH,sBAAwB5xH,KAAKqwH,iCAClCrwH,MAAK2wE,QAAQ,gBAGbq7C,EAAUhsH,KAAK0uH,eACX1C,EAAUhsH,KAAK4uH,aAAe5C,EAAUhsH,KAAK2uH,aAC7C3uH,KAAKutH,WAAWv0B,OAAOp1F,GAEvB5D,KAAKutH,WAAW7F,YAAY9jH,GAE5B5D,KAAK6vH,aACL7vH,KAAKgxE,aAAagoB,OAAOp1F,GAC7B5D,KAAKqtH,YAAYr0B,OAAOp1F,GACxB5D,KAAKytH,aAAaz0B,OAAOp1F,GACzB5D,KAAK0zE,aAAaslB,OAAOp1F,GACzB5D,KAAK4xH,sBAAwB5xH,KAAKqwH,6BAClCrwH,KAAK6mE,4BACL7mE,MAAK2wE,QAAQ,iBAIbq7C,EAAUhsH,KAAK4uH,aACf5uH,KAAKutH,WAAWv0B,OAAOp1F,GACnB5D,KAAK6vH,aACL7vH,KAAKgxE,aAAagoB,OAAOp1F,IAExBooH,EAAUhsH,KAAK2uH,cAChB3uH,KAAK6xH,gBAAmB7F,EAAUhsH,KAAKyuH,eAAkBzuH,KAAK6vH,cAC9D7vH,KAAKgxE,aAAagoB,OAAOp1F,IAExBooH,EAAUhsH,KAAK4uH,aAAe5C,EAAUhsH,KAAKyuH,gBAC9CzuH,KAAK6vH,aACL7vH,KAAKgxE,aAAagoB,OAAOp1F,GAG7BooH,EAAUhsH,KAAKuuH,gBACfvuH,KAAK0zE,aAAaslB,OAAOp1F,GACzB5D,KAAK6mE,wBACL7mE,KAAK4xH,sBAAwB5xH,KAAKqwH,8BAGlCrE,GAAWhsH,KAAKwuH,cAAgBxuH,KAAK+uH,sBACrC/uH,KAAKytH,aAAaz0B,OAAOp1F,GAGzBooH,GAAWhsH,KAAKwuH,cAAgBxuH,KAAK8uH,qBACrC9uH,KAAKqtH,YAAYr0B,OAAOp1F,OAG5B5D,MAAK2wE,QAAQ,iBAIjB3wE,KAAK8xH,UAAY,WACb,GAAI1sF,GAASplC,KAAK4pE,QAAQsiC,kBAAoBlsG,KAAKuyE,WAC/C/0B,EAAYx9C,KAAKk5G,UAAYl5G,KAAKuyE,WAClCw/C,EAAgBz6F,KAAKoP,IAAI8W,EACzBlmB,KAAKqP,KAAK3mC,KAAKm5G,WAAa,GAAKn5G,KAAKuyE,WAAYntC,IAClDplC,KAAK8tH,aAAan6G,GAAK3T,KAAK2vH,cAAgB,EAC5C3vH,MAAK0tH,eACLqE,GAAiB/xH,KAAK27E,WAAWhM,aACjC3vE,KAAKgyH,iBAAmBD,EAAgB/xH,KAAKgyH,kBAC7CD,EAAgB/xH,KAAKgyH,gBACzB,IAAIj/C,GAAU3tC,EAASoY,CAEvB,IAAIu0E,GAAiB/xH,KAAK+xH,eACtB/xH,KAAKguH,MAAM5oF,QAAUplC,KAAK+xH,eAAiBh/C,GAAW/yE,KAAK2tH,SAAU,CACjE56C,GAAW/yE,KAAK2tH,WAChB3tH,KAAK2tH,SAAW56C,EAChB/yE,KAAK07E,WAAWovC,WAAW/3C,GAG/B,IAAIx9C,GAAIv1B,KAAKY,UAAU2rD,WACvBvsD,MAAKY,UAAUiwC,MAAMzL,OAAS2sF,EAAgB,KAC9C/xH,KAAK0vH,mBAAkB,EAAM1vH,KAAKiyH,aAAc18F,EAAGw8F,GACnD/xH,KAAK+xH,cAAgBA,EAErB/xH,KAAK2wE,QAAQ,cAIrB3wE,KAAK8vH,oBAAsB,WACvB,GAAIlmD,GAAU5pE,KAAK4pE,QACfo+B,EAAOhoG,KAAKguH,MAEZkE,EAAiBlqB,EAAK5iE,QAAU,EAAIplC,KAAKuyE,WACzC4/C,EAAcnyH,KAAK4pE,QAAQsiC,kBAC3B1uD,EAAY20E,EAAcnyH,KAAKuyE,WAE/B6/C,EAAcpyH,KAAKqyH,kBAEnBC,GAAeJ,IAAmBlyH,KAAK+wH,0BACvC/oB,EAAKkmB,cAAgBkE,EAAc,EAAIpyH,KAAK0kH,SAAW,GAEvD6N,EAAiBvyH,KAAK0tH,eAAiB4E,CACvCC,KACAvyH,KAAK0tH,aAAe4E,EACpBtyH,KAAK27E,WAAWmvC,WAAWwH,GAE/B,IAAIE,GAAgBxyH,KAAK2tH,QACrB3tH,MAAKk5G,WAAal5G,KAAKuyE,WAAa,GACpCvyE,KAAK8xH,WAET,IAAI9sD,GAAShlE,KAAKulC,UAAYvlC,KAAKuyE,WAC/BiyC,EAAYxc,EAAKimB,eAAiBjuH,KAAKuyE,WAEvCovC,GAAiB3hH,KAAKk5G,WAAal5G,KAAKsxH,gBACrCtpB,EAAKimB,eAAiBjuH,KAAKuyE,YAAcvyE,KAAKsxH,eAC/C,CACN9zE,IAAamkE,CAEb,IAAIkP,GAAK7wH,KAAK8tH,YACd9tH,MAAK4pE,QAAQg8B,aAAatuE,KAAKqP,KAAKkqF,EAAG3rF,IACnC5N,KAAKoP,IAAI1mC,KAAKulC,UAAWiY,EAAYwqD,EAAKimB,eAAiB4C,EAAGvrF,UAElEtlC,KAAK4pE,QAAQm8B,cAAczuE,KAAKqP,KAAKkqF,EAAG3gF,KAAM5Y,KAAKoP,IAAI1mC,KAAKowC,WACxDgiF,EAAc,EAAIpyH,KAAK0kH,SAAW1c,EAAKkmB,cAAgB2C,EAAGz8E,QAE9D,IAAI2+B,IAAWm/C,IAAmBlyH,KAAKmxH,0BACnCnpB,EAAKimB,eAAiBzwE,EAAYmkE,EAAgB,GAAK3hH,KAAKulC,UAAYsrF,EAAG3rF,KAC3EutF,EAAiBD,IAAkBz/C,CACnC0/C,KACAzyH,KAAK2tH,SAAW56C,EAChB/yE,KAAK07E,WAAWovC,WAAW/3C,GAG/B,IAGI8yC,GAAgB6M,EAHhBC,EAAYr7F,KAAKstF,KAAKJ,EAAYxkH,KAAKuyE,YAAc,EACrDuN,EAAWxoD,KAAKqP,IAAI,EAAGrP,KAAKsuB,OAAO5lD,KAAKulC,UAAYy/B,GAAUhlE,KAAKuyE,aACnEwN,EAAUD,EAAW6yC,EAErBpgD,EAAavyE,KAAKuyE,UACtBuN,GAAWlW,EAAQ2hC,oBAAoBzrB,EAAU,EACjD,IAAIsD,GAAWxZ,EAAQyZ,YAAYvD,EAC/BsD,KACAtD,EAAWsD,EAASp5C,MAAMqiC,KAG9Bw5C,EAAiBj8C,EAAQ4G,oBAAoBsP,EAAU,GACvD4yC,EAAiB9oD,EAAQmhC,aAAajrB,GAAYvN,EAElDwN,EAAUzoD,KAAKoP,IAAIkjC,EAAQ2hC,oBAAoBxrB,EAAS,GAAInW,EAAQwG,YAAc,GAClFo0C,EAAYxc,EAAKimB,eAAiBrkD,EAAQmhC,aAAahrB,GAAWxN,EAC1BmgD,EAExC1tD,EAAShlE,KAAKulC,UAAYsgF,EAAiBtzC,CAE3C,IAAIy5C,GAAU,CAyBd,OAxBIhsH,MAAKwyE,YAAYxmC,OAASomF,IAC1BpG,EAAUhsH,KAAKgvH,kBACfuD,GAAkBE,KAClBzG,EAAUhsH,KAAK0vH,mBAAkB,EAAM1vH,KAAKyjH,YAAazb,EAAKh8D,MAAOg8D,EAAK5iE,QAC1EplC,KAAK2wE,QAAQ,8BACT8hD,IACAL,EAAcpyH,KAAKqyH,oBAG3BryH,KAAKwyE,aACDxmC,MAAQomF,EACR5zE,QAAUx+C,KAAK0kH,SACf5kC,SAAWA,EACX+lC,eAAgBA,EAChB9lC,QAAUA,EACVxN,WAAaA,EACbE,eAAiBzyE,KAAKyyE,eACtB+xC,UAAYA,EACZhnE,UAAYA,EACZwnB,OAASA,EACT8+C,aAAevxC,EAAaj7C,KAAKqP,IAAI,EAAGrP,KAAKstF,MAAM5/C,EAASgjC,EAAK5iE,OAAS4iE,EAAKimB,gBAAkB17C,IAAe,EAChHntC,OAASplC,KAAKguH,MAAMC,gBAGjBjC,GAGXhsH,KAAK6xH,aAAe,WAChB,GAAI/xC,GAAW9/E,KAAKovH,cAActvC,SAC9BC,EAAU//E,KAAKovH,cAAcrvC,OACjC//E,MAAKovH,cAAgB,IAErB,IAAI58C,GAAcxyE,KAAKwyE,WAEvB,MAAIsN,EAAWtN,EAAYuN,QAAU,GACjCA,EAAUvN,EAAYsN,UAC1B,MAAIC,KAAYxoE,EAAAA,GACRvX,KAAK6vH,aACL7vH,KAAKgxE,aAAagoB,OAAOxmB,OAC7BxyE,MAAKutH,WAAWv0B,OAAOxmB,KAG3BxyE,KAAKutH,WAAW3U,YAAYpmC,EAAasN,EAAUC,IAC5C,IAGX//E,KAAKqyH,gBAAkB,WACnB,GAAIO,GAAY5yH,KAAK4pE,QAAQq8B,gBAI7B,OAHIjmG,MAAKu7G,iBAAmBv7G,KAAK4pE,QAAQgzB,eACrCg2B,GAAa,GAEVt7F,KAAKqP,IAAI3mC,KAAKguH,MAAME,cAAgB,EAAIluH,KAAK0kH,SAAUptF,KAAKsuB,MAAMgtE,EAAY5yH,KAAKyyE,kBAE9FzyE,KAAK25G,mBAAqB,WACtB35G,KAAKytH,aAAalI,WAAWvlH,KAAK4pE,QAAQu6B,YAAW,IACrDnkG,KAAKouH,MAAM/oD,SAASrlE,KAAK+uH,sBAE7B/uH,KAAK45G,kBAAoB,WACrB55G,KAAKqtH,YAAY9H,WAAWvlH,KAAK4pE,QAAQu6B,cACzCnkG,KAAKouH,MAAM/oD,SAASrlE,KAAK8uH,qBAE7B9uH,KAAKujG,oBAAsB,SAASl3B,EAAKjlC,GACrCpnC,KAAKgxE,aAAauyB,oBAAoBl3B,EAAKjlC,IAE/CpnC,KAAKwjG,uBAAyB,SAASn3B,EAAKjlC,GACxCpnC,KAAKgxE,aAAawyB,uBAAuBn3B,EAAKjlC,IAElDpnC,KAAK65G,kBAAoB,SAAS70B,GAC9BhlF,KAAKouH,MAAM/oD,SAASrlE,KAAKyuH,gBAE7BzuH,KAAKskG,eAAiB,SAASC,GAC3BvkG,KAAKgxE,aAAaszB,eAAeC,GACjCvkG,KAAKouH,MAAM/oD,SAASrlE,KAAKyuH,gBAE7BzuH,KAAK24G,aAAe,WAChB34G,KAAKouH,MAAM/oD,SAASrlE,KAAKuuH,gBAE7BvuH,KAAKw4G,WAAa,WACdx4G,KAAK0zE,aAAa8kC,cAEtBx4G,KAAKs4G,WAAa,WACdt4G,KAAK0zE,aAAa4kC,cAGtBt4G,KAAK80G,wBAA0B,SAAS7oE,EAAQw0C,EAAMzb,GAClDhlE,KAAK6tE,qBAAqB5hC,EAAQ+4B,GAClChlE,KAAK6tE,qBAAqB4S,EAAMzb,IAEpChlE,KAAK6tE,qBAAuB,SAASppB,EAAQugB,EAAQ6tD,GACjD,GAAkC,IAA9B7yH,KAAKguH,MAAMC,eAAf,CAGA,GAAIr0G,GAAM5Z,KAAK0zE,aAAa22C,iBAAiB5lE,GAEzCvU,EAAOt2B,EAAIs2B,KACXhL,EAAMtrB,EAAIsrB,IAEV4tF,EAAYD,GAAeA,EAAY3tF,KAAO,EAC9C6tF,EAAeF,GAAeA,EAAYvtF,QAAU,EAEpDC,EAAYvlC,KAAK6tH,iBAAmB7tH,KAAK4pE,QAAQi8B,eAAiB7lG,KAAKulC,SAEvEA,GAAYutF,EAAY5tF,GACpB8/B,GAAUz/B,EAAYutF,EAAY5tF,EAAMllC,KAAKuyE,aAC7CrtC,GAAO8/B,EAAShlE,KAAKguH,MAAMC,gBACnB,IAAR/oF,IACAA,GAAOllC,KAAK8tH,aAAa5oF,KAC7BllC,KAAK4pE,QAAQg8B,aAAa1gE,IACnBK,EAAYvlC,KAAKguH,MAAMC,eAAiB8E,EAAe7tF,EAAMllC,KAAKuyE,aACrEvN,GAAUz/B,EAAYvlC,KAAKguH,MAAMC,eAAiB8E,EAAe7tF,EAAOllC,KAAKuyE,aAC7ErtC,GAAO8/B,EAAShlE,KAAKguH,MAAMC,gBAC/BjuH,KAAK4pE,QAAQg8B,aAAa1gE,EAAMllC,KAAKuyE,WAAavyE,KAAKguH,MAAMC,gBAGjE,IAAI79E,GAAapwC,KAAKowC,UAElBA,GAAaF,GACTA,EAAOlwC,KAAK0kH,SAAW,EAAI1kH,KAAKwyE,YAAYC,iBAC5CviC,GAAQlwC,KAAK8tH,aAAa59E,MAC9BlwC,KAAK4pE,QAAQm8B,cAAc71D,IACpBE,EAAapwC,KAAKguH,MAAME,cAAgBh+E,EAAOlwC,KAAKyyE,eAC3DzyE,KAAK4pE,QAAQm8B,cAAczuE,KAAKsuB,MAAM1V,EAAOlwC,KAAKyyE,eAAiBzyE,KAAKguH,MAAME,gBACvE99E,GAAcpwC,KAAK0kH,UAAYx0E,EAAOE,EAAapwC,KAAKyyE,gBAC/DzyE,KAAK4pE,QAAQm8B,cAAc,KAGnC/lG,KAAK6lG,aAAe,WAChB,MAAO7lG,MAAK4pE,QAAQi8B,gBAExB7lG,KAAKgmG,cAAgB,WACjB,MAAOhmG,MAAK4pE,QAAQo8B,iBAExBhmG,KAAKo+G,gBAAkB,WACnB,MAAOp+G,MAAKulC,UAAYvlC,KAAKuyE,YAEjCvyE,KAAKm+G,mBAAqB,WACtB,MAAO7mF,MAAKqP,IAAI,EAAGrP,KAAKxC,OAAO90B,KAAKulC,UAAYvlC,KAAKguH,MAAMC,gBAAkBjuH,KAAKuyE,YAAc,IAEpGvyE,KAAKs+G,YAAc,SAASjyC,GACxBrsE,KAAK4pE,QAAQg8B,aAAav5B,EAAMrsE,KAAKuyE,aAGzCvyE,KAAKy+G,YAAc,SAASh6D,EAAQuuE,GACX,gBAAVvuE,KACPA,GAAU4nB,IAAK5nB,EAAQ6nB,OAAQ,GAEnC,IAAI1yD,GAAM5Z,KAAK0zE,aAAa22C,iBAAiB5lE,GACzCnoB,EAAIt8B,KAAKguH,MAAMC,eAAiBjuH,KAAKuyE,WACrCvN,EAASprD,EAAIsrB,IAAM5I,GAAK02F,GAAa,EAGzC,OADAhzH,MAAK4pE,QAAQg8B,aAAa5gC,GACnBA,GAGXhlE,KAAKizH,MAAQ,EACbjzH,KAAKkzH,WAAa,SAASC,EAAWC,GAClC,GAAIruH,GAAI,EACJgB,EAAI/F,KAAKizH,MACTI,IAMJ,KAAKtuH,EAAI,EAAGA,EAAIgB,IAAKhB,EACjBsuH,EAAMn6G,KALE,SAAS3T,EAAG+tH,EAAOC,GAC3B,MAAOA,IAAMj8F,KAAKmmC,IAAIl4D,EAAI,EAAG,GAAK,GAAK+tH,GAIvBvuH,EAAI/E,KAAKizH,MAAOE,EAAWC,EAAUD,GAEzD,OAAOE,IAEXrzH,KAAKu+G,aAAe,SAASzlE,EAAM0lE,EAAQ53E,EAASh/B,GAChD,GAAIgS,GAAM5Z,KAAK0zE,aAAa22C,kBAAkBh+C,IAAKvzB,EAAMwzB,OAAQ,IAC7DtH,EAASprD,EAAIsrB,GACbs5E,KACAx5C,GAAUhlE,KAAKguH,MAAMC,eAAiB,EAE1C,IAAIuF,GAAgBxzH,KAAKulC,SACzBvlC,MAAK4pE,QAAQg8B,aAAa5gC,IACV,IAAZp+B,GACA5mC,KAAK+0G,iBAAiBye,EAAe5rH,IAG7C5H,KAAK+0G,iBAAmB,SAASoe,EAAWvrH,GACxC,GAAIwrH,GAAUpzH,KAAKulC,SACnB,IAAKvlC,KAAKkwH,gBAAV,CAEA,GAAIzqD,GAAQzlE,IAEZ,IAAImzH,GAAaC,EAAjB,CAGA,GAAIpzH,KAAK6tH,iBAAkB,CACvB,GAAI4F,GAAWzzH,KAAK6tH,iBAAiBwF,KACrC,IAAII,EAASvxH,SACTixH,EAAYM,EAAS,KACJL,EACb,OAIZ,GAAIC,GAAQ5tD,EAAMytD,WAAWC,EAAWC,EACxCpzH,MAAK6tH,kBAAoBn+D,KAAMyjE,EAAWp5G,GAAIq5G,EAASC,MAAOA,GAE9Dz/C,cAAc5zE,KAAK0zH,QAEnBjuD,EAAMmE,QAAQg8B,aAAaytB,EAAMl2F,SACjCsoC,EAAMmE,QAAQ+7B,WAAaytB,EAC3BpzH,KAAK0zH,OAAS/tF,YAAY,WAClB0tF,EAAMnxH,QACNujE,EAAMmE,QAAQg8B,aAAaytB,EAAMl2F,SACjCsoC,EAAMmE,QAAQ+7B,WAAaytB,GACT,MAAXA,GACP3tD,EAAMmE,QAAQ+7B,YAAc,EAC5BlgC,EAAMmE,QAAQg8B,aAAawtB,GAC3BA,EAAU,OAEV3tD,EAAMiuD,OAAS9/C,cAAcnO,EAAMiuD,QACnCjuD,EAAMooD,iBAAmB,KACzBjmH,GAAYA,MAEjB,OAEP5H,KAAK84G,UAAY,SAASvzE,GAClBvlC,KAAKulC,YAAcA,IACnBvlC,KAAKouH,MAAM/oD,SAASrlE,KAAK0uH,eACzB1uH,KAAKulC,UAAYA,IAGzBvlC,KAAK+4G,UAAY,SAAS3oE,GAClBpwC,KAAKowC,aAAeA,IACpBpwC,KAAKowC,WAAaA,GACtBpwC,KAAKouH,MAAM/oD,SAASrlE,KAAKgvH,kBAE7BhvH,KAAKqmC,SAAW,SAASnV,EAAG25B,GACxB7qD,KAAK4pE,QAAQg8B,aAAa/6C,GAC1B7qD,KAAK4pE,QAAQm8B,cAAcl7C,IAE/B7qD,KAAKivE,SAAW,SAASnN,EAAQC,GAC7BA,GAAU/hE,KAAK4pE,QAAQg8B,aAAa5lG,KAAK4pE,QAAQi8B,eAAiB9jC,GAClED,GAAU9hE,KAAK4pE,QAAQm8B,cAAc/lG,KAAK4pE,QAAQo8B,gBAAkBlkC,IAExE9hE,KAAK+uE,eAAiB,SAASjN,EAAQC,GACnC,MAAIA,GAAS,GAAK/hE,KAAK4pE,QAAQi8B,gBAAkB,EAAI7lG,KAAK8tH,aAAa5oF,MAEnE68B,EAAS,GAAK/hE,KAAK4pE,QAAQi8B,eAAiB7lG,KAAKguH,MAAMC,eACrDjuH,KAAKwyE,YAAYh1B,WAAa,EAAIx9C,KAAK8tH,aAAaxoF,SAEtDw8B,EAAS,GAAK9hE,KAAK4pE,QAAQo8B,iBAAmB,EAAIhmG,KAAK8tH,aAAa59E,OAEpE4xB,EAAS,GAAK9hE,KAAK4pE,QAAQo8B,gBAAkBhmG,KAAKguH,MAAME,cACtDluH,KAAKwyE,YAAYxmC,OAAS,EAAIhsC,KAAK8tH,aAAa15E,WADtD,OAKJp0C,KAAKswE,yBAA2B,SAASp/C,EAAG25B,GACxC,GAAI8oE,GAAY3zH,KAAKirE,SAASh7B,wBAE1B+0B,GAAU9zC,EAAIlxB,KAAKowC,WAAaujF,EAAUzjF,KAAOlwC,KAAK0kH,UAAY1kH,KAAKyyE,eACvEpG,EAAM/0C,KAAKxC,OAAO+1B,EAAI7qD,KAAKulC,UAAYouF,EAAUzuF,KAAOllC,KAAKuyE,YAC7DzmC,EAAMxU,KAAKsuB,MAAMof,EAErB,QAAQqH,IAAKA,EAAKC,OAAQxgC,EAAK4vD,KAAM12B,EAASl5B,EAAM,EAAI,GAAK,IAGjE9rC,KAAKqtE,wBAA0B,SAASn8C,EAAG25B,GACvC,GAAI8oE,GAAY3zH,KAAKirE,SAASh7B,wBAE1BnE,EAAMxU,KAAKsuB,OACV10B,EAAIlxB,KAAKowC,WAAaujF,EAAUzjF,KAAOlwC,KAAK0kH,UAAY1kH,KAAKyyE,gBAG9DpG,GAAOxhB,EAAI7qD,KAAKulC,UAAYouF,EAAUzuF,KAAOllC,KAAKuyE,UAEtD,OAAOvyE,MAAK4pE,QAAQga,yBAAyBvX,EAAK/0C,KAAKqP,IAAImF,EAAK,KAEpE9rC,KAAK4zH,wBAA0B,SAASvnD,EAAKC,GACzC,GAAIqnD,GAAY3zH,KAAKirE,SAASh7B,wBAC1Br2B,EAAM5Z,KAAK4pE,QAAQwW,yBAAyB/T,EAAKC,GAEjDp7C,EAAIlxB,KAAK0kH,SAAWptF,KAAKsuB,MAAMhsC,EAAI0yD,OAAStsE,KAAKyyE,gBACjD5nB,EAAIjxC,EAAIyyD,IAAMrsE,KAAKuyE,UAEvB,QACI9oC,MAAOkqF,EAAUzjF,KAAOhf,EAAIlxB,KAAKowC,WACjCzG,MAAOgqF,EAAUzuF,IAAM2lB,EAAI7qD,KAAKulC,YAGxCvlC,KAAKu4G,eAAiB,WAClB72E,EAAI2zB,YAAYr1D,KAAKY,UAAW,cAEpCZ,KAAKy4G,cAAgB,WACjB/2E,EAAI4zB,eAAet1D,KAAKY,UAAW,cAEvCZ,KAAKy9G,gBAAkB,SAASzxD,GACvBhsD,KAAK2wH,eACN3wH,KAAK2wH,cACDkD,qBAAsB7zH,KAAK4mE,sBAC3B5Q,QAASh2D,KAAKssD,SAASzb,MAAMmlB,UAGrCh2D,KAAK4mE,uBAAwB,EAC7BllC,EAAI2zB,YAAYr1D,KAAKssD,SAAU,mBAC/BtsD,KAAKssD,SAASzb,MAAMmlB,QAAU,GAC9Bh2D,KAAK6mE,yBAET7mE,KAAK09G,mBAAqB,SAAS/rF,GAC/B3xB,KAAK6mE,yBAET7mE,KAAK29G,gBAAkB,WACd39G,KAAK2wH,eAGVjvF,EAAI4zB,eAAet1D,KAAKssD,SAAU,mBAClCtsD,KAAK4mE,sBAAwB5mE,KAAK2wH,aAAakD,qBAC/C7zH,KAAKssD,SAASzb,MAAMmlB,QAAUh2D,KAAK2wH,aAAa36D,QAChDh2D,KAAK2wH,aAAe,OAExB3wH,KAAKgtD,SAAW,SAASZ,EAAOqc,GAY5B,QAAS0S,GAAUt7E,GACf,GAAI4lE,EAAMquD,UAAY1nE,EAClB,MAAOqc,IAAMA,GACjB,KAAK5oE,IAAWA,EAAOk0H,SACnB,KAAM,IAAIhzH,OAAM,wBAA0BqrD,EAAQ,4BACtD1qB,GAAIq0B,gBACAl2D,EAAOm2D,QACPn2D,EAAOk0H,SACPtuD,EAAM7kE,UAAUgnE,eAGhBnC,EAAMrZ,OACN1qB,EAAI4zB,eAAemQ,EAAM7kE,UAAW6kE,EAAMrZ,MAAM2nE,SAEpD,IAAIv1E,GAAU,WAAa3+C,GAASA,EAAO2+C,QACrC,YAAcinB,EAAMrZ,WAAe,EAAIqZ,EAAMi/C,QAC/Cj/C,GAAMi/C,UAAYlmE,GAAWinB,EAAMi/C,UACnCj/C,EAAM6/C,WAAW9mE,GACrBinB,EAAMuuD,OAASn0H,EAAOk0H,SAEtBtuD,EAAMrZ,MAAQvsD,EACd6hC,EAAI2zB,YAAYoQ,EAAM7kE,UAAWf,EAAOk0H,UACxCryF,EAAI8zB,YAAYiQ,EAAM7kE,UAAW,WAAYf,EAAOo0H,QAChDxuD,EAAMuoD,QACNvoD,EAAMuoD,MAAMhiF,MAAQ,EACpBy5B,EAAM8pD,oBAGV9pD,EAAM2R,eAAe,eAAgBhrB,MAAMvsD,IAC3C4oE,GAAMA,IAxCV,GAAIhD,GAAQzlE,IAIZ,IAHAA,KAAK8zH,SAAW1nE,EAChBqZ,EAAM2R,eAAe,eAAehrB,MAAMA,IAErCA,GAAyB,gBAATA,GAIjB+uB,EAAU/uB,OAJ0B,CACpC,GAAI4C,GAAa5C,GAASpsD,KAAK04E,SAAStsB,MAAM8sB,YAC9Ct1E,GAAOo3E,YAAY,QAAShsB,GAAamsB,KAqCjDn7E,KAAK03G,SAAW,WACZ,MAAO13G,MAAK8zH,UAEhB9zH,KAAKytE,SAAW,SAAS58B,EAAO4kB,GAC5B/zB,EAAI8zB,YAAYx1D,KAAKY,UAAWiwC,GAAmB,IAAZ4kB,IAE3Cz1D,KAAKquE,WAAa,SAASx9B,GACvBnP,EAAI4zB,eAAet1D,KAAKY,UAAWiwC,IAGvC7wC,KAAKs1E,eAAiB,SAASzkC,GACvB7wC,KAAKirE,SAASp6B,MAAM4T,QAAU5T,IAC9B7wC,KAAKirE,SAASp6B,MAAM4T,OAAS5T,IAErC7wC,KAAKk0H,eAAiB,SAASh+C,GAC3Bl2E,KAAKirE,SAASp6B,MAAM4T,OAASyxB,GAEjCl2E,KAAK6C,QAAU,WACX7C,KAAKutH,WAAW1qH,UAChB7C,KAAK0zE,aAAa7wE,aAGvBtC,KAAK4sH,EAAgB1qH,WAGxBmB,EAAOq1E,cAAck0C,EAAgB1qH,UAAW,YAC5Cs+G,gBAAiB7nC,cAAc,GAC/BqiC,gBACIz4G,IAAK,SAAS2G,GACNzJ,KAAKutH,WAAWjS,kBAAkB7xG,IAClCzJ,KAAKouH,MAAM/oD,SAASrlE,KAAK4uH,cAEjC11C,cAAc,GAElByiC,iBACI74G,IAAK,WAAa9C,KAAKkvH,sBACvBh2C,cAAc,GAElB8nC,mBACIl+G,IAAK,WAAa9C,KAAKkvH,sBACvBh2C,aAAc,IAElB+nC,aACIn+G,IAAK,SAAS+sB,GACQ,gBAAPA,KACP7vB,KAAKiwH,mBAAqBpgG,GAC9B7vB,KAAKgwH,mBAAqBngG,EAC1B7vB,KAAKkvH,sBAETnsH,IAAK,WACD,MAAO/C,MAAKgwH,kBAAoBhwH,KAAKiwH,qBAG7C5O,YACIv+G,IAAK,SAASypC,GACVvsC,KAAKqxE,QAAQxgC,MAAM4N,QAAUlS,EAAO,QAAU,OAC9CvsC,KAAKouH,MAAM/oD,SAASrlE,KAAKsuH,aACzBtuH,KAAKotH,kBAETl0C,cAAc,GAElBgoC,iBACIp+G,IAAK,SAASypC,GACV7K,EAAI8zB,YAAYx1D,KAAKqxE,QAAS,wBAAyB9kC,IAE3D2sC,cAAc,GAElBioC,iBACIr+G,IAAK,SAASypC,GAAOvsC,KAAKgxE,aAAakrC,mBAAmB3vE,IAC1D2sC,cAAc,GAElBkoC,iBACIt+G,IAAK,SAASypC,GACVvsC,KAAKgxE,aAAa8zC,mBAAmBv4E,GACrCvsC,KAAKouH,MAAM/oD,SAASrlE,KAAKyuH,gBAE7Bv1C,cAAc,GAElBooC,qBACIx+G,IAAK,SAASypC,GACNvsC,KAAKutH,WAAW9R,uBAAuBlvE,IACvCvsC,KAAKouH,MAAM/oD,SAASrlE,KAAK4uH,cAEjC11C,cAAc,GAElB4nC,qBACIh+G,IAAK,SAAS+3G,GACV,IAAK76G,KAAKswH,qBAIN,MAHAtwH,MAAKswH,qBAAuB5uF,EAAIyF,cAAc,OAC9CnnC,KAAKswH,qBAAqBlpF,UAAY,6BACtCpnC,MAAKqxE,QAAQluC,YAAYnjC,KAAKswH,qBAIlCtwH,MAAKswH,qBAAqBz/E,MAAM4N,QAAUo8D,EAAkB,GAAK,OAC7D76G,KAAK0zE,aAAaqsC,WAClB//G,KAAKqwH,8BAEbn3C,cAAc,EACdzvE,OAAO,GAEXm3G,yBACI99G,IAAK,SAAS+sB,GACL7vB,KAAK+wH,0BAA6B/wH,KAAK0tH,cACxC1tH,KAAKouH,MAAM/oD,SAASrlE,KAAK0uH,gBAEjCx1C,cAAc,GAElB2nC,yBACI/9G,IAAK,SAAS+sB,GACL7vB,KAAKmxH,0BAA6BnxH,KAAK2tH,UACxC3tH,KAAKouH,MAAM/oD,SAASrlE,KAAK0uH,gBAEjCx1C,cAAc,GAElBqoC,UACIz+G,IAAK,SAASklG,GACS,gBAARA,KACPA,GAAc,MAClBhoG,KAAKY,UAAUiwC,MAAM0wE,SAAWvZ,EAChChoG,KAAKqvH,kBAETn2C,aAAc,IAElBsoC,YACI1+G,IAAK,SAASS,GACVvD,KAAKY,UAAUiwC,MAAM2wE,WAAaj+G,EAClCvD,KAAKqvH,mBAGb5N,UACI3+G,IAAK,SAAS+sB,GACV7vB,KAAKs3G,eAGboK,UACI5+G,IAAK,SAAS+sB,GACV7vB,KAAKs3G,eAGb6c,gBACIrxH,IAAK,SAAS+sB,GACV7vB,KAAKs3G,cAETp+B,aAAc,GAElByoC,eACI7+G,IAAK,SAAS+sB,GACVA,GAAOA,GAAO,EACV7vB,KAAKsxH,gBAAkBzhG,IAE3B7vB,KAAKsxH,eAAiBzhG,EACtB7vB,KAAKouH,MAAM/oD,SAASrlE,KAAK0uH,iBAE7Bx1C,aAAc,EACdJ,YAAY,GAEhB8oC,kBACI9+G,IAAK,SAAS+sB,GACV7vB,KAAKgxE,aAAayzC,cAAgB50F,EAClC7vB,KAAKouH,MAAM/oD,SAASrlE,KAAKyuH,iBAGjCriE,OACItpD,IAAK,SAAS+sB,GAAO7vB,KAAKgtD,SAASn9B,IACnC9sB,IAAK,WAAa,MAAO/C,MAAK8zH,UAAY9zH,KAAKosD,OAC/C8sB,aAAc,mBACdJ,YAAY,KAIpBl5E,EAAQutH,gBAAkBA,IAG1BlhE,IAAInsD,OAAO,4BAA4B,UAAU,UAAU,SAAS,cAAc,cAAc,wBAAwB,cAAe,SAAS+uD,EAAUjvD,EAASC,GACnK,YAEA,IAAIm4D,GAAMnJ,EAAS,cACf2rB,EAAM3rB,EAAS,cACfsoB,EAAetoB,EAAS,wBAAwBsoB,aAChDvzE,EAASirD,EAAS,aAElBulE,EAAe,SAASC,EAAoBnlE,EAAKolE,EAAWC,GAO5D,GANAv0H,KAAKw0H,gBAAkBx0H,KAAKw0H,gBAAgB5xF,KAAK5iC,MACjDA,KAAKy0H,eAAiBz0H,KAAKy0H,eAAe7xF,KAAK5iC,MAC/CA,KAAK00H,UAAY10H,KAAK00H,UAAU9xF,KAAK5iC,MACjC6uD,EAAS8lE,YAAc9lE,EAAS+lE,QAChC/lE,EAAS+lE,MAAQ/lE,EAAS8lE,WAE1B/wH,EAAOb,IAAI,cAAgB8rD,EAAS+lE,MACpCL,EAAYA,GAAa3wH,EAAO+2E,UAAUzrB,EAAI7uD,GAAI,cAC/C,CACH,GAAIw0H,GAAgB70H,KAAK80H,cACzBP,GAAYA,GAAaM,EAAchmE,EAAS+lE,MAAM,uBAAwB,KAAM,KAEpF,IAAIG,KACJV,GAAmBvyH,QAAQ,SAASstD,GAChC2lE,EAAK3lE,GAAMylE,EAAchmE,EAAS+lE,MAAMxlE,EAAI,KAAM,KAAKr3C,QAAQ,kBAAmB,OAI1F,IACQ,GAAIi9G,GAAY9lE,EAAI4lB,IACxBmgD,EAAO/0H,EAAoB,IAC3Bg1H,EAAO,GAAID,IAAOD,IAAet8G,KAAM,2BACvCy8G,GAAWl+F,OAAOm+F,KAAOn+F,OAAOo+F,WAAWC,gBAAgBJ,EAE/Dl1H,MAAKg4F,QAAU,GAAIu9B,QAAOJ,GAExB,MAAM7vH,GACJ,KAAIA,YAAa2xB,QAAOu+F,cAQpB,KAAMlwH,EAPN,IAAI4vH,GAAOl1H,KAAKy1H,YAAYlB,GACxBa,EAAMn+F,OAAOm+F,KAAOn+F,OAAOo+F,UAC3BK,EAAUN,EAAIE,gBAAgBJ,EAElCl1H,MAAKg4F,QAAU,GAAIu9B,QAAOG,GAC1BN,EAAIO,gBAAgBD,GAK5B11H,KAAKg4F,QAAQz0B,aACTgW,MAAO,EACPw7C,KAAOA,EACPl1H,OAASqvD,EAAI7uD,GACbi0H,UAAYA,IAGhBt0H,KAAK41H,WAAa,EAClB51H,KAAK61H,aAEL71H,KAAKg4F,QAAQ89B,UAAY91H,KAAK00H,YAGlC,WAEI18D,EAAID,UAAU/3D,KAAMm3E,GAEpBn3E,KAAK00H,UAAY,SAASpvH,GACtB,GAAI8yE,GAAM9yE,EAAE7B,IACZ,QAAO20E,EAAI1/D,MACP,IAAK,QACD1Y,KAAK2wE,QAAQyH,EAAI70E,MAAOE,KAAM20E,EAAI30E,MAClC,MACJ,KAAK,OACD,GAAImE,GAAW5H,KAAK61H,UAAUz9C,EAAI/3E,GAC9BuH,KACAA,EAASwwE,EAAI30E,YACNzD,MAAK61H,UAAUz9C,EAAI/3E,IAE9B,MACJ,KAAK,QACDL,KAAKm4E,YAAYC,EAAI30E,KACrB,MACJ,KAAK,MACDwzB,OAAO71B,SAAWA,QAAQkG,KAAOlG,QAAQkG,IAAI2J,MAAM7P,QAASg3E,EAAI30E,QAK5EzD,KAAKm4E,YAAc,SAAS91E,GACxB40B,OAAO71B,SAAWA,QAAQD,OAASC,QAAQD,MAAMkB,IAGrDrC,KAAK80H,eAAiB,SAASh9G,GAC3B,MAAO0iE,GAAItD,WAAWp/D,IAG1B9X,KAAK0lG,UAAY,WACb1lG,KAAK2wE,QAAQ,gBACb3wE,KAAK+1H,WAAa,KAClB/1H,KAAKg4F,QAAQ0N,YACb1lG,KAAKg4F,QAAU,KACXh4F,KAAKyiH,MACLziH,KAAKyiH,KAAKxqC,IAAI,SAAUj4E,KAAKy0H,gBACjCz0H,KAAKyiH,KAAO,MAGhBziH,KAAK62E,KAAO,SAASpe,EAAKnqC,GACtBtuB,KAAKg4F,QAAQz0B,aAAa/K,QAASC,EAAKnqC,KAAMA,KAGlDtuB,KAAKO,KAAO,SAASk4D,EAAKnqC,EAAM1mB,GAC5B,GAAIA,EAAU,CACV,GAAIvH,GAAKL,KAAK41H,YACd51H,MAAK61H,UAAUx1H,GAAMuH,EACrB0mB,EAAKpV,KAAK7Y,GAEdL,KAAK62E,KAAKpe,EAAKnqC,IAGnBtuB,KAAKg2H,KAAO,SAAShvF,EAAOvjC,GACxB,IACIzD,KAAKg4F,QAAQz0B,aAAav8B,MAAOA,EAAOvjC,MAAOA,KAAMA,EAAKA,QAE9D,MAAMwyH,GACF70H,QAAQD,MAAM80H,EAAGn+E,SAIzB93C,KAAKk2H,iBAAmB,SAASrhE,GAC1B70D,KAAKyiH,MACJziH,KAAK0lG,YAET1lG,KAAKyiH,KAAO5tD,EACZ70D,KAAKO,KAAK,YAAas0D,EAAIvxB,aAC3BuxB,EAAIhH,GAAG,SAAU7tD,KAAKy0H,iBAG1Bz0H,KAAKy0H,eAAiB,SAAS9/F,GACtB30B,KAAK+1H,aACN/1H,KAAK+1H,cACL/tH,WAAWhI,KAAKw0H,gBAAiB,IAEjB,UAAhB7/F,EAAMsP,OACNjkC,KAAK+1H,WAAW78G,KAAKyb,EAAMqV,MAAOrV,EAAMqlB,OAExCh6C,KAAK+1H,WAAW78G,KAAKyb,EAAMqV,MAAOrV,EAAMsV,MAGhDjqC,KAAKw0H,gBAAkB,WACnB,GAAIp+F,GAAIp2B,KAAK+1H,UACR3/F,KACLp2B,KAAK+1H,WAAa,KACd3/F,EAAEl0B,OAAS,IAAMk0B,EAAEl0B,OAASlC,KAAKyiH,KAAKryC,aAAe,EACrDpwE,KAAKO,KAAK,YAAaP,KAAKyiH,KAAKn/E,aAEjCtjC,KAAKg2H,KAAK,UAAWvyH,KAAM2yB,MAGnCp2B,KAAKy1H,YAAc,SAASlB,GACxB,GAAIz6C,GAAS,kBAAoBU,EAAItD,WAAWq9C,GAAa,KAC7D,KACI,MAAO,IAAIU,OAAMn7C,IAAUphE,KAAQ,2BACrC,MAAOpT,GACL,GAAI6wH,GAAcl/F,OAAOk/F,aAAel/F,OAAOm/F,mBAAqBn/F,OAAOo/F,eACvEC,EAAc,GAAIH,EAEtB,OADAG,GAAYroF,OAAO6rC,GACZw8C,EAAYC,QAAQ,8BAIpCh2H,KAAK6zH,EAAa3xH,UAGrB,IAAI+zH,GAAiB,SAASnC,EAAoBnlE,EAAKolE,GACnDt0H,KAAKw0H,gBAAkBx0H,KAAKw0H,gBAAgB5xF,KAAK5iC,MACjDA,KAAKy0H,eAAiBz0H,KAAKy0H,eAAe7xF,KAAK5iC,MAC/CA,KAAK41H,WAAa,EAClB51H,KAAK61H,aACL71H,KAAKy2H,gBAEL,IAAIC,GAAO,KACPC,GAAW,EACXC,EAASh1H,OAAOoC,OAAOmzE,GACvB1R,EAAQzlE,IAEZA,MAAKg4F,WACLh4F,KAAKg4F,QAAQ0N,UAAY,aACzB1lG,KAAKg4F,QAAQz0B,YAAc,SAASj+D,GAChCmgE,EAAMgxD,cAAcv9G,KAAK5T,GACrBoxH,IACIC,EACA3uH,WAAW6uH,GAEXA,MAGZ72H,KAAK82H,YAAc,SAASjnG,GAAO8mG,EAAW9mG,EAE9C,IAAIgnG,GAAc,WACd,GAAIz+C,GAAM3S,EAAMgxD,cAAct5F,OAC1Bi7C,GAAI5f,QACJk+D,EAAKt+C,EAAI5f,SAASvnD,MAAMylH,EAAMt+C,EAAI9pD,MAC7B8pD,EAAIpxC,OACT4vF,EAAOjmD,QAAQyH,EAAIpxC,MAAOoxC,EAAI30E,MAGtCmzH,GAAOrzD,YAAc,SAAS6U,GAC1B3S,EAAMivD,WAAWjxH,KAAM20E,KAE3Bw+C,EAAOhvH,SAAW,SAASnE,EAAMmyH,GAC7B51H,KAAKujE,aAAa7qD,KAAM,OAAQrY,GAAIu1H,EAAYnyH,KAAMA,KAE1DmzH,EAAOZ,KAAO,SAASzyH,EAAME,GACzBzD,KAAKujE,aAAa7qD,KAAM,QAASnV,KAAMA,EAAME,KAAMA,KAGvDG,EAAOo3E,YAAY,SAAU9rB,GAAM,SAAS6nE,GAExC,IADAL,EAAO,GAAIK,GAAKzC,GAAWsC,GACpBnxD,EAAMgxD,cAAcv0H,QACvB20H,MAIZL,GAAe/zH,UAAY2xH,EAAa3xH,UAExC7C,EAAQ42H,eAAiBA,EACzB52H,EAAQw0H,aAAeA,IAIvBnoE,IAAInsD,OAAO,mBAAmB,UAAU,UAAU,SAAS,YAAY,wBAAwB,eAAgB,SAAS+uD,EAAUjvD,EAASC,GAC3I,YAEA,IAAIg/E,GAAQhwB,EAAS,WAAWgwB,MAC5B1H,EAAetoB,EAAS,uBAAuBsoB,aAC/Cnf,EAAMnJ,EAAS,aAEfmoE,EAAc,SAASptD,EAAS1nE,EAAQ0X,EAAKq9G,EAAQC,EAAWC,GAChE,GAAI1xD,GAAQzlE,IACZA,MAAKkC,OAASA,EACdlC,KAAK4pE,QAAUA,EACf5pE,KAAK60D,IAAM+U,EAAQ4W,cACnBxgF,KAAKk3H,UAAYA,EACjBl3H,KAAKm3H,YAAcA,EACnBn3H,KAAKo3H,UAAYp3H,KAAKq3H,SAASz0F,KAAK5iC,MACpCA,KAAK60D,IAAIhH,GAAG,SAAU7tD,KAAKo3H,WAC3Bp3H,KAAKs3H,QAAUL,EAEfj3H,KAAKo2G,gBAAkB,WACnBpuG,WAAW,WACPy9D,EAAMyxC,oBAIdl3G,KAAKuwE,KAAO32D,CACZ,IAAI29G,GAAY3tD,EAAQ44B,iBAAiBogB,YAAch5C,EAAQ44B,iBAAiBg1B,aAAet1H,QAAS,EACxGlC,MAAKy3H,gBAAkBF,EAAUr1H,OACjClC,KAAK+I,QAEL6gE,EAAQhoC,UAAUisB,GAAG,eAAgB7tD,KAAKo2G,mBAG9C,WAEIp+C,EAAID,UAAU/3D,KAAMm3E,GACpBn3E,KAAK+I,MAAQ,WACT,GAAI08D,GAAQzlE,KACR60D,EAAM70D,KAAK60D,IACX+U,EAAU5pE,KAAK4pE,OAEnB5pE,MAAK03H,gBAAkB9tD,EAAQhoC,UAAU/Q,SACrC+4C,EAAQhoC,UAAUorC,mBAClBpD,EAAQhoC,UAAUgkD,gBAEtB5lF,KAAK4Z,IAAMi7C,EAAI8rB,aAAa3gF,KAAKuwE,KAAKlE,IAAKrsE,KAAKuwE,KAAKjE,OACrD,IAAI1yD,GAAM5Z,KAAK4Z,GACfA,GAAIq7E,cAAe,EACnBr7E,EAAIukE,SACJvkE,EAAIqqF,SAAWr6B,EAAQ4J,UAAU,GAAIqL,GAAMjlE,EAAIyyD,IAAKzyD,EAAI0yD,OAAQ1yD,EAAIyyD,IAAKzyD,EAAI0yD,OAAStsE,KAAKkC,QAASlC,KAAKk3H,UAAW,MAAM,GAC1Hl3H,KAAKi3H,UACLj3H,KAAKs3H,QAAQx1H,QAAQ,SAASutG,GAC1B,GAAIpjE,GAAS4oB,EAAI8rB,aAAa0uB,EAAMhjC,IAAKgjC,EAAM/iC,OAC/CrgC,GAAOgpD,cAAe,EACtBhpD,EAAOkyC,SACP1Y,EAAMwxD,OAAO/9G,KAAK+yB,KAEtB29B,EAAQu9B,eAAc,IAE1BnnG,KAAK23H,iBAAmB,WACpB,IAAI33H,KAAK43H,aAAT,CACA,GAAIhuD,GAAU5pE,KAAK4pE,QACfnE,EAAQzlE,IACZA,MAAK43H,cAAe,EACpB53H,KAAKi3H,OAAOn1H,QAAQ,SAASmqC,GACzBA,EAAOg4D,SAAWr6B,EAAQ4J,UAAU,GAAIqL,GAAM5yC,EAAOogC,IAAKpgC,EAAOqgC,OAAQrgC,EAAOogC,IAAKpgC,EAAOqgC,OAAO7G,EAAMvjE,QAASujE,EAAM0xD,YAAa,MAAM,OAGnJn3H,KAAK63H,iBAAmB,WACpB,GAAK73H,KAAK43H,aAAV,CACA53H,KAAK43H,cAAe,CACpB,KAAK,GAAI7yH,GAAI,EAAGA,EAAI/E,KAAKi3H,OAAO/0H,OAAQ6C,IACpC/E,KAAK4pE,QAAQoK,aAAah0E,KAAKi3H,OAAOlyH,GAAGk/F,YAGjDjkG,KAAKq3H,SAAW,SAAS1iG,GACrB,GAAI30B,KAAKi9F,UACL,MAAOj9F,MAAK83H,cAAcnjG,EAE9B,IAAIqR,GAAQrR,CACZ,IAAIqR,EAAMgE,MAAMqiC,MAAQrmC,EAAMiE,IAAIoiC,KAC9BrmC,EAAMgE,MAAMqiC,MAAQrsE,KAAK4Z,IAAIyyD,IAAjC,CACArsE,KAAKi9F,WAAY,CACjB,IAAI86B,GAA8B,WAAjBpjG,EAAMsP,OAAsB+B,EAAMiE,IAAIqiC,OAAStmC,EAAMgE,MAAMsiC,OAAStmC,EAAMgE,MAAMsiC,OAAStmC,EAAMiE,IAAIqiC,OAChH0rD,EAAchyF,EAAMgE,MAAMsiC,QAAUtsE,KAAK4Z,IAAI0yD,QAAUtmC,EAAMgE,MAAMsiC,QAAUtsE,KAAK4Z,IAAI0yD,OAAStsE,KAAKkC,OAAS,EAC7G+1H,EAAoBjyF,EAAMgE,MAAMsiC,OAAStsE,KAAK4Z,IAAI0yD,MAOtD,IALAtsE,KAAK83H,cAAcnjG,GAEfqjG,IACAh4H,KAAKkC,QAAU61H,GAEfC,IAAgBh4H,KAAK4pE,QAAQq4B,UAC7B,GAAqB,WAAjBttE,EAAMsP,OACN,IAAK,GAAIl/B,GAAI/E,KAAKi3H,OAAO/0H,OAAS,EAAG6C,GAAK,EAAGA,IAAK,CAC9C,GAAIuqG,GAAWtvG,KAAKi3H,OAAOlyH,GACvBmzH,GAAU7rD,IAAKijC,EAASjjC,IAAKC,OAAQgjC,EAAShjC,OAAS2rD,EAC3Dj4H,MAAK60D,IAAIygC,kBAAkB4iC,EAAQvjG,EAAMqlB,WAE1C,IAAqB,WAAjBrlB,EAAMsP,OACb,IAAK,GAAIl/B,GAAI/E,KAAKi3H,OAAO/0H,OAAS,EAAG6C,GAAK,EAAGA,IAAK,CAC9C,GAAIuqG,GAAWtvG,KAAKi3H,OAAOlyH,GACvBmzH,GAAU7rD,IAAKijC,EAASjjC,IAAKC,OAAQgjC,EAAShjC,OAAS2rD,EAC3Dj4H,MAAK60D,IAAIhpC,OAAO,GAAIgzD,GAAMq5C,EAAO7rD,IAAK6rD,EAAO5rD,OAAQ4rD,EAAO7rD,IAAK6rD,EAAO5rD,OAASyrD,IAK7F/3H,KAAKi9F,WAAY,EACjBj9F,KAAKm4H,kBAGTn4H,KAAK83H,cAAgB,SAASnjG,GAC1B30B,KAAK4Z,IAAIpY,SAASmzB,EAClB,KAAK,GAAI5vB,GAAI/E,KAAKi3H,OAAO/0H,OAAQ6C,KAC7B/E,KAAKi3H,OAAOlyH,GAAGvD,SAASmzB,EAC5B30B,MAAKm4H,iBAGTn4H,KAAKm4H,cAAgB,WACjB,IAAIn4H,KAAKi9F,UAAT,CAEA,GAAIx3B,GAAQzlE,KACR4pE,EAAU5pE,KAAK4pE,QACfwuD,EAAe,SAASx+G,EAAKwtB,GAC7BwiC,EAAQoK,aAAap6D,EAAIqqF,UACzBrqF,EAAIqqF,SAAWr6B,EAAQ4J,UAAU,GAAIqL,GAAMjlE,EAAIyyD,IAAKzyD,EAAI0yD,OAAQ1yD,EAAIyyD,IAAKzyD,EAAI0yD,OAAO7G,EAAMvjE,QAASklC,EAAW,MAAM,GAExHgxF,GAAap4H,KAAK4Z,IAAK5Z,KAAKk3H,UAC5B,KAAK,GAAInyH,GAAI/E,KAAKi3H,OAAO/0H,OAAQ6C,KAC7BqzH,EAAap4H,KAAKi3H,OAAOlyH,GAAI/E,KAAKm3H,eAG1Cn3H,KAAKk3G,eAAiB,SAASlwE,GAC3B,IAAIhnC,KAAKi9F,WAAcj9F,KAAK4pE,QAA5B,CACA,GAAIhwD,GAAM5Z,KAAK4pE,QAAQhoC,UAAUo/C,WAC7BpnE,GAAIyyD,MAAQrsE,KAAK4Z,IAAIyyD,KAAOzyD,EAAI0yD,QAAUtsE,KAAK4Z,IAAI0yD,QAAU1yD,EAAI0yD,QAAUtsE,KAAK4Z,IAAI0yD,OAAStsE,KAAKkC,QAClGlC,KAAK23H,mBACL33H,KAAKuqE,MAAM,cAAevjC,KAE1BhnC,KAAK63H,mBACL73H,KAAKuqE,MAAM,cAAevjC,MAGlChnC,KAAKm+E,OAAS,WACVn+E,KAAK4pE,QAAQoK,aAAah0E,KAAK4Z,KAAO5Z,KAAK4Z,IAAIqqF,UAC/CjkG,KAAK63H,mBACL73H,KAAK60D,IAAItqB,oBAAoB,SAAUvqC,KAAKo3H,WAC5Cp3H,KAAK4pE,QAAQhoC,UAAU2I,oBAAoB,eAAgBvqC,KAAKo2G,iBAChEp2G,KAAK4pE,QAAQu9B,eAAc,GAC3BnnG,KAAK4pE,QAAU,MAEnB5pE,KAAKolE,OAAS,WACV,IAA8B,IAA1BplE,KAAKy3H,gBAAT,CAIA,IAAK,GAFD/0B,GAAc1iG,KAAK4pE,QAAQ44B,iBAC3B61B,GAAiB31B,EAAYkgB,YAAclgB,EAAY80B,YAAYt1H,OAASlC,KAAKy3H,gBAC5E1yH,EAAI,EAAGA,EAAIszH,EAAetzH,IAC/B29F,EAAYr6D,MAAK,EAEjBroC,MAAK03H,iBACL13H,KAAK4pE,QAAQhoC,UAAU8jD,SAAS1lF,KAAK03H,qBAE9Cn3H,KAAKy2H,EAAYv0H,WAGpB7C,EAAQo3H,YAAcA,IAGtB/qE,IAAInsD,OAAO,kCAAkC,UAAU,UAAU,SAAS,gBAAgB,qBAAsB,SAAS+uD,EAAUjvD,EAASC,GAI5I,QAASy4H,GAAY35C,EAAIC,GACrB,MAAOD,GAAGtS,KAAOuS,EAAGvS,KAAOsS,EAAGrS,QAAUsS,EAAGtS,OAG/C,QAAShB,GAAYhmE,GACjB,GAAIinE,GAAKjnE,EAAEklE,SACPlS,EAAMiU,EAAG5kB,OACTxqB,EAAQovC,EAAG/gC,SACX6sB,EAAOkU,EAAGhhC,QACVgtF,EAAQjzH,EAAEupE,cACVnyB,EAASp3C,EAAEo7D,WAKf,IAHIrI,GAAQoH,EAAUxB,QAClBvhB,EAAS6vB,EAAG7vB,QAEZp3C,EAAEghC,OAAO0mC,mBAA+B,GAAVtwB,EAE9B,WADAp3C,GAAEghC,OAAO0kC,UAAUV,cAAchlE,EAAEklE,SAIvC,KAAKnS,IAASC,IAAQigE,EAGlB,YAFe,IAAX77E,GAAgBp3C,EAAEghC,OAAO0mC,mBACzB1nE,EAAEghC,OAAOktE,sBAIjB,IAAe,IAAX92D,EAAJ,CAGA,GAiBI87E,GAjBAlyF,EAAShhC,EAAEghC,OACX1E,EAAY0E,EAAO1E,UACnB62F,EAAgBnyF,EAAO0mC,kBACvBpzD,EAAMtU,EAAEmnE,sBACRhoB,EAAS7iB,EAAUo/C,YACnBxU,EAAclnE,EAAEknE,eAAkB5qC,EAAUmkC,WAAauyD,EAAY1+G,EAAK6qC,GAE1EC,EAASp/C,EAAE4rB,EAAG8T,EAAS1/B,EAAEulD,EACzB6tE,EAAmB,SAASpzH,GAC5Bo/C,EAASp/C,EAAE87D,QACXp8B,EAAS1/B,EAAE+7D,SAGXuI,EAAUtjC,EAAOsjC,QACjB+uD,EAAeryF,EAAOqgC,SAAS2J,yBAAyB5rB,EAAQ1f,GAChE4zF,EAAeD,CAGnB,IAAIryF,EAAOwtE,cAAc+kB,iBACjBxgE,GAAQC,GAAOigE,GAASjgE,EACxBkgE,EAAgBr7F,EAAQ,QAAU,MAC7Bm7B,GAAOhyB,EAAOwyF,sBACnBN,EAAgB,aAEpB,IAAID,IAAUjgE,GAEV,GADAkgE,EAAgB,OACXC,GAAiBt7F,EAClB,WACGm7B,IAAOhyB,EAAOwyF,sBACrBN,EAAgB,QAQxB,IAJIA,GAAiB/4D,EAAUxB,OAASsO,EAAGhhC,SACvCjF,EAAOwtE,cAAcv3B,oBAGJ,OAAjBi8C,EAAwB,CACxB,IAAKC,GAAiBjsD,EAClB,MAEJ,KAAKisD,EAAe,CAChB,GAAIzyF,GAAQpE,EAAU0xC,iBACtBhtC,GAAOyyF,mBAAmB/yF,GAG9B,GAAIgzF,GAAWp3F,EAAU+jD,UAAUgV,aAAa/gF,EAGhD0sB,GAAOymB,kBACPzmB,EAAO0zE,wBAAyB,EAE5B78E,IACA67F,EAAW,KACXhzF,EAAQpE,EAAU4jD,OAAO,IAAMx/C,EAC/BM,EAAO2yF,sBAAsBjzF,IAEjCM,EAAOoxC,KAAK,UAAW,WACnB,GAAIwhD,GAASt3F,EAAU0xC,iBAEnB0lD,IAAYE,EAAOnzD,WAAauyD,EAAYU,EAASv0E,OAAQy0E,EAAOz0E,QACpE7iB,EAAU64D,eAAey+B,EAAOz0E,SAE5BtnB,EACAyE,EAAU64D,eAAez0D,EAAMye,QACxBze,IACPM,EAAO2yF,sBAAsBjzF,GAC7BpE,EAAU2P,SAASvL,IAEvBpE,EAAU2P,SAAS2nF,IAEvB5yF,EAAOymB,kBACPzmB,EAAO0zE,wBAAyB,QAGjC,IAAqB,SAAjBwe,EAA0B,CACjClzH,EAAE4pE,OACF5oC,EAAO0zE,wBAAyB,CAChC,IAAI3nB,GACA8mC,KACAC,EAAc,WACd,GAAIC,GAAY/yF,EAAOqgC,SAAS2J,yBAAyB5rB,EAAQ1f,GAC7Dyf,EAASmlB,EAAQga,yBAAyBy1C,EAAUhtD,IAAKgtD,EAAU/sD,OAEnEgsD,GAAYM,EAAcS,IAAcf,EAAY7zE,EAAQ7iB,EAAU6+C,QAE1Em4C,EAAeS,EAEf/yF,EAAOymB,kBACPzmB,EAAO1E,UAAUkrC,eAAeroB,GAChCne,EAAOqgC,SAASkH,uBAEhBvnC,EAAOgzF,uBAAuBH,GAC9BA,EAAUv3F,EAAU23F,sBAAsBX,EAAcD,GACpDryF,EAAOwtE,cAAc1oC,iBAAqC,GAAlB+tD,EAAQj3H,QAAei3H,EAAQ,GAAGpzD,YAC1EozD,EAAQ,GAAK7yF,EAAOwtE,cAAc1oC,gBAAgBxqB,SACtDu4E,EAAQr3H,QAAQwkC,EAAOyyF,mBAAoBzyF,GAC3CA,EAAOkzF,yBACPlzF,EAAOymB,mBAEXzmB,GAAOymB,kBACH0rE,IAAkBF,EAClB32F,EAAUgkD,iBACF6yC,GAAiBF,IACzBlmC,EAAezwD,EAAU0xC,kBACzBhtC,EAAOyyF,mBAAmB1mC,IAG1Bl1D,EACAw7F,EAAe/uD,EAAQwW,yBAAyBx+C,EAAU6+C,MAE1D7+C,EAAUkrC,eAAelzD,GAC7B0sB,EAAOymB,kBAEP6rE,GAAgBvsD,KAAM,EAAGC,QAAS,EAElC,IAAImtD,GAAsB,SAASn0H,GAC/BsuE,cAAcC,GACdvtC,EAAOgzF,uBAAuBH,GACzBA,EAAQj3H,SACTi3H,GAAWv3F,EAAU0xC,oBACzBhtC,EAAOymB,kBACHslC,IACA/rD,EAAO2yF,sBAAsB5mC,GAC7BzwD,EAAUgkD,cAAcyM,GAE5B,KAAK,GAAIttF,GAAI,EAAGA,EAAIo0H,EAAQj3H,OAAQ6C,IAChC68B,EAAU2P,SAAS4nF,EAAQp0H,GAC/BuhC,GAAO0zE,wBAAyB,EAChC1zE,EAAOwtE,cAAc1oC,gBAAkB,KACvC9kC,EAAOymB,mBAGP2sE,EAAsBN,CAE1BpyF,GAAM25B,QAAQr6B,EAAO1lC,UAAW83H,EAAkBe,EAClD,IAAI5lD,GAAUluC,YAAY,WAAY+zF,KAAyB,GAE/D,OAAOp0H,GAAEiiC,mBAzKjB,GAAIP,GAAQ6nB,EAAS,gBACjB4Q,EAAY5Q,EAAS,mBA6KzBjvD,GAAQ0rE,YAAcA,IAItBrf,IAAInsD,OAAO,sCAAsC,UAAU,UAAU,SAAS,6BAA8B,SAAS+uD,EAAUjvD,EAASC,GACxID,EAAQ6zG,kBACJlwG,KAAM,iBACNi4B,KAAM,SAAS8K,GAAUA,EAAOqzF,iBAAiB,IACjDjsE,SAAU+V,IAAK,cAAe4sC,IAAK,eACnCG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,iBACNi4B,KAAM,SAAS8K,GAAUA,EAAOqzF,gBAAgB,IAChDjsE,SAAU+V,IAAK,gBAAiB4sC,IAAK,iBACrCG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,4BACNi4B,KAAM,SAAS8K,GAAUA,EAAOqzF,iBAAiB,GAAG,IACpDjsE,SAAU+V,IAAK,oBAAqB4sC,IAAK,qBACzCG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,4BACNi4B,KAAM,SAAS8K,GAAUA,EAAOqzF,gBAAgB,GAAG,IACnDjsE,SAAU+V,IAAK,sBAAuB4sC,IAAK,uBAC3CG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,mBACNi4B,KAAM,SAAS8K,GAAUA,EAAOszF,YAAY,IAC5ClsE,SAAU+V,IAAK,gBAAiB4sC,IAAK,iBACrCG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,kBACNi4B,KAAM,SAAS8K,GAAUA,EAAOszF,WAAW,IAC3ClsE,SAAU+V,IAAK,iBAAkB4sC,IAAK,kBACtCG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,mBACNi4B,KAAM,SAAS8K,GAAUA,EAAOszF,YAAY,GAAG,IAC/ClsE,SAAU+V,IAAK,sBAAuB4sC,IAAK,uBAC3CG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,kBACNi4B,KAAM,SAAS8K,GAAUA,EAAOszF,WAAW,GAAG,IAC9ClsE,SAAU+V,IAAK,uBAAwB4sC,IAAK,wBAC5CG,eAAgB,SAChBtjD,UAAU,IAEV3pD,KAAM,iBACNi4B,KAAM,SAAS8K,GAAUA,EAAO8kD,YAAYyuC,kBAC5CnsE,SAAU+V,IAAK,aAAc4sC,IAAK,cAClCnjD,UAAU,IAEV3pD,KAAM,eACNi4B,KAAM,SAAS8K,GAAUA,EAAOwzF,gBAChCpsE,SAAU+V,IAAK,aAAc4sC,IAAK,cAClCG,eAAgB,WAEhBjtG,KAAM,UACNi4B,KAAM,SAAS8K,GAAUA,EAAO6mE,WAChCz/C,SAAU+V,IAAK,aAAc4sC,IAAK,cAClCG,eAAgB,SAChBtjD,UAAU,IAEdttD,EAAQm6H,sBACJx2H,KAAM,kBACNmqD,QAAS,MACTlyB,KAAM,SAAS8K,GAAUA,EAAOktE,uBAChChD,eAAgB,SAChBtjD,UAAU,EACV8sE,YAAa,SAAS1zF,GAAS,MAAOA,IAAUA,EAAO0mC,oBAG3D,IAAImhC,GAAct/C,EAAS,4BAA4Bs/C,WACvDvuG,GAAQ01G,gBAAkB,GAAInH,GAAYvuG,EAAQm6H,uBAIlD9tE,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,SAAS,iBAAiB,YAAY,gBAAgB,iCAAiC,gBAAgB,eAAe,qCAAqC,aAAa,mBAAmB,aAAa,cAAe,SAAS+uD,EAAUjvD,EAASC,GAatS,QAASmtG,GAAKpjC,EAASijC,EAAQzO,GAI3B,MAHAtlE,GAAO4/C,SAAS5oD,MAAO,EACvBgJ,EAAO4/C,SAASm0B,OAASA,EACzB/zE,EAAO4/C,SAASg1B,WAAoB,GAARtP,EACrBtlE,EAAOk0E,KAAKpjC,GAsqBvB,QAAS0uD,GAAY35C,EAAIC,GACrB,MAAOD,GAAGtS,KAAOuS,EAAGvS,KAAOsS,EAAGrS,QAAUsS,EAAGtS,OAqC/C,QAAS2tD,GAAY3zF,GACbA,EAAO4zF,8BAEX5zF,EAAO6zF,YAAc7zF,EAAO6zF,YAAYv3F,KAAK0D,GAC7CA,EAAO8zF,eAAiB9zF,EAAO8zF,eAAex3F,KAAK0D,GACnDA,EAAO+zF,eAAiB/zF,EAAO+zF,eAAez3F,KAAK0D,GACnDA,EAAOg0F,gBAAkBh0F,EAAOg0F,gBAAgB13F,KAAK0D,GACrDA,EAAO4zF,4BAA8Bt6H,EAAQ26H,gBAAgB33F,KAAK0D,GAClEA,EAAOk0F,wBAA0Bl0F,EAAOk0F,wBAAwB53F,KAAK0D,GAErEA,EAAO4zF,4BAA4B5zF,GACnCA,EAAOunB,GAAG,gBAAiBvnB,EAAO4zF,6BAElC5zF,EAAOunB,GAAG,YAAayd,GACvBhlC,EAAOmnB,SAAS4gD,YAAY5gD,EAASgmD,iBAErCgnB,EAAsBn0F,IAG1B,QAASm0F,GAAsBn0F,GAiB3B,QAASm8D,GAAMn9F,GACPo1H,IACAp0F,EAAOqgC,SAASutD,eAAe,IAC/BwG,GAAY,GAnBpB,GAAItlE,GAAK9uB,EAAO0kC,UAAUZ,aACtBswD,GAAY,CAChB1zF,GAAMo5B,YAAYhL,EAAI,UAAW,SAAS9vD,GACtC,GAAIq1H,GAAuB,IAAbr1H,EAAEgmC,WAAmBhmC,EAAEimC,SAAWjmC,EAAEkmC,UAAYlmC,EAAE49D,QAC5D58B,GAAOwyF,qBAAuB6B,EACzBD,IACDp0F,EAAOqgC,SAASutD,eAAe,aAC/BwG,GAAY,GAETA,GACPj4B,MAIRz7D,EAAMo5B,YAAYhL,EAAI,QAASqtC,GAC/Bz7D,EAAMo5B,YAAYhL,EAAI,OAAQqtC,GA9vBlC,GAAIpI,GAAYxrC,EAAS,gBAAgBwrC,UACrCxb,EAAQhwB,EAAS,WAAWgwB,MAC5B0B,EAAY1xB,EAAS,eAAe0xB,UACpCjV,EAAczc,EAAS,gCAAgCyc,YACvDtkC,EAAQ6nB,EAAS,eACjB6W,EAAO7W,EAAS,cAChBpB,EAAWoB,EAAS,mCACxBjvD,GAAQ6tD,SAAWA,EAASgmD,gBAAgBr6F,OAAOq0C,EAASssE,oBAC5D,IAAIhtB,GAASl+C,EAAS,YAAYk+C,OAC9Bj0E,EAAS,GAAIi0E,GAQbtM,EAAc5xC,EAAS,kBAAkB4xC,aAC7C,WACIzgG,KAAK46H,oBAAsB,WACvB,MAAO56H,MAAKuqH,qBAEjBhqH,KAAKkgG,EAAYh+F,WACpB,WACIzC,KAAKwlF,OAAS,KACdxlF,KAAK2lF,UAAY,KACjB3lF,KAAKuxC,SAAW,SAASvL,EAAO60F,GAC5B,GAAK70F,EAAL,CAGA,IAAKhmC,KAAKgtE,mBAAyC,IAApBhtE,KAAK0xC,WAAkB,CAClD,GAAIsnF,GAAWh5H,KAAKszE,iBAGpB,IAFAtzE,KAAK2lF,UAAU/5D,IAAIotG,GACnBh5H,KAAK2lF,UAAU/5D,IAAIoa,GACiB,GAAhChmC,KAAK2lF,UAAUH,OAAOtjF,OAEtB,MADAlC,MAAK2lF,UAAUkV,YACRggC,GAAsB76H,KAAKi0E,kBAAkBjuC,EAExDhmC,MAAK2lF,UAAUkV,YACf76F,KAAK2lF,UAAU/5D,IAAIotG,GACnBh5H,KAAKm6H,YAAYnB,GAGhBhzF,EAAMye,SACPze,EAAMye,OAASze,EAAMiE,IAEzB,IAAIwnB,GAAUzxD,KAAK2lF,UAAU/5D,IAAIoa,EAcjC,OAZAhmC,MAAKm6H,YAAYn0F,GAEbyrB,EAAQvvD,QACRlC,KAAKo6H,eAAe3oE,GAEpBzxD,KAAK0xC,WAAa,IAAM1xC,KAAKgtE,oBAC7BhtE,KAAK2wE,QAAQ,eACb3wE,KAAKgtE,mBAAoB,EACzBhtE,KAAK4pE,QAAQm3B,aAAc,EAC3B/gG,KAAK2lF,UAAUzH,OAAOl+E,KAAK4pE,UAGxBixD,GAAsB76H,KAAKi0E,kBAAkBjuC,KAGxDhmC,KAAK4lF,cAAgB,SAAS5/C,GAC1BA,EAAQA,GAAShmC,KAAKwlF,OAAO,EAC7B,IAAI/zB,GAAUzxD,KAAK2lF,UAAUkV,WACzBppC,GAAQvvD,QACRlC,KAAKo6H,eAAe3oE,GAExBzrB,GAAShmC,KAAKi0E,kBAAkBjuC,IAEpChmC,KAAKy6F,eAAiB,SAAS7gF,GAC3B,GAAI63C,GAAUzxD,KAAK2lF,UAAU8U,eAAe7gF,EAC5C,IAAI63C,EAEA,MADAzxD,MAAKo6H,eAAe3oE,GACbA,EAAQ,IAGvBzxD,KAAK86H,uBAAyB,WAC1B,GAAIrpE,GAAUzxD,KAAK2lF,UAAUoC,OACzBt2B,GAAQvvD,OACRlC,KAAKo6H,eAAe3oE,GAChBzxD,KAAKwlF,OAAO,IAChBxlF,KAAKi0E,kBAAkBj0E,KAAKwlF,OAAO,KAG3CxlF,KAAKm6H,YAAc,SAASn0F,GACxBhmC,KAAK0xC,WAAa1xC,KAAK2lF,UAAUH,OAAOtjF,OACxClC,KAAKwlF,OAAOnpD,QAAQ2J,GACpBhmC,KAAK2wE,QAAQ,YAAa3qC,MAAOA,KAGrChmC,KAAKo6H,eAAiB,SAAS3oE,GAE3B,GADAzxD,KAAK0xC,WAAa1xC,KAAK2lF,UAAUH,OAAOtjF,OACjB,GAAnBlC,KAAK0xC,YAAmB1xC,KAAKgtE,kBAAmB,CAChD,GAAI+tD,GAAY/6H,KAAK2lF,UAAUH,OAAOplE,KACtCqxC,GAAQv4C,KAAK6hH,GACb/6H,KAAK0xC,WAAa,EAGtB,IAAK,GAAI3sC,GAAI0sD,EAAQvvD,OAAQ6C,KAAO,CAChC,GAAIoP,GAAQnU,KAAKwlF,OAAOxjF,QAAQyvD,EAAQ1sD,GACxC/E,MAAKwlF,OAAOhwE,OAAOrB,EAAO,GAG9BnU,KAAK2wE,QAAQ,eAAgB6U,OAAQ/zB,IAEb,IAApBzxD,KAAK0xC,YAAoB1xC,KAAKgtE,oBAC9BhtE,KAAKgtE,mBAAoB,EACzBhtE,KAAK2wE,QAAQ,gBACb3wE,KAAK4pE,QAAQm3B,aAAc,EAC3B/gG,KAAK2lF,UAAUxH,OAAOn+E,KAAK4pE,WAG/BmxD,EAAYA,GAAa/6H,KAAKwlF,OAAO,MACnBu1C,EAAU77C,QAAQl/E,KAAKiqE,aACrCjqE,KAAKi0E,kBAAkB8mD,IAE/B/6H,KAAKg7H,eAAiB,WACdh7H,KAAK2lF,YAGT3lF,KAAK2lF,UAAY,GAAI0U,GACrBr6F,KAAKwlF,UACLxlF,KAAK0xC,WAAa,IAEtB1xC,KAAK6wG,aAAe,WAChB,MAAO7wG,MAAK0xC,WAAa1xC,KAAK2lF,UAAUH,OAAOpsE,UAAYpZ,KAAKiqE,aAGpEjqE,KAAK65H,eAAiB,WAClB,GAAI75H,KAAK0xC,WAAa,EAAG,CACrB,GAAI8zC,GAASxlF,KAAK2lF,UAAUH,OACxBu1C,EAAYv1C,EAAOA,EAAOtjF,OAAS,GACnC8jC,EAAQ64C,EAAMmB,WAAWwF,EAAO,GAAGx7C,MAAO+wF,EAAU9wF,IAExDjqC,MAAK4lF,gBACL5lF,KAAKomE,kBAAkBpgC,EAAO+0F,EAAUt2E,QAAUs2E,EAAU/wF,WACzD,CACH,GAAIhE,GAAQhmC,KAAKiqE,WACbsX,EAAcvhF,KAAKuhF,cACnBzC,EAAW94C,EAAMgE,MAAMqiC,IACvB2S,EAASh5C,EAAMiE,IAAIoiC,GACvB,IAAIyS,GAAYE,EAAQ,CACpB,GAAIuC,EACA,GAAIv3C,GAAQhE,EAAMiE,IAAKA,EAAMjE,EAAMgE,UAEnC,IAAIA,GAAQhE,EAAMgE,MAAOC,EAAMjE,EAAMiE,GAIzC,OAFAjqC,MAAKuxC,SAASstC,EAAMmB,WAAW/1C,EAAKA,QACpCjqC,MAAKuxC,SAASstC,EAAMmB,WAAWh2C,EAAOA,IAI1C,GAAImvF,MACA1zH,EAAIzF,KAAK4uE,aAAakQ,GAAU,EACpCr5E,GAAEukC,MAAMsiC,OAAStmC,EAAMgE,MAAMsiC,OAC7B6sD,EAAQjgH,KAAKzT,EAEb,KAAK,GAAIV,GAAI+5E,EAAW,EAAG/5E,EAAIi6E,EAAQj6E,IACnCo0H,EAAQjgH,KAAKlZ,KAAK4uE,aAAa7pE,GAAG,GAEtCU,GAAIzF,KAAK4uE,aAAaoQ,GAAQ,GAC9Bv5E,EAAEwkC,IAAIqiC,OAAStmC,EAAMiE,IAAIqiC,OACzB6sD,EAAQjgH,KAAKzT,GAEb0zH,EAAQr3H,QAAQ9B,KAAKuxC,SAAUvxC,QAGvCA,KAAKi7H,qBAAuB,WACxB,GAAIj7H,KAAK0xC,WAAa,EAAG,CACrB,GAAI8zC,GAASxlF,KAAK2lF,UAAUH,OACxBu1C,EAAYv1C,EAAOA,EAAOtjF,OAAS,GACnC8jC,EAAQ64C,EAAMmB,WAAWwF,EAAO,GAAGx7C,MAAO+wF,EAAU9wF,IAExDjqC,MAAK4lF,gBACL5lF,KAAKomE,kBAAkBpgC,EAAO+0F,EAAUt2E,QAAUs2E,EAAU/wF,WACzD,CACH,GAAIya,GAASzkD,KAAK4pE,QAAQwW,yBAAyBpgF,KAAK0gF,eACpDz0C,EAASjsC,KAAK4pE,QAAQwW,yBAAyBpgF,KAAK4gF,gBAE1C5gF,MAAKu5H,sBAAsB90E,EAAQxY,GACzCnqC,QAAQ9B,KAAKuxC,SAAUvxC,QAGvCA,KAAKu5H,sBAAwB,SAASX,EAAcD,EAAcuC,GAC9D,GAAI/B,MAEAgC,EAAavC,EAAatsD,OAASqsD,EAAarsD,MACpD,IAAI6uD,EACA,GAAIp8C,GAAc65C,EAAatsD,OAC3B2S,EAAY05C,EAAarsD,WAE7B,IAAIyS,GAAc45C,EAAarsD,OAC3B2S,EAAY25C,EAAatsD,MAGjC,IAAI8uD,GAAaxC,EAAavsD,IAAMssD,EAAatsD,GACjD,IAAI+uD,EACA,GAAIt8C,GAAW85C,EAAavsD,IACxB2S,EAAS25C,EAAatsD,QAE1B,IAAIyS,GAAW65C,EAAatsD,IACxB2S,EAAS45C,EAAavsD,GAG1B0S,GAAc,IACdA,EAAc,GACdD,EAAW,IACXA,EAAW,GAEXA,GAAYE,IACZk8C,GAAoB,EAExB,KAAK,GAAI7uD,GAAMyS,EAAUzS,GAAO2S,EAAQ3S,IAAO,CAC3C,GAAIrmC,GAAQ64C,EAAMmB,WACdhgF,KAAK4pE,QAAQga,yBAAyBvX,EAAK0S,GAC3C/+E,KAAK4pE,QAAQga,yBAAyBvX,EAAK4S,GAE/C,IAAIj5C,EAAM+/B,UAAW,CACjB,GAAIs1D,GAAU/C,EAAYtyF,EAAMiE,IAAKoxF,GACjC,KACJ,IAAIA,GAASr1F,EAAMiE,IAEvBjE,EAAMye,OAAS02E,EAAan1F,EAAMgE,MAAQhE,EAAMiE,IAChDkvF,EAAQjgH,KAAK8sB,GAMjB,GAHIo1F,GACAjC,EAAQl1D,WAEPi3D,EAAmB,CAEpB,IADA,GAAIjxF,GAAMkvF,EAAQj3H,OAAS,EACpBi3H,EAAQlvF,GAAK87B,WAAa97B,EAAM,GACnCA,GACJ,IAAIA,EAAM,EAEN,IADA,GAAID,GAAQ,EACLmvF,EAAQnvF,GAAO+7B,WAClB/7B,GAER,KAAK,GAAIjlC,GAAIklC,EAAKllC,GAAKilC,EAAOjlC,IACtBo0H,EAAQp0H,GAAGghE,WACXozD,EAAQ3jH,OAAOzQ,EAAG,GAI9B,MAAOo0H,KAEZ54H,KAAKggF,EAAU99E,UAClB,IAAIixG,GAAS7kD,EAAS,YAAY6kD,QAClC,WACI1zG,KAAKw5H,uBAAyB,WAC1Bx5H,KAAK2mE,SAASgyC,eACd34G,KAAK2mE,SAASizC,qBAElB55G,KAAK+4H,mBAAqB,SAASprD,GAC1BA,EAAclpB,SACfkpB,EAAclpB,OAASkpB,EAAc1jC,IAEzC,IAAI4G,GAAQ7wC,KAAKyzE,mBAKjB,OAJA9F,GAAco2B,OAAS/jG,KAAK4pE,QAAQ4J,UAAU7F,EAAe,gBAAiB98B,GAE9E7wC,KAAK4pE,QAAQ2gD,kBAAkBrxG,KAAKy0D,GACpC3tE,KAAK4pE,QAAQ0xD,qBAAuBt7H,KAAK4pE,QAAQ2gD,kBAAkBroH,OAC5DyrE,GAEX3tE,KAAKi5H,sBAAwB,SAASjzF,GAClC,GAAKA,EAAM+9D,OAAX,CAEA/jG,KAAK4pE,QAAQoK,aAAahuC,EAAM+9D,OAChC,IAAI5vF,GAAQnU,KAAK4pE,QAAQ2gD,kBAAkBvoH,QAAQgkC,IACrC,GAAV7xB,GACAnU,KAAK4pE,QAAQ2gD,kBAAkB/0G,OAAOrB,EAAO,GACjDnU,KAAK4pE,QAAQ0xD,qBAAuBt7H,KAAK4pE,QAAQ2gD,kBAAkBroH,SAGvElC,KAAKs5H,uBAAyB,SAAS9zC,GAEnC,IAAK,GADD+1C,GAAav7H,KAAK4pE,QAAQ2gD,kBACrBxlH,EAAIygF,EAAOtjF,OAAQ6C,KAAO,CAC/B,GAAIihC,GAAQw/C,EAAOzgF,EACnB,IAAKihC,EAAM+9D,OAAX,CAEA/jG,KAAK4pE,QAAQoK,aAAahuC,EAAM+9D,OAChC,IAAI5vF,GAAQonH,EAAWv5H,QAAQgkC,IACjB,GAAV7xB,GACAonH,EAAW/lH,OAAOrB,EAAO,IAEjCnU,KAAK4pE,QAAQ0xD,qBAAuBC,EAAWr5H,QAGnDlC,KAAKm6H,YAAc,SAAS70H,GACxBtF,KAAK+4H,mBAAmBzzH,EAAE0gC,OAC1BhmC,KAAK2mE,SAASgyC,eACd34G,KAAK2mE,SAASizC,qBAGlB55G,KAAKo6H,eAAiB,SAAS90H,GAC3BtF,KAAKs5H,uBAAuBh0H,EAAEkgF,QAC9BxlF,KAAK2mE,SAASgyC,eACd34G,KAAK2mE,SAASizC,qBAGlB55G,KAAKq6H,eAAiB,SAAS/0H,GACvBtF,KAAKgtE,oBAEThtE,KAAKgtE,mBAAoB,EAEzBhtE,KAAKytE,SAAS,mBACdztE,KAAK6zG,WAAW91B,mBAAmBtwB,EAAS6nD,iBAC5Ct1G,KAAKytD,SAAS4d,kBAAkB,OAAQrrE,KAAKw7H,oBAE7Cx7H,KAAK2mE,SAASgyC,eACd34G,KAAK2mE,SAASizC,sBAGlB55G,KAAKs6H,gBAAkB,SAASh1H,GACxBtF,KAAK4pE,QAAQwhB,YAAYqwC,gBAE7Bz7H,KAAKgtE,mBAAoB,EAEzBhtE,KAAKquE,WAAW,mBAChBruE,KAAK6zG,WAAWh2B,sBAAsBpwB,EAAS6nD,iBAE/Ct1G,KAAKytD,SAASsqB,qBAAqB,OAAQ/3E,KAAKw7H,oBAChDx7H,KAAK2mE,SAASgyC,eACd34G,KAAK2mE,SAASizC,oBACd55G,KAAKuqE,MAAM,qBAGfvqE,KAAKw7H,mBAAqB,SAASl2H,GAC/B,GAAIkzD,GAAUlzD,EAAEkzD,QACZlyB,EAAShhC,EAAEghC,MACf,IAAKA,EAAO8kD,YAAZ,CAEA,GAAK5yB,EAAQo4C,kBAI2B,WAA7Bp4C,EAAQo4C,kBACf5/F,EAASs1B,EAAOo1F,iBAAiBljE,EAASlzD,EAAEgpB,MACR,eAA7BkqC,EAAQo4C,kBACf5/F,EAASs1B,EAAOo1F,iBAAiBljE,EAASlzD,EAAEgpB,MAAM,GACd,UAA7BkqC,EAAQo4C,mBACftqE,EAAOktE,sBACPxiG,EAASwnD,EAAQh9B,KAAK8K,EAAQhhC,EAAEgpB,WAEhCtd,EAASwnD,EAAQo4C,kBAAkBtqE,EAAQhhC,EAAEgpB,cAZjB,CAC5B,GAAItd,GAASwnD,EAAQh9B,KAAK8K,EAAQhhC,EAAEgpB,SACpCgY,GAAO8kD,YAAY75C,SAASjL,EAAO8kD,YAAY9X,mBAC/ChtC,EAAO8kD,YAAY0vC,yBAWvB,MAAO9pH,KAEXhR,KAAK07H,iBAAmB,SAASjjE,EAAKnqC,EAAMztB,GACxC,IAAIb,KAAKg6G,uBAAT,CAEA,GAMIhpG,GANA2qH,EAAY96H,GAAWA,EAAQ86H,UAC/BC,EAAsB,GAAX/6H,GAAmBA,GAAWA,EAAQ+6H,SACjDhyD,EAAU5pE,KAAK4pE,QACfhoC,EAAY5hC,KAAK4hC,UACjB+jD,EAAY/jD,EAAU+jD,UACtBH,GAAUm2C,EAAY/5F,EAAY+jD,GAAWH,MAGjD,KAAKA,EAAOtjF,OACR,MAAOu2D,GAAIj9B,KAAOi9B,EAAIj9B,KAAKx7B,KAAMsuB,OAAcmqC,EAAIz4D,KAAMsuB,MAE7D,IAAIutG,GAAMj6F,EAAU01C,cACpB11C,GAAU01C,iBAEV,IAAI4hD,GAAS,GAAI34C,GAAU3W,EAC3B5pE,MAAKg6G,wBAAyB,CAC9B,KAAK,GAAIj1G,GAAIygF,EAAOtjF,OAAQ6C,KAAM,CAC9B,GAAI62H,EACA,KAAO72H,EAAI,GAAKygF,EAAOzgF,GAAGilC,MAAMqiC,KAAOmZ,EAAOzgF,EAAI,GAAGklC,IAAIoiC,KACrDtnE,GAERm0H,GAAOjlD,kBAAkBuR,EAAOzgF,IAChCm0H,EAAO/kH,MAAQpP,EACf/E,KAAK4hC,UAAYgoC,EAAQhoC,UAAYs3F,CACrC,IAAI4C,GAAYrjE,EAAIj9B,KAAOi9B,EAAIj9B,KAAKx7B,KAAMsuB,OAAcmqC,EAAIz4D,KAAMsuB,MAC7Dtd,QAAwBpB,KAAdksH,IACX9qH,EAAS8qH,GACb5C,EAAO5lD,gBAAgBkS,EAAOzgF,IAElCm0H,EAAO/6C,SAEPn+E,KAAK4hC,UAAYgoC,EAAQhoC,UAAYA,EACrC5hC,KAAKg6G,wBAAyB,EAC9Bp4E,EAAU01C,eAAiBukD,EAC3Bj6F,EAAUk5F,wBAEV,IAAIiB,GAAO/7H,KAAK2mE,SAASknD,gBAMzB,OALA7tH,MAAKk3G,iBACLl3G,KAAKq3G,oBACD0kB,GAAQA,EAAKrsE,MAAQqsE,EAAKhiH,IAC1B/Z,KAAK2mE,SAASouC,iBAAiBgnB,EAAKrsE,MAEjC1+C,IAEXhR,KAAKwzG,oBAAsB,WAClBxzG,KAAKgtE,oBAAqBhtE,KAAKg6G,wBAEpCh6G,KAAKorF,YAAYxF,iBAGrB5lF,KAAK+5G,gBAAkB,WACnB,GAAIpoF,GAAO,EACX,IAAI3xB,KAAKgtE,oBAAsBhtE,KAAKg6G,uBAAwB,CAGxD,IAAK,GAFDx0B,GAASxlF,KAAKorF,YAAYzF,UAAUH,OACpCw2C,KACKj3H,EAAI,EAAGA,EAAIygF,EAAOtjF,OAAQ6C,IAC/Bi3H,EAAI9iH,KAAKlZ,KAAK4pE,QAAQyL,aAAamQ,EAAOzgF,IAE9C,IAAIk3H,GAAKj8H,KAAK4pE,QAAQ4W,cAAcgV,qBACpC7jE,GAAOqqG,EAAIr4G,KAAKs4G,GACZtqG,EAAKzvB,SAAW85H,EAAI95H,OAAS,GAAK+5H,EAAG/5H,SACrCyvB,EAAO,QACH3xB,MAAK4hC,UAAUmkC,YACvBp0C,EAAO3xB,KAAK4pE,QAAQyL,aAAar1E,KAAK4sE,qBAE1C,OAAOj7C,IAGX3xB,KAAKw6H,wBAA0B,SAASl1H,EAAG2mC,GACvC,GAAIjsC,KAAKgtE,oBAAsBhtE,KAAKg6G,uBAAwB,CACxD,GAAIh0E,GAAQhmC,KAAKorF,YAAY5F,OAAO,EACpC,IAAIxlF,KAAKorF,YAAYrlB,WAAa95B,GAAUjsC,KAAKorF,YAAYn/C,OACzD,MACJ,IAAIryB,GAAMqyB,GAAUjsC,KAAKorF,YAAYn/C,OAC/BjG,EAAMye,QAAUze,EAAMgE,MAAQhE,EAAMiE,IAAMjE,EAAMgE,MAChDhE,EAAMye,MACR7qC,GAAIyyD,KAAOpgC,EAAOogC,KACfrsE,KAAK4pE,QAAQorB,wBAAwBp7E,EAAIyyD,IAAKzyD,EAAI0yD,QAAQA,QAAUrgC,EAAOqgC,QAC9EtsE,KAAKorF,YAAYxF,cAAc5lF,KAAKorF,YAAY9X,qBAG5DtzE,KAAKmtG,QAAU,SAASN,EAAQhsG,EAASq7H,GAGrC,GAFAr7H,EAAUA,MACVA,EAAQgsG,OAASA,GAAUhsG,EAAQgsG,WACbj9F,IAAlB/O,EAAQgsG,OAAqB,CAC7B,GAAI7mE,GAAQhmC,KAAK4hC,UAAUmkC,UACrB/lE,KAAK4hC,UAAU8sC,eACf1uE,KAAK4hC,UAAUqoC,UACrBppE,GAAQgsG,OAAS7sG,KAAK4pE,QAAQyL,aAAarvC,GAE/ChmC,KAAK+zG,QAAQjxG,IAAIjC,EAEjB,IAAI2kF,GAASxlF,KAAK+zG,QAAQ5G,QAAQntG,KAAK4pE,QACvC,KAAK4b,EAAOtjF,OACR,MAAO,EAEXlC,MAAK+sD,iBAAmB,CACxB,IAAInrB,GAAY5hC,KAAKorF,WAEhB8wC,IACDt6F,EAAUgkD,cAAcJ,EAAO,GAEnC,KAAK,GAAIzgF,GAAIygF,EAAOtjF,OAAQ6C,KACxB68B,EAAU2P,SAASi0C,EAAOzgF,IAAI,EAMlC,OALIihC,IAASpE,EAAU+jD,UAAUgV,aAAa30D,EAAMgE,QAChDpI,EAAU2P,SAASvL,GAAO,GAE9BhmC,KAAK+sD,iBAAmB,EAEjBy4B,EAAOtjF,QAElBlC,KAAK25H,gBAAkB,SAASv7B,EAAK+9B,GACjC,GAAIn2F,GAAQhmC,KAAK4hC,UAAU0xC,kBACvBiO,EAAcv7C,EAAMye,QAAUze,EAAMiE,IAEpCmyF,EAAap8H,KAAK4pE,QAAQwW,yBAAyBp6C,EAAMye,OACzDzkD,MAAK4hC,UAAUm/C,iBACfq7C,EAAW9vD,OAAStsE,KAAK4hC,UAAUm/C,eAEvC,IAAIN,GAAOzgF,KAAK4pE,QAAQga,yBAAyBw4C,EAAW/vD,IAAM+xB,EAAKg+B,EAAW9vD,OAElF,IAAKtmC,EAAM+/B,UAIP,GAAI95B,GAASw0C,MAHb,IAAIk4C,GAAe34H,KAAK4pE,QAAQwW,yBAAyBmB,EAAcv7C,EAAMiE,IAAMjE,EAAMgE,OACrFiC,EAASjsC,KAAK4pE,QAAQga,yBAAyB+0C,EAAatsD,IAAM+xB,EAAKu6B,EAAarsD,OAK5F,IAAIiV,EAAa,CACb,GAAI89B,GAAWxgC,EAAMmB,WAAWS,EAAMx0C,EACtCozE,GAAS56D,OAAS46D,EAASr1E,UACxB,CACH,GAAIq1E,GAAWxgC,EAAMmB,WAAW/zC,EAAQw0C,EACxC4+B,GAAS56D,OAAS46D,EAASp1E,IAI/B,GADAo1E,EAAS/5B,cAAgB82C,EAAW9vD,OAC/BtsE,KAAK4hC,UAAUorC,mBAGhB,GAAImvD,EACA,GAAIE,GAAWr2F,EAAMye,WAHzBzkD,MAAK4hC,UAAU2P,SAASvL,EAM5BhmC,MAAK4hC,UAAU2P,SAAS8tE,GACpBgd,GACAr8H,KAAK4hC,UAAU64D,eAAe4hC,IAEtCr8H,KAAKizG,oBAAsB,SAAS7U,GAKhC,IAAK,GAJDx0B,GAAU5pE,KAAK4pE,QACfp4B,EAAMo4B,EAAQwhB,YACdryE,EAAMy4B,EAAIg0C,OAELzgF,EAAIgU,EAAI7W,OAAQ6C,KAAO,CAC5B,GAAIihC,GAAQjtB,EAAIhU,EAChB,IAAIihC,EAAM+/B,UAAW,CACjB,GAAIu2D,GAAM1yD,EAAQ8E,aAAa1oC,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,OAC5DtmC,GAAMgE,MAAMqiC,IAAMiwD,EAAItyF,MAAMqiC,IAC5BrmC,EAAMgE,MAAMsiC,OAASgwD,EAAItyF,MAAMsiC,OAC/BtmC,EAAMiE,IAAIoiC,IAAMiwD,EAAIryF,IAAIoiC,IACxBrmC,EAAMiE,IAAIqiC,OAASgwD,EAAIryF,IAAIqiC,QAGnC96B,EAAIspF,wBAGJ,KAAK,GADDyB,MACKx3H,EAAIgU,EAAI7W,OAAQ6C,KAAO,CAC5B,GAAIihC,GAAQjtB,EAAIhU,EAChBw3H,GAAMlgG,QAAQutC,EAAQyL,aAAarvC,IAGnCo4D,EAAM,EACNm+B,EAAMlgG,QAAQkgG,EAAMn8G,OAEpBm8G,EAAMrjH,KAAKqjH,EAAMp/F,QAErB,KAAK,GAAIp4B,GAAIgU,EAAI7W,OAAQ6C,KAAO,CAC5B,GAAIihC,GAAQjtB,EAAIhU,GACZu3H,EAAMt2F,EAAM4a,OAChBgpB,GAAQ7xD,QAAQiuB,EAAOu2F,EAAMx3H,IAC7BihC,EAAMgE,MAAMqiC,IAAMiwD,EAAItyF,MAAMqiC,IAC5BrmC,EAAMgE,MAAMsiC,OAASgwD,EAAItyF,MAAMsiC,SAGvCtsE,KAAK45H,WAAa,SAASx7B,EAAK+9B,EAAMK,GAClC,GAAI5yD,GAAU5pE,KAAK4pE,QACfp4B,EAAMo4B,EAAQwhB,YAEdplD,EAAQwL,EAAI8hC,iBAChB,KAAIttC,EAAM+/B,YACN//B,EAAQ4jC,EAAQ8E,aAAa1oC,EAAMgE,MAAMqiC,IAAKrmC,EAAMgE,MAAMsiC,QAC1DtmC,EAAMye,QAAiB,GAAR25C,EAAYp4D,EAAMgE,MAAQhE,EAAMiE,IAC/CjqC,KAAKorF,YAAY75C,SAASvL,IACtBw2F,GAJR,CAOA,GAAI3vB,GAASjjC,EAAQyL,aAAarvC,GAE9Bq5E,EAAWrS,EAAKpjC,EAASijC,EAAQzO,EACjCihB,KACAA,EAAS56D,QAAiB,GAAR25C,EAAYihB,EAASr1E,MAAQq1E,EAASp1E,IACxDjqC,KAAK+sD,iBAAmB,EACxB/sD,KAAK4pE,QAAQyzB,OAAOgiB,GACpBr/G,KAAKorF,YAAY75C,SAAS8tE,GAC1Br/G,KAAK+sD,iBAAmB,EACxB/sD,KAAK2mE,SAASkH,qBAAqB,KAAM,KAEzCsuD,GACAn8H,KAAKorF,YAAYqP,eAAez0D,EAAMye,UAE9CzkD,KAAK85H,aAAe,WAChB,GAAIlwD,GAAU5pE,KAAK4pE,QACfp4B,EAAMo4B,EAAQwhB,YACd5F,EAASh0C,EAAIg0C,OACbnZ,GAAO,EACPowD,EAAgBj3C,EAAOhhD,OAAO,SAAS/+B,GACvC,GAAIA,EAAEg/C,OAAO4nB,KAAOA,EAChB,OAAO,CACXA,GAAM5mE,EAAEg/C,OAAO4nB,KAGnB,IAAKmZ,EAAOtjF,QAAUu6H,EAAcv6H,QAAUsjF,EAAOtjF,OAAS,EAyBvD,CACHu6H,EAAc36H,QAAQ,SAAS2D,GAC3B+rC,EAAIipD,eAAeh1F,EAAEg/C,SAGzB,IAAIi4E,GAAS,EACTC,EAAWplH,EAAAA,EACXqlH,EAAep3C,EAAOvsE,IAAI,SAASxT,GACnC,GAAI/E,GAAI+E,EAAEg/C,OACN3L,EAAO8wB,EAAQ0T,QAAQ58E,EAAE2rE,KACzBwwD,EAAc/jF,EAAK7gB,OAAOv3B,EAAE4rE,QAAQxzC,OAAO,MAQ/C,QAPoB,GAAhB+jG,IACAA,EAAc,GAEdn8H,EAAE4rE,OAASowD,IACXA,EAASh8H,EAAE4rE,QACXuwD,EAAcF,IACdA,EAAWE,GACRA,GAEXr3C,GAAO1jF,QAAQ,SAAS2D,EAAGV,GACvB,GAAIrE,GAAI+E,EAAEg/C,OACN1+C,EAAI22H,EAASh8H,EAAE4rE,OACf8tC,EAAIwiB,EAAa73H,GAAK43H,CACtB52H,GAAIq0G,EACJxwC,EAAQlY,OAAOhxD,EAAGglE,EAAKxB,aAAa,IAAKn+D,EAAIq0G,IAE7CxwC,EAAQ/9C,OAAO,GAAIgzD,GAAMn+E,EAAE2rE,IAAK3rE,EAAE4rE,OAAQ5rE,EAAE2rE,IAAK3rE,EAAE4rE,OAASvmE,EAAIq0G,IAEpE30G,EAAEukC,MAAMsiC,OAAS7mE,EAAEwkC,IAAIqiC,OAASowD,EAChCj3H,EAAEukC,MAAMqiC,IAAM5mE,EAAEwkC,IAAIoiC,IAAM3rE,EAAE2rE,IAC5B5mE,EAAEg/C,OAASh/C,EAAEwkC,MAEjBuH,EAAIyiC,kBAAkBuR,EAAO,IAC7BxlF,KAAK2mE,SAASgyC,eACd34G,KAAK2mE,SAASizC,wBA5D+C,CAC7D,GAAI5zE,GAAQhmC,KAAK4hC,UAAUqoC,WACvB6yD,EAAK92F,EAAMgE,MAAMqiC,IAAK0wD,EAAK/2F,EAAMiE,IAAIoiC,IACrC2wD,EAAaF,GAAMC,CACvB,IAAIC,EAAY,CACZ,GACIlkF,GADAnS,EAAM3mC,KAAK4pE,QAAQwG,WAEvB,IACIt3B,EAAO94C,KAAK4pE,QAAQ0T,QAAQy/C,SACvB,OAAOluH,KAAKiqC,MAAWikF,EAAKp2F,EACrC,IACImS,EAAO94C,KAAK4pE,QAAQ0T,QAAQw/C,SACvB,OAAOjuH,KAAKiqC,MAAWgkF,EAAK,EAEjCA,GAAK,IAAGA,EAAK,GACbC,GAAMp2F,IAAKo2F,EAAKp2F,EAAM,GAE9B,GAAIqT,GAAQh6C,KAAK4pE,QAAQ0sB,gBAAgBwmC,EAAIC,EAC7C/iF,GAAQh6C,KAAKi9H,aAAajjF,EAAOgjF,GACjCh9H,KAAK4pE,QAAQlY,QAAQ2a,IAAKywD,EAAIxwD,OAAQ,GAAItyB,EAAMr2B,KAAK,MAAQ,MACxDq5G,IACDh3F,EAAMgE,MAAMsiC,OAAS,EACrBtmC,EAAMiE,IAAIqiC,OAAStyB,EAAMA,EAAM93C,OAAS,GAAGA,QAE/ClC,KAAK4hC,UAAUsoC,SAASlkC,KAwChChmC,KAAKi9H,aAAe,SAASjjF,EAAOkjF,GAgChC,QAASnrC,GAAOvsF,GACZ,MAAOkgE,GAAKxB,aAAa,IAAK1+D,GAGlC,QAAS23H,GAAU38H,GACf,MAAQA,GAAE,GAAYuxF,EAAOqrC,GAAU58H,EAAE,GACnCuxF,EAAOsrC,EAAQ78H,EAAE,GAAG0B,OAASo7H,GAC7B98H,EAAE,GAAGuX,QAAQ,aAAc,OAFlBvX,EAAE,GAIrB,QAAS+8H,GAAW/8H,GAChB,MAAQA,GAAE,GAAYuxF,EAAOqrC,EAASC,EAAQ78H,EAAE,GAAG0B,QAAU1B,EAAE,GACzDuxF,EAAOurC,EAAM,KACb98H,EAAE,GAAGuX,QAAQ,aAAc,OAFlBvX,EAAE,GAIrB,QAASg9H,GAAQh9H,GACb,MAAQA,GAAE,GAAYuxF,EAAOqrC,GAAU58H,EAAE,GACnCuxF,EAAOurC,GACP98H,EAAE,GAAGuX,QAAQ,aAAc,OAFlBvX,EAAE,GA9CrB,GACI48H,GAAQC,EAAOC,EADfG,GAAgB,EAAMC,GAAiB,CAG3C,OAAO1jF,GAAM/gC,IAAI,SAAS6/B,GACtB,GAAIt4C,GAAIs4C,EAAKnrC,MAAM,0BACnB,OAAKnN,GAGS,MAAV48H,GACAA,EAAS58H,EAAE,GAAG0B,OACdm7H,EAAQ78H,EAAE,GAAG0B,OACbo7H,EAAO98H,EAAE,GAAG0B,OACL1B,IAGP48H,EAASC,EAAQC,GAAQ98H,EAAE,GAAG0B,OAAS1B,EAAE,GAAG0B,OAAS1B,EAAE,GAAG0B,SAC1Dw7H,GAAiB,GACjBN,GAAU58H,EAAE,GAAG0B,SACfu7H,GAAgB,GAEhBL,EAAS58H,EAAE,GAAG0B,SACdk7H,EAAS58H,EAAE,GAAG0B,QACdm7H,EAAQ78H,EAAE,GAAG0B,SACbm7H,EAAQ78H,EAAE,GAAG0B,QACbo7H,EAAO98H,EAAE,GAAG0B,SACZo7H,EAAO98H,EAAE,GAAG0B,QAET1B,IArBKs4C,KAsBb7/B,IAAIikH,EAAYC,EACfM,EAAgBC,EAAiBH,EAAaJ,EAAYK,MAsBnEj9H,KAAKmzG,EAAOjxG,WAMf7C,EAAQ26H,gBAAkB,SAASj1H,GAC/B,GAAIskE,GAAUtkE,EAAEskE,OACZA,KAAYA,EAAQwhB,cACpBxhB,EAAQ2gD,qBACR3gD,EAAQhoC,UAAUo5F,iBAClBpxD,EAAQwhB,YAAcxhB,EAAQhoC,WAElC5hC,KAAKorF,YAAcxhB,GAAWA,EAAQwhB,WAEtC,IAAIqqB,GAAanwG,EAAEmwG,UACfA,KACAA,EAAWrqB,YAAYnT,IAAI,WAAYj4E,KAAKm6H,aAC5C1kB,EAAWrqB,YAAYnT,IAAI,cAAej4E,KAAKo6H,gBAC/C3kB,EAAWrqB,YAAYnT,IAAI,cAAej4E,KAAKq6H,gBAC/C5kB,EAAWrqB,YAAYnT,IAAI,eAAgBj4E,KAAKs6H,iBAChD7kB,EAAWrqB,YAAY3K,KAAKxI,IAAI,SAAUj4E,KAAKw6H,yBAC/C/kB,EAAWrqB,YAAYn/C,OAAOgsC,IAAI,SAAUj4E,KAAKw6H,0BAGjD5wD,IACAA,EAAQwhB,YAAYv9B,GAAG,WAAY7tD,KAAKm6H,aACxCvwD,EAAQwhB,YAAYv9B,GAAG,cAAe7tD,KAAKo6H,gBAC3CxwD,EAAQwhB,YAAYv9B,GAAG,cAAe7tD,KAAKq6H,gBAC3CzwD,EAAQwhB,YAAYv9B,GAAG,eAAgB7tD,KAAKs6H,iBAC5C1wD,EAAQwhB,YAAY3K,KAAK5yB,GAAG,SAAU7tD,KAAKw6H,yBAC3C5wD,EAAQwhB,YAAYn/C,OAAO4hB,GAAG,SAAU7tD,KAAKw6H,0BAG7C5wD,GAAW5pE,KAAKgtE,mBAAqBpD,EAAQhoC,UAAUorC,oBACnDpD,EAAQhoC,UAAUorC,kBAClBhtE,KAAKq6H,iBAELr6H,KAAKs6H,oBA+CjB16H,EAAQq6H,YAAcA,EAGtBprE,EAAS,YAAYoqB,cAAcy6B,EAAOjxG,UAAW,UACjDk7H,mBACI76H,IAAK,SAAS+sB,GACVoqG,EAAYj6H,MACR6vB,GACA7vB,KAAK6tD,GAAG,gBAAiB7tD,KAAKk6H,6BAC9Bl6H,KAAK6tD,GAAG,YAAayd,KAErBtrE,KAAKi4E,IAAI,gBAAiBj4E,KAAKk6H,6BAC/Bl6H,KAAKi4E,IAAI,YAAa3M,KAG9B7hE,OAAO,GAEXm0H,mBACI96H,IAAK,SAAS+sB,GACV7vB,KAAK84H,oBAAsBjpG,GAE/BpmB,OAAO,OAQfwiD,IAAInsD,OAAO,8BAA8B,UAAU,UAAU,SAAS,aAAc,SAAS+uD,EAAUjvD,EAASC,GAChH,YAEA,IAAIg/E,GAAQhwB,EAAS,eAAegwB,MAEhCg/C,EAAWj+H,EAAQi+H,SAAW,cAElC,WAEI79H,KAAK89H,mBAAqB,KAC1B99H,KAAK+9H,kBAAoB,KACzB/9H,KAAKs+F,cAAgB,SAAS10B,EAASi4C,EAAWx1C,GAC9C,GAAIvzB,GAAO8wB,EAAQ0T,QAAQjR,EAC3B,OAAIrsE,MAAK89H,mBAAmBjvH,KAAKiqC,GACtB,QACM,gBAAb+oE,GACO7hH,KAAK+9H,mBACL/9H,KAAK+9H,kBAAkBlvH,KAAKiqC,GAC5B,MACJ,IAGX94C,KAAKu+F,mBAAqB,SAAS30B,EAASi4C,EAAWx1C,GACnD,MAAO,OAGXrsE,KAAKg+H,iBAAmB,SAASp0D,EAASyC,EAAKC,GAC3C,GACIxzB,GAAO8wB,EAAQ0T,QAAQjR,GACvB4xD,EAAanlF,EAAKhgB,OAFb,KAGT,KAAmB,GAAfmlG,EAAJ,CAQA,IALA,GAAIl/C,GAAczS,GAAUxzB,EAAK52C,OAC7B0pG,EAAShiC,EAAQwG,YACjB0O,EAAWzS,EACX2S,EAAS3S,IAEJA,EAAMu/B,GAAQ,CACnB,GAAIxtF,GAAQwrD,EAAQ0T,QAAQjR,GAAKvzC,OAZ5B,KAcL,KAAc,GAAV1a,EAAJ,CAGA,GAAIA,GAAS6/G,EACT,KAEJj/C,GAAS3S,GAGb,GAAI2S,EAASF,EAAU,CACnB,GAAIG,GAAYrV,EAAQ0T,QAAQ0B,GAAQ98E,MACxC,OAAO,IAAI28E,GAAMC,EAAUC,EAAaC,EAAQC,MAIxDj/E,KAAKk+H,oBAAsB,SAASt0D,EAASmkB,EAAS1hB,EAAKC,EAAQ6zB,GAC/D,GAAIn2D,IAASqiC,IAAKA,EAAKC,OAAQA,EAAS,GACpCriC,EAAM2/B,EAAQm2B,oBAAoBhS,EAAS/jD,EAAOm2D,EACtD,IAAKl2D,EAAL,CAGA,GAAIq1D,GAAK11B,EAAQsT,YAAYjzC,EAAIoiC,IAQjC,OAPU,OAANizB,IACAA,EAAK11B,EAAQ00B,cAAcr0D,EAAIoiC,MAEzB,SAANizB,GAAiBr1D,EAAIoiC,IAAMriC,EAAMqiC,MACjCpiC,EAAIoiC,MACJpiC,EAAIqiC,OAAS1C,EAAQ0T,QAAQrzC,EAAIoiC,KAAKnqE,QAEnC28E,EAAMmB,WAAWh2C,EAAOC,KAGnCjqC,KAAKm+H,oBAAsB,SAASv0D,EAASmkB,EAAS1hB,EAAKC,EAAQ6zB,GAC/D,GAAIl2D,IAAOoiC,IAAKA,EAAKC,OAAQA,GACzBtiC,EAAQ4/B,EAAQ4iB,oBAAoBuB,EAAS9jD,EAEjD,IAAKD,EAML,MAHAA,GAAMsiC,SACNriC,EAAIqiC,SAEIuS,EAAMmB,WAAWh2C,EAAOC,MAErC1pC,KAAKs9H,EAASp7H,aAIjBwpD,IAAInsD,OAAO,sBAAsB,UAAU,UAAU,SAAS,eAAgB,SAAS+uD,EAAUjvD,EAASC,GAC1G,YAEAD,GAAQq0H,QAAS,EACjBr0H,EAAQm0H,SAAW,SACnBn0H,EAAQo2D,QAAU,ojFAyHRnH,EAAS,cACfkH,gBAAgBn2D,EAAQo2D,QAASp2D,EAAQm0H,YAG7C9nE,IAAInsD,OAAO,oBAAoB,UAAU,UAAU,SAAS,cAAc,cAAc,aAAc,SAAS+uD,EAAUjvD,EAASC,GAClI,YAOA,SAASu+H,GAAYx0D,GACjB5pE,KAAK4pE,QAAUA,EACf5pE,KAAK4pE,QAAQy0D,cAAgBr+H,KAC7BA,KAAK4pE,QAAQmhC,aAAe/qG,KAAK+qG,aACjC/qG,KAAK4pE,QAAQwiC,uBAAyBpsG,KAAKosG,uBAC3CpsG,KAAKs+H,eAAiBt+H,KAAKs+H,eAAe17F,KAAK5iC,MAC/CA,KAAKu+H,cAAgBv+H,KAAKu+H,cAAc37F,KAAK5iC,MAC7CA,KAAKw+H,eAAiBx+H,KAAKw+H,eAAe57F,KAAK5iC,MAC/CA,KAAK4pE,QAAQ60D,mBACbz+H,KAAK0+H,gBAAkB1+H,KAAK0+H,gBAAgB97F,KAAK5iC,MAEjDA,KAAK4pE,QAAQ/b,GAAG,SAAU7tD,KAAKs+H,gBAC/Bt+H,KAAK4pE,QAAQ/b,GAAG,aAAc7tD,KAAK2+H,cACnC3+H,KAAK4pE,QAAQ/b,GAAG,eAAgB7tD,KAAK0+H,iBAlBzC,GACIh9F,IADMmtB,EAAS,aACTA,EAAS,aACPA,GAAS,WAAWgwB,OAmBhC,WACI7+E,KAAK+qG,aAAe,SAAS1+B,GACzB,GAAI/vC,EAKJ,OAHIA,GADAt8B,KAAKmlF,YACDnlF,KAAKmlF,YAAY9Y,IAAQrsE,KAAKmlF,YAAY9Y,GAAKoe,UAAY,EAE3D,EACHzqF,KAAK48F,cAAiB58F,KAAK6hG,UAAUx1B,GAG/BrsE,KAAK6hG,UAAUx1B,GAAKnqE,OAAS,EAAIo6B,EAFjC,EAAIA,GAMnBt8B,KAAKosG,uBAAyB,WAC1B,GAAID,GAAa,CAKjB,OAJAnsG,MAAKmlF,YAAYrjF,QAAQ,SAASyzB,GAC1BA,GAAKA,EAAEk1D,WAAal1D,EAAE64B,SACtB+9C,GAAc52E,EAAEk1D,YAEjB0hB,GAGXnsG,KAAK0+H,gBAAkB,SAASp5H,GAC5BtF,KAAKk+E,OAAO54E,EAAEghC,SAGlBtmC,KAAKk+E,OAAS,SAAS53C,GACfA,GAAWA,EAAO+3F,eAAiB/3F,EAAO+3F,eAAiBr+H,MAC3DsmC,EAAO+3F,cAAclgD,SAErBn+E,KAAKsmC,QAAUA,IAGnBtmC,KAAKm+E,SACLn+E,KAAKsmC,OAASA,EAEVA,IACAA,EAAO+3F,cAAgBr+H,KACvBsmC,EAAOqgC,SAAS9Y,GAAG,eAAgB7tD,KAAKw+H,gBACxCl4F,EAAOqgC,SAAS9Y,GAAG,cAAe7tD,KAAKu+H,kBAG/Cv+H,KAAKm+E,OAAS,SAAS74E,GACnB,GAAIghC,GAAStmC,KAAKsmC,MAClB,IAAKA,EAAL,CAGAtmC,KAAKsmC,OAAS,KACdA,EAAO+3F,cAAgB,KAEvB/3F,EAAOqgC,SAASsR,IAAI,eAAgBj4E,KAAKw+H,gBACzCl4F,EAAOqgC,SAASsR,IAAI,cAAej4E,KAAKu+H,cACxC,IAAIp5C,GAAcnlF,KAAK4pE,QAAQub,WAC/BA,IAAeA,EAAYrjF,QAAQ,SAASyzB,GACpCA,GAAKA,EAAE6/B,IAAM7/B,EAAE6/B,GAAG9yB,aAClB/M,EAAEqpG,aAAc,EAChBrpG,EAAE6/B,GAAG9yB,WAAWC,YAAYhN,EAAE6/B,SAK1Cp1D,KAAK2+H,aAAe,SAASr5H,EAAGskE,GAC5B,GAAIub,GAAcvb,EAAQub,WAC1B,IAAKA,GAAgB7/E,EAAE2+B,OAAvB,CAMA,IAAK,GAJD64C,GAAOx3E,EAAE7B,KACTumC,EAAQ8yC,EAAK9yC,MAAMqiC,IACnBpiC,EAAM6yC,EAAK7yC,IAAIoiC,IACf1vB,EAAmB,OAAZr3C,EAAE2+B,OACJl/B,EAAIilC,EAAQ,EAAGjlC,EAAIklC,EAAKllC,IACzBogF,EAAYpgF,KACZogF,EAAYpgF,GAAGqpD,OAASzR,EAE5BwoC,GAAYl7C,KACR0S,EACKwoC,EAAYn7C,GAGbm7C,EAAYl7C,GAAKmkB,OAASzR,EAF1BwoC,EAAYn7C,GAASm7C,EAAYl7C,IAIjCk7C,EAAYn7C,IAAUm7C,EAAYl7C,KAClCk7C,EAAYn7C,OAASp6B,IACzBu1E,EAAYl7C,GAAKmkB,OAASzR,MAKtC38C,KAAKs+H,eAAiB,SAAS3pG,GAC3B,GAAIwwD,GAAcnlF,KAAK4pE,QAAQub,WAC/B,IAAKA,EAAL,CAEA,GAAIrG,GAAWnqD,EAAMqV,MAAMqiC,IACvB1yD,EAAMgb,EAAMsV,IAAIoiC,IAAMyS,CAE1B,IAAY,IAARnlE,OACG,IAAoB,UAAhBgb,EAAMsP,OAAoB,CACjC,GAAIwtB,GAAU0zB,EAAY3vE,OAAOspE,EAAW,EAAGnlE,EAC/C83C,GAAQ3vD,QAAQ,SAASyzB,GACrBA,GAAKv1B,KAAK6+H,iBAAiBtpG,IAC5Bv1B,MACHA,KAAK8+H,kBACF,CACH,GAAIxwG,GAAO,GAAI9hB,OAAMmN,EACrB2U,GAAK+N,QAAQyiD,EAAU,GACvBqG,EAAY3vE,OAAOvE,MAAMk0E,EAAa72D,GACtCtuB,KAAK8+H,iBAIb9+H,KAAK8+H,YAAc,WACf,GAAI35C,GAAcnlF,KAAK4pE,QAAQub,WAC/B,IAAKA,EAAL,CACA,GAAI45C,IAAY,CAChB55C,GAAYrjF,QAAQ,SAASyzB,EAAGxwB,GAC5B,GAAIwwB,EAGA,IAFAwpG,GAAY,EACZxpG,EAAE82C,IAAMtnE,EACDwwB,EAAEypG,YACLzpG,EAAEypG,WAAW3yD,IAAMtnE,EACnBwwB,EAAIA,EAAEypG,aAIdD,IACA/+H,KAAK4pE,QAAQub,YAAc,QAGnCnlF,KAAKi/H,cAAgB,SAAS1pG,GACrBv1B,KAAK4pE,QAAQub,cACdnlF,KAAK4pE,QAAQub,YAAc,GAAI34E,OAAMxM,KAAK4pE,QAAQwG,aAEtD,IAAI0H,GAAM93E,KAAK4pE,QAAQub,YAAY5vD,EAAE82C,IACjCyL,KACAviD,EAAEypG,WAAalnD,EACXA,EAAI1iB,IAAM0iB,EAAI1iB,GAAG9yB,aACjBw1C,EAAI1iB,GAAG9yB,WAAWC,YAAYu1C,EAAI1iB,IAClC0iB,EAAI8mD,aAAc,IAI1B5+H,KAAK4pE,QAAQub,YAAY5vD,EAAE82C,KAAO92C,EAElCA,EAAEq0C,QAAU5pE,KAAK4pE,OAEjB,IAAIjD,GAAW3mE,KAAKsmC,OAAOqgC,QACvBpxC,GAAE00B,OAAS10B,EAAE6/B,KACb7/B,EAAE6/B,GAAK1zB,EAAIyF,cAAc,OACzB5R,EAAE6/B,GAAGhZ,UAAY7mB,EAAE00B,MAEnB10B,EAAE6/B,KACF1zB,EAAI2zB,YAAY9/B,EAAE6/B,GAAI,2BACtB7/B,EAAE6/B,GAAGvkB,MAAMmb,SAAW,WACtBz2B,EAAE6/B,GAAGvkB,MAAMquF,OAAS,EACpBv4D,EAAS/lE,UAAUuiC,YAAY5N,EAAE6/B,IACjC7/B,EAAEqpG,aAAc,GAGfrpG,EAAE4pG,cACH5pG,EAAE6/B,GAAGvkB,MAAMquF,OAAS,GAEH,MAAjB3pG,EAAE6pG,cACF7pG,EAAE6pG,YAAc7pG,EAAE6/B,GAAGjX,cAEP,MAAd5oB,EAAEk1D,WACFl1D,EAAEk1D,SAAWl1D,EAAE6pG,YAAcz4D,EAAS6L,YAAYD,WAGtD,IAAIuK,GAAO98E,KAAK4pE,QAAQmT,UAAUxnD,EAAE82C,IAAK,EAEzC,IADA92C,EAAE8pG,MAAQviD,EACNA,EAAM,CACN,GAAIqI,GAAcnlF,KAAK4pE,QAAQub,WAC3B5vD,GAAE82C,KAAOyQ,EAAK7yC,IAAIoiC,KAAQ8Y,EAAYrI,EAAK9yC,MAAMqiC,KAGjD92C,EAAE64B,QAAS,EAFX+2B,EAAYrI,EAAK9yC,MAAMqiC,KAAO92C,EAUtC,MALAv1B,MAAK4pE,QAAQW,MAAM,cAAe9mE,MAAMumC,OAAOqiC,IAAK92C,EAAE82C,QAEtDrsE,KAAK8+H,cACL9+H,KAAKu+H,cAAc,KAAM53D,GACzB3mE,KAAKs/H,gBAAgB/pG,GACdA,GAGXv1B,KAAK6+H,iBAAmB,SAAStpG,GAK7B,GAJAA,EAAEqpG,aAAc,EAChBrpG,EAAEq0C,QAAU,KACRr0C,EAAE6/B,IAAM7/B,EAAE6/B,GAAG9yB,YACb/M,EAAE6/B,GAAG9yB,WAAWC,YAAYhN,EAAE6/B,IAC9B7/B,EAAE+Q,QAAU/Q,EAAE+Q,OAAOzjC,QAAS,IAC9B0yB,EAAE+Q,OAAOzjC,UACX,MAAMyC,IACR,GAAItF,KAAK4pE,QAAQub,YAAa,CAC1B,GAAIo6C,GAAKv/H,KAAK4pE,QAAQub,YAAY5vD,EAAE82C,IACpC,IAAIkzD,GAAMhqG,EACNv1B,KAAK4pE,QAAQub,YAAY5vD,EAAE82C,KAAO92C,EAAEypG,WAChCzpG,EAAEypG,YACFh/H,KAAKs/H,gBAAgB/pG,EAAEypG,gBAE3B,MAAOO,GAAI,CACP,GAAIA,EAAGP,YAAczpG,EAAG,CACpBgqG,EAAGP,WAAazpG,EAAEypG,UAClB,OAEJO,EAAKA,EAAGP,YAIpBh/H,KAAK4pE,QAAQW,MAAM,cAAe9mE,MAAMumC,OAAOqiC,IAAK92C,EAAE82C,QACtDrsE,KAAK8+H,eAGT9+H,KAAKw/H,gBAAkB,SAASnzD,GAI5B,IAHA,GAAI8Y,GAAcnlF,KAAK4pE,QAAQub,YAC3B5vD,EAAI4vD,GAAeA,EAAY9Y,GAC/B/vB,KACG/mB,GACH+mB,EAAKpjC,KAAKqc,GACVA,EAAIA,EAAEypG,UAEV,OAAO1iF,IAGXt8C,KAAKs/H,gBAAkB,SAAS/pG,GAC5Bv1B,KAAK4pE,QAAQ60D,gBAAgBvlH,KAAKqc,GAClCv1B,KAAKsmC,QAAUtmC,KAAKsmC,OAAOqgC,SAAS2wC,cAGxCt3G,KAAKw+H,eAAiB,SAASl5H,EAAGqhE,GAC9B,GAAI84D,GAAiBz/H,KAAK4pE,QAAQ60D,gBAC9B76H,EAAS+iE,EAAS6L,WAEtB,IAAKitD,GAAmBA,EAAev9H,OAAvC,CAEA,IAAK,GADDwkC,GAAMnvB,EAAAA,EACDxS,EAAI,EAAGA,EAAI06H,EAAev9H,OAAQ6C,IAAK,CAC5C,GAAIwwB,GAAIkqG,EAAe16H,EACvB,IAAKwwB,GAAMA,EAAE6/B,IACT7/B,EAAEq0C,SAAW5pE,KAAK4pE,QAAtB,CACA,IAAKr0C,EAAEqpG,YAAa,CAChB,GAAI5+H,KAAK4pE,QAAQub,YAAY5vD,EAAE82C,MAAQ92C,EACnC,QACJA,GAAEqpG,aAAc,EAChBj4D,EAAS/lE,UAAUuiC,YAAY5N,EAAE6/B,IAGrC7/B,EAAE+G,EAAI/G,EAAE6/B,GAAGjX,aAEN5oB,EAAEmqG,aACHnqG,EAAEA,EAAIA,EAAE6/B,GAAGuB,YACXphC,EAAE6wE,YAAc9uE,KAAKstF,KAAKrvF,EAAEA,EAAI3xB,EAAO6uE,gBAG3C,IAAIgY,GAAWl1D,EAAE+G,EAAI14B,EAAO2uE,UACxBh9C,GAAEoqG,YACFl1C,GAAYzqF,KAAK4pE,QAAQohC,gBAAgBz1E,EAAE82C,MAC5B,IACXoe,EAAW,GAEfl1D,EAAEk1D,UAAYA,IACdl1D,EAAEk1D,SAAWA,EACTl1D,EAAE82C,IAAM3lC,IACRA,EAAMnR,EAAE82C,OAGhB3lC,GAAOnvB,EAAAA,IACPvX,KAAK4pE,QAAQW,MAAM,cAAe9mE,MAAMumC,OAAOqiC,IAAK3lC,MACpD1mC,KAAK4pE,QAAQ08B,gBAAkB,MAEnCtmG,KAAK4pE,QAAQ60D,qBAGjBz+H,KAAKu+H,cAAgB,SAASj5H,EAAGqhE,GAC7B,GAAI/iE,GAAS+iE,EAAS6L,YAClB2S,EAAcnlF,KAAK4pE,QAAQub,WAC/B,IAAKA,EAAL,CAKA,IAHA,GAAIz6C,GAAQpT,KAAKoP,IAAI1mC,KAAK8/E,SAAUl8E,EAAOk8E,UACvCjiD,EAAOvG,KAAKqP,IAAI3mC,KAAK+/E,QAASn8E,EAAOm8E,QAASoF,EAAYjjF,QAEvDwoC,EAAQ,IAAMy6C,EAAYz6C,IAC7BA,GAEJ1qC,MAAK8/E,SAAWl8E,EAAOk8E,SACvB9/E,KAAK+/E,QAAUn8E,EAAOm8E,QAEtBpZ,EAAS+M,aAAa9vE,OAASA,CAC/B,KAAK,GAAImB,GAAI2lC,EAAO3lC,GAAK84B,EAAM94B,IAAK,CAChC,GAAIwwB,GAAI4vD,EAAYpgF,EACpB,IAAKwwB,GAAMA,EAAE6/B,GACb,GAAI7/B,EAAE64B,OACF74B,EAAE6/B,GAAGvkB,MAAM3L,KAAO,KAAO3P,EAAE6pG,aAAe,GAAK,SADnD,CAIK7pG,EAAEqpG,cACHrpG,EAAEqpG,aAAc,EAChBj4D,EAAS/lE,UAAUuiC,YAAY5N,EAAE6/B,IAErC,IAAIlwB,GAAMyhC,EAAS+M,aAAa22C,kBAAkBh+C,IAAKtnE,EAAGunE,OAAO,IAAI,GAAMpnC,GACtE3P,GAAEoqG,YACHz6F,GAAOthC,EAAO2uE,WAAavyE,KAAK4pE,QAAQohC,gBAAgBz1E,EAAE82C,MAC9D92C,EAAE6/B,GAAGvkB,MAAM3L,IAAMA,EAAMthC,EAAOohE,OAAS,IAEvC,IAAI90B,GAAO3a,EAAE4pG,YAAc,EAAIx4D,EAAS88C,WACnCluF,GAAEmqG,aACHxvF,GAAQy2B,EAASv2B,YACrB7a,EAAE6/B,GAAGvkB,MAAMX,KAAOA,EAAO,KAErB3a,EAAEqqG,WAAarqG,EAAE6wE,cACjB7wE,EAAE6/B,GAAGvkB,MAAM2lB,SAAW5yD,EAAOooC,MAAQ,EAAIpoC,EAAO46C,QAAU,MAG1DjpB,EAAEmqG,WACFnqG,EAAE6/B,GAAGvkB,MAAMuD,MAAQuyB,EAASinD,UAAUh+C,WAAa,KAEnDr6C,EAAE6/B,GAAGvkB,MAAMuD,MAAQ,SAKhC7zC,KAAK69H,EAAY37H,WAGpB7C,EAAQw+H,YAAcA,IAItBnyE,IAAInsD,OAAO,wBAAwB,UAAU,UAAU,SAAS,mBAAmB,cAAc,aAAc,SAAS+uD,EAAUjvD,EAASC,GAC3I,YAKA,SAASggI,GAAaplH,EAAOoyF,EAAQizB,GAIjC,IAHA,GAAIp1F,GAAQ,EACR7M,EAAOpjB,EAAMvY,OAAS,EAEnBwoC,GAAS7M,GAAM,CAClB,GAAI+jE,GAAOl3D,EAAQ7M,GAAS,EACxBp9B,EAAIq/H,EAAWjzB,EAAQpyF,EAAMmnF,GACjC,IAAInhG,EAAI,EACJiqC,EAAQk3D,EAAM,MACb,CAAA,KAAInhG,EAAI,GAGT,MAAOmhG,EAFP/jE,GAAO+jE,EAAM,GAIrB,QAASl3D,EAAQ,GAGrB,QAASq1F,GAAgBn2D,EAASyC,EAAK+xB,GACnC,GAAImG,GAAc36B,EAAQ46B,iBAAiBzzE,KAAK8tD,EAAMH,cACtD,IAAK6lB,EAAYriG,OAAjB,CAGA,GAAI6C,GAAI86H,EAAat7B,GAAcl4B,IAAKA,EAAKC,QAAS,GAAIuS,EAAMH,cAC5D35E,GAAI,IACJA,GAAKA,EAAI,GAETA,GAAKw/F,EAAYriG,OACjB6C,EAAIq5F,EAAM,EAAI,EAAImG,EAAYriG,OAAS,EAC5B,IAAN6C,GAAWq5F,EAAM,IACtBr5F,EAAIw/F,EAAYriG,OAAS,EAE7B,IAAI8tE,GAAau0B,EAAYx/F,EAC7B,IAAKirE,GAAeouB,EAApB,CAGA,GAAIpuB,EAAW3D,MAAQA,EAAK,CACxB,GACI2D,EAAau0B,EAAYx/F,GAAKq5F,SACzBpuB,GAAcA,EAAW3D,MAAQA,EAC1C,KAAK2D,EACD,MAAOu0B,GAAY1tF,QAI3B,GAAI0iC,KACJ8yB,GAAM2D,EAAW3D,GACjB,IACI9yB,EAAQ6kD,EAAM,EAAI,UAAY,QAAQpuB,GACtCA,EAAau0B,EAAYx/F,GAAKq5F,SACzBpuB,GAAcA,EAAW3D,KAAOA,EACzC,OAAO9yB,GAAQr3C,QAAUq3C,IAtD7B,GAAI6kF,GAAcvvE,EAAS,mBAAmBuvE,YAC1C18F,EAAMmtB,EAAS,cACfgwB,EAAQhwB,EAAS,YAAYgwB,KAuDjCj/E,GAAQ2wG,gBAAkB,SAASjqE,EAAQ83D,GACvC,GAAIx0B,GAAUtjC,EAAOsjC,OAChBA,GAAQy0D,gBACTz0D,EAAQy0D,cAAgB,GAAID,GAAYx0D,GACxCA,EAAQy0D,cAAcngD,OAAO53C,GAGjC,IAAI1sB,GAAM0sB,EAAO2lD,oBACb5f,EAAMzyD,EAAIyyD,IACV2zD,EAAYp2D,EAAQy0D,cAAcmB,gBAAgBnzD,GAAK7nC,OAAO,SAASjP,GACvE,MAAiB,eAAVA,EAAE7c,OACV,EACCsnH,GACAA,EAAUn9H,UAEVwpE,GAAO+xB,CAEX,IACI6hC,GADA17B,EAAcw7B,EAAgBn2D,EAASyC,EAAK+xB,EAEhD,IAAImG,EAAa,CACb,GAAIv0B,GAAau0B,EAAY,EAC7B3qF,GAAI0yD,QAAU0D,EAAWp2D,KAAmC,gBAArBo2D,GAAW1D,OAC5C0D,EAAWp2D,IAAIsmH,GACflwD,EAAW1D,SAAW,EAC5B1yD,EAAIyyD,IAAM2D,EAAW3D,IACrB4zD,EAAa35F,EAAOqgC,SAASqK,aAAad,aAAat2D,EAAIyyD,SACxD,CAAA,GAAI2zD,EACP,MAEAC,IACItuG,MAAO,eACPyV,UAAW,UAGnBd,EAAOsjC,QAAQyzB,OAAOzjF,EAAIyyD,KAC1B/lC,EAAO1E,UAAUkrC,eAAelzD,EAEhC,IAAI2b,IACA82C,IAAKzyD,EAAIyyD,IACTqzD,YAAY,EACZP,aAAa,EACb/pE,GAAI1zB,EAAIyF,cAAc,OACtBzuB,KAAM,eAEN08C,EAAK7/B,EAAE6/B,GAAGjyB,YAAYzB,EAAIyF,cAAc,QACxCg5F,EAAQ5qG,EAAE6/B,GAAGjyB,YAAYzB,EAAIyF,cAAc,OAC/Cg5F,GAAM/4F,UAAY,sBAAwB64F,EAAW74F,SAErD,IAAI8I,GAAO5J,EAAOqgC,SAAS+M,aACtB22C,iBAAiBzwG,GAAKs2B,IAC3BiwF,GAAMtvF,MAAMX,KAAOA,EAAO5J,EAAOqgC,SAAS88C,YAAc,EAAI,KAE5DluF,EAAE6/B,GAAGhuB,UAAY,uBACjBguB,EAAGhuB,UAAY,gBAAkB64F,EAAW74F,UAC5CguB,EAAGhZ,UAAY6jF,EAAWtuG,KAAKhO,KAAK,QAEpCyxC,EAAGjyB,YAAYzB,EAAIyF,cAAc,OAEjC,IAAIy2C,GAAK,SAAS5G,EAAGzX,EAAQ5B,GACzB,GAAe,IAAX4B,IAA+B,QAAd5B,GAAqC,WAAdA,GAExC,MADApoC,GAAE1yB,WACM21D,QAAS,QAIzBjjC,GAAE1yB,QAAU,WACJyjC,EAAOwtE,cAAc1iC,iBAEzB9qC,EAAOutE,WAAWh2B,sBAAsBD,GACxChU,EAAQy0D,cAAcQ,iBAAiBtpG,GACvC+Q,EAAO2xC,IAAI,kBAAmB1iD,EAAE1yB,SAChCyjC,EAAO2xC,IAAI,gBAAiB1iD,EAAE1yB,SAC9ByjC,EAAO2xC,IAAI,UAAW1iD,EAAE1yB,SACxByjC,EAAO2xC,IAAI,SAAU1iD,EAAE1yB,WAG3ByjC,EAAOutE,WAAW91B,mBAAmBH,GACrCt3C,EAAOunB,GAAG,kBAAmBt4B,EAAE1yB,SAC/ByjC,EAAOunB,GAAG,gBAAiBt4B,EAAE1yB,SAC7ByjC,EAAOunB,GAAG,UAAWt4B,EAAE1yB,SACvByjC,EAAOunB,GAAG,SAAUt4B,EAAE1yB,SAEtByjC,EAAOsjC,QAAQy0D,cAAcY,cAAc1pG,GAE3CA,EAAE6/B,GAAGttB,YAAcxB,EAAO9C,MAAMZ,KAAK0D,GAErCA,EAAOqgC,SAASkH,qBAAqB,KAAM,IAAMvoC,OAAQ/P,EAAE6/B,GAAGjX,gBAIlEzc,EAAIq0B,gBAAgB,y7BAiCjB,MAIH9J,IAAInsD,OAAO,WAAW,UAAU,UAAU,SAAS,yBAAyB,cAAc,gBAAgB,aAAa,mBAAmB,kBAAkB,uBAAuB,2BAA2B,4BAA4B,kBAAkB,mBAAmB,6BAA6B,qBAAqB,uBAAuB,cAAe,SAAS+uD,EAAUjvD,EAASC,GACnY,YAEAgvD,GAAS,uBAET,IAAIntB,GAAMmtB,EAAS,aACf7nB,EAAQ6nB,EAAS,eAEjB6kD,EAAS7kD,EAAS,YAAY6kD,OAC9BjT,EAAc5xC,EAAS,kBAAkB4xC,YACzCqhB,EAAcjzD,EAAS,iBAAiBizD,YACxCse,EAAWvxE,EAAS,sBAAsBs+D,eAC9Ct+D,GAAS,0BACTA,EAAS,2BACTA,EAAS,iBACTA,EAAS,kBACTA,EAAS,4BACTA,EAAS,oBACTA,EAAS,sBAETjvD,EAAQgE,OAASirD,EAAS,YAC1BjvD,EAAQivD,SAAWA,EAGfjvD,EAAQE,OAASI,EAAoB,IACzCN,EAAQktD,KAAO,SAASsI,GACpB,GAAiB,gBAANA,GAAgB,CACvB,GAAIirE,GAAMjrE,CAEV,MADAA,EAAKluB,SAASo5F,eAAeD,IAEzB,KAAM,IAAIt/H,OAAM,4BAA8Bs/H,GAGtD,GAAIjrE,GAAMA,EAAGmrE,KAAOnrE,EAAGmrE,IAAIj6F,iBAAkBotE,GACzC,MAAOt+C,GAAGmrE,IAAIj6F,MAElB,IAAI78B,GAAQ,EACZ,IAAI2rD,GAAM,kBAAkBvmD,KAAKumD,EAAGorE,SAAU,CAC1C,GAAIC,GAAUrrE,CACd3rD,GAAQg3H,EAAQh3H,MAChB2rD,EAAK1zB,EAAIyF,cAAc,OACvBs5F,EAAQn+F,WAAW80B,aAAahC,EAAIqrE,OAC7BrrE,KACP3rD,EAAQi4B,EAAIyQ,aAAaijB,GACzBA,EAAGhZ,UAAY,GAGnB,IAAIyY,GAAMj1D,EAAQ8gI,kBAAkBj3H,GAEhC68B,EAAS,GAAIotE,GAAO,GAAI0sB,GAAShrE,GACrC9uB,GAAO6tE,WAAWt/C,EAElB,IAAI0rE,IACAr5F,SAAU2tB,EACVvuB,OAAQA,EACRmxE,SAAUnxE,EAAOwnB,OAAOlrB,KAAK0D,EAAQ,MASzC,OAPIm6F,KAASF,EAAIj0E,SAAWm0E,GAC5Bz5F,EAAMo5B,YAAYnpC,OAAQ,SAAUspG,EAAI9oB,UACxCnxE,EAAOunB,GAAG,UAAW,WACjB7mB,EAAMu5B,eAAetpC,OAAQ,SAAUspG,EAAI9oB,UAC3C8oB,EAAIj6F,OAAO1lC,UAAU2/H,IAAM,OAE/Bj6F,EAAO1lC,UAAU2/H,IAAMj6F,EAAOi6F,IAAMA,EAC7Bj6F,GAEX1mC,EAAQ8gI,kBAAoB,SAAS/uG,EAAMhvB;kCACvC,GAAIkyD,GAAM,GAAI4rC,GAAY9uE,EAAMhvB,EAEhC,OADAkyD,GAAI0tC,eAAe,GAAIuf,IAChBjtD,GAEXj1D,EAAQ6gG,YAAcA,EACtB7gG,EAAQkiH,YAAcA,EACtBliH,EAAQ23B,QAAU,UAEN,WACI00B,IAAI4C,UAAU,WAAY,SAAShpD,GAC3BA,IACAA,EAAEjC,OAAO21E,MAAK,GACd1zE,EAAE/F,OAASmsD,IAAInsD,QAEdm3B,OAAOg1B,MACRh1B,OAAOg1B,IAAMpmD,EACjB,KAAK,GAAI2D,KAAO3D,GAAOA,EAAEqH,eAAe1D,KACpCytB,OAAOg1B,IAAIziD,GAAO3D,EAAE2D,SAI5C3J,EAAOD,QAAUq3B,OAAOg1B,IAAI4C,SAAS,YAIhC,SAAShvD,EAAQD,GAEtBC,EAAOD,QAAU,WAAa,KAAM,IAAImB,OAAM,oCAKzC,SAASlB,EAAQD,IAEM,SAASwF,GAASvF,EAAOD,QAErD,WACE,GAAGwF,EAAO6vH,KACR,IAEE,MADA,IAAIA,OAAM,SAAUv8G,KAAM,eACnBu8G,KACP,MAAM5yH,IAGV,GAAIs+H,GAAUv7H,EAAOgxH,mBACPhxH,EAAOixH,gBACPjxH,EAAOw7H,aAErB,OAAO,UAAS9pH,EAAO+pH,GACrB,GAAIC,GAAU,GAAIH,GACdI,EAAUF,EAAIE,QACdroH,EAAOmoH,EAAInoH,IAEf,IAAGqoH,EAAS,IAAI,GAAIh8H,GAAI,EAAG4U,EAAM7C,EAAM5U,OAAQ6C,EAAI4U,IAAO5U,EACxD+7H,EAAQ7yF,OAAOn3B,EAAM/R,GAAIg8H,OACpB,KAAI,GAAIh8H,GAAI,EAAG4U,EAAM7C,EAAM5U,OAAQ6C,EAAI4U,IAAO5U,EACnD+7H,EAAQ7yF,OAAOn3B,EAAM/R,GAGvB,OAAO2T,GAAOooH,EAAQvK,QAAQ79G,GAAQooH,EAAQvK,gBAIrBh2H,KAAKX,EAAU,WAAa,MAAOI,WAI3D,SAASH,EAAQD,EAASM,GAE/B+rD,IAAInsD,OAAO,iCAAiC,UAAU,UAAU,SAAS,cAAc,iCAAkC,SAAS+uD,EAAUjvD,EAASC,GACrJ,YAEA,IAAIm4D,GAAMnJ,EAAS,cACfm5B,EAAqBn5B,EAAS,0BAA0Bm5B,mBAExDg5C,EAAqB,WACrBhhI,KAAKioF,QACDj+C,QAEQ4N,MAAQ,WACR3oC,MAAQ,gDAER2oC,MAAQ,SACR3oC,MAAQ,IACR0f,KAAQ,WAERipB,MAAQ,mBACR3oC,MAAQ,yBAER2oC,MAAQ,mBACR3oC,MAAQ,oDAER2oC,MAAQ,4BACR3oC,MAAQ,sBAER2oC,MAAQ,kBACR3oC,MAAQ,uCAER2oC,MAAQ,kBACR3oC,MAAQ,cAER2oC,MAAQ,eACR3oC,MAAQ,UAER2oC,MAAQ,eACR3oC,MAAQ,YAER2oC,MAAQ,OACR3oC,MAAQ,SAGhBgjB,SAEQ2lB,MAAQ,2BACR3oC,MAAQ,uDAER2oC,MAAQ,SACR3oC,MAAQ,cAER2oC,MAAQ,SACR3oC,MAAQ,IACR0f,KAAQ,UAERipB,MAAQ,SACR3oC,MAAQ,GACR0f,KAAQ,WAOxBqpC,GAAIN,SAASspE,EAAoBh5C,GAEjCpoF,EAAQohI,mBAAqBA,IAG7B/0E,IAAInsD,OAAO,mCAAmC,UAAU,UAAU,SAAS,aAAc,SAAS+uD,EAAUjvD,EAASC,GACrH,YAEA,IAAIg/E,GAAQhwB,EAAS,YAAYgwB,MAE7BoiD,EAAuB,cAE3B,WAEIjhI,KAAK0yF,aAAe,SAAS55C,EAAM1jB,GAC/B,QAAM,QAAQvmB,KAAKiqC,IAGZ,SAASjqC,KAAKumB,IAGzBp1B,KAAK2yF,YAAc,SAAS99B,EAAKwX,GAC7B,GAAIvzB,GAAO+b,EAAIyoB,QAAQjR,GACnB1+D,EAAQmrC,EAAKnrC,MAAM,WAEvB,KAAKA,EAAO,MAAO,EAEnB,IAAI2+D,GAAS3+D,EAAM,GAAGzL,OAClB2qF,EAAeh4B,EAAIi4B,qBAAqBzgB,IAAKA,EAAKC,OAAQA,GAE9D,KAAKugB,GAAgBA,EAAaxgB,KAAOA,EAAK,MAAO,EAErD,IAAI17C,GAAS3wB,KAAKgtF,WAAWn4B,EAAIyoB,QAAQuP,EAAaxgB,KACtDxX,GAAI98C,QAAQ,GAAI8mE,GAAMxS,EAAK,EAAGA,EAAKC,EAAO,GAAI37C,IAGlD3wB,KAAKgtF,WAAa,SAASl0C,GACvB,MAAOA,GAAKnrC,MAAM,QAAQ,MAG/BpN,KAAK0gI,EAAqBx+H,WAE7B7C,EAAQqhI,qBAAuBA,IAG/Bh1E,IAAInsD,OAAO,2BAA2B,UAAU,UAAU,SAAS,cAAc,YAAY,8BAA+B,SAAS+uD,EAAUjvD,EAASC,GACxJ,YAEA,IAAIm4D,GAAMnJ,EAAS,iBACfgwB,EAAQhwB,EAAS,eAAegwB,MAChCqiD,EAAeryE,EAAS,eAAegvE,SAEvCA,EAAWj+H,EAAQi+H,SAAW,SAASsD,GACnCA,IACAnhI,KAAK89H,mBAAqB,GAAI/wH,QAC1B/M,KAAK89H,mBAAmB3qH,OAAO4E,QAAQ,YAAa,IAAMopH,EAAan3F,QAE3EhqC,KAAK+9H,kBAAoB,GAAIhxH,QACzB/M,KAAK+9H,kBAAkB5qH,OAAO4E,QAAQ,YAAa,IAAMopH,EAAal3F,OAIlF+tB,GAAIN,SAASmmE,EAAUqD,GAEvB,WAEIlhI,KAAK89H,mBAAqB,8BAC1B99H,KAAK+9H,kBAAoB,kCACzB/9H,KAAKohI,yBAA0B,uBAC/BphI,KAAKqhI,yBAA2B,2BAChCrhI,KAAKshI,cAAgB,4BACrBthI,KAAKuhI,mBAAqBvhI,KAAKs+F,cAC/Bt+F,KAAKs+F,cAAgB,SAAS10B,EAASi4C,EAAWx1C,GAC9C,GAAIvzB,GAAO8wB,EAAQ0T,QAAQjR,EAE3B,IAAIrsE,KAAKohI,yBAAyBvyH,KAAKiqC,KAC9B94C,KAAKshI,cAAczyH,KAAKiqC,KAAU94C,KAAKqhI,yBAAyBxyH,KAAKiqC,GACtE,MAAO,EAGf,IAAIwmD,GAAKt/F,KAAKuhI,mBAAmB33D,EAASi4C,EAAWx1C,EAErD,QAAKizB,GAAMt/F,KAAKshI,cAAczyH,KAAKiqC,GACxB,QAEJwmD,GAGXt/F,KAAKu+F,mBAAqB,SAAS30B,EAASi4C,EAAWx1C,EAAKm1D,GACxD,GAAI1oF,GAAO8wB,EAAQ0T,QAAQjR,EAE3B,IAAIrsE,KAAKshI,cAAczyH,KAAKiqC,GACxB,MAAO94C,MAAKyhI,sBAAsB73D,EAAS9wB,EAAMuzB,EAErD,IAAI1+D,GAAQmrC,EAAKnrC,MAAM3N,KAAK89H,mBAC5B,IAAInwH,EAAO,CACP,GAAI5I,GAAI4I,EAAMwG,KAEd,IAAIxG,EAAM,GACN,MAAO3N,MAAKk+H,oBAAoBt0D,EAASj8D,EAAM,GAAI0+D,EAAKtnE,EAE5D,IAAIihC,GAAQ4jC,EAAQu0B,oBAAoB9xB,EAAKtnE,EAAI4I,EAAM,GAAGzL,OAAQ,EASlE,OAPI8jC,KAAUA,EAAM2oC,gBACZ6yD,EACAx7F,EAAQhmC,KAAK0hI,gBAAgB93D,EAASyC,GAClB,OAAbw1C,IACP77E,EAAQ,OAGTA,EAGX,GAAkB,cAAd67E,EAAJ,CAGA,GAAIl0G,GAAQmrC,EAAKnrC,MAAM3N,KAAK+9H,kBAC5B,IAAIpwH,EAAO,CACP,GAAI5I,GAAI4I,EAAMwG,MAAQxG,EAAM,GAAGzL,MAE/B,OAAIyL,GAAM,GACC3N,KAAKm+H,oBAAoBv0D,EAASj8D,EAAM,GAAI0+D,EAAKtnE,GAErD6kE,EAAQu0B,oBAAoB9xB,EAAKtnE,GAAI,MAIpD/E,KAAK0hI,gBAAkB,SAAS93D,EAASyC,GACrC,GAAIvzB,GAAO8wB,EAAQ0T,QAAQjR,GACvBs1D,EAAc7oF,EAAKhgB,OAAO,MAC1BgmD,EAAWzS,EACX0S,EAAcjmC,EAAK52C,MACvBmqE,IAAY,CAGZ,KAFA,GAAI2S,GAAS3S,EACTu/B,EAAShiC,EAAQwG,cACZ/D,EAAMu/B,GAAQ,CACnB9yD,EAAO8wB,EAAQ0T,QAAQjR,EACvB,IAAI17C,GAASmoB,EAAKhgB,OAAO,KACzB,KAAgB,IAAZnI,EAAJ,CAEA,GAAKgxG,EAAchxG,EACf,KACJ,IAAIixG,GAAW5hI,KAAKu+F,mBAAmB30B,EAAS,MAAOyC,EAEvD,IAAIu1D,EAAU,CACV,GAAIA,EAAS53F,MAAMqiC,KAAOyS,EACtB,KACG,IAAI8iD,EAASjzD,cAChBtC,EAAMu1D,EAAS33F,IAAIoiC,QAChB,IAAIs1D,GAAehxG,EACtB,MAGRquD,EAAS3S,GAGb,MAAO,IAAIwS,GAAMC,EAAUC,EAAaC,EAAQpV,EAAQ0T,QAAQ0B,GAAQ98E,SAE5ElC,KAAKyhI,sBAAwB,SAAS73D,EAAS9wB,EAAMuzB,GAOjD,IANA,GAAI0S,GAAcjmC,EAAKhgB,OAAO,QAC1B8yE,EAAShiC,EAAQwG,YACjB0O,EAAWzS,EAEX7hB,EAAK,uCACL6zC,EAAQ,IACHhyB,EAAMu/B,GAAQ,CACnB9yD,EAAO8wB,EAAQ0T,QAAQjR,EACvB,IAAI7rE,GAAIgqD,EAAGhvB,KAAKsd,EAChB,IAAKt4C,IACDA,EAAE,GAAI69F,IACLA,KAEAA,GAAO,MAGhB,GAAIrf,GAAS3S,CACb,IAAI2S,EAASF,EACT,MAAO,IAAID,GAAMC,EAAUC,EAAaC,EAAQlmC,EAAK52C,UAI9D3B,KAAKs9H,EAASp7H,aAIjBwpD,IAAInsD,OAAO,iBAAiB,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,4BAA4B,0BAA0B,4BAA6B,SAAS+uD,EAAUjvD,EAASC,GACxQ,YAEA,IAAIm4D,GAAMnJ,EAAS,cACf2xC,EAAW3xC,EAAS,UAAU0hC,KAC9BhI,EAAiB15B,EAAS,0BAA0BmyE,mBACpDC,EAAuBpyE,EAAS,4BAA4BoyE,qBAC5Dj1C,EAAkBn9B,EAAS,sBAAsBm9B,gBACjD61C,EAAiBhzE,EAAS,oBAAoBgvE,SAC9CzJ,EAAevlE,EAAS,2BAA2BulE,aAEnD7jC,EAAO,WACPvwF,KAAKuoF,eAAiBA,EACtBvoF,KAAK8hI,SAAW,GAAIb,GACpBjhI,KAAKszF,WAAa,GAAItH,GACtBhsF,KAAKylG,aAAe,GAAIo8B,GAE5B7pE,GAAIN,SAAS64B,EAAMiQ,GAEnB,WAEIxgG,KAAKwyF,kBAAoB,SAASh6C,EAAOM,EAAM25C,GAC3C,GAAI9hE,GAAS3wB,KAAKgtF,WAAWl0C,EAE7B,IAAa,SAATN,EAAkB,CACNM,EAAKnrC,MAAM,qBAEnBgjB,GAAU8hE,GAIlB,MAAO9hE,IAGX3wB,KAAK0yF,aAAe,SAASl6C,EAAOM,EAAM1jB,GACtC,MAAOp1B,MAAK8hI,SAASpvC,aAAa55C,EAAM1jB,IAG5Cp1B,KAAK2yF,YAAc,SAASn6C,EAAOqc,EAAKwX,GACpCrsE,KAAK8hI,SAASnvC,YAAY99B,EAAKwX,IAGnCrsE,KAAK4yF,aAAe,SAAShpB,GACzB,GAAIm4D,GAAS,GAAI3N,IAAc,OAAQl0H,EAAoB,IAAK,aAWhE,OAVA6hI,GAAO7L,iBAAiBtsD,EAAQ4W,eAEhCuhD,EAAOl0E,GAAG,WAAY,SAASvoD,GAC3BskE,EAAQ06B,eAAeh/F,EAAE7B,QAG7Bs+H,EAAOl0E,GAAG,YAAa,WACnB+b,EAAQ66B,qBAGLs9B,GAIX/hI,KAAK6zF,IAAM,iBACZtzF,KAAKgwF,EAAK9tF,WAEb7C,EAAQ2wF,KAAOA,KAMV,SAAS1wF,EAAQD,GAEtBC,EAAOD,QAAQS,GAAK,uBACpBR,EAAOD,QAAQk1E,IAAM,+5zCAIhB,SAASj1E,EAAQD,GAEtBqsD,IAAInsD,OAAO,qBAAqB,UAAU,UAAU,SAAS,cAAc,eAAe,gBAAgB,4BAA4B,gBAAiB,SAAS+uD,EAAUjvD,EAASC,GACnL,YAEA,IAAI6hC,GAAMmtB,EAAS,cACf6W,EAAO7W,EAAS,eAChB7nB,EAAQ6nB,EAAS,gBAgJjBs/C,EAAct/C,EAAS,4BAA4Bs/C,YACnD3wB,EAAU3uB,EAAS,cAEvBntB,GAAIq0B,gBAlJe,0xGAkJe,gBAElC,IAAI9L,GAAO,qrCAkBHlyC,QAAQ,QAAS,KAErBupB,EAAY,SAASgF,EAAQN,EAAOg8F,GACpC,GAAIC,GAAMvgG,EAAIyF,cAAc,MAC5B86F,GAAI7lF,UAAY6N,EAChBjqD,KAAKoyC,QAAU6vF,EAAIlwF,WAEnB/xC,KAAKuvE,QACLvvE,KAAKkiI,UAAU57F,KAGnB,WACItmC,KAAKkiI,UAAY,SAAS57F,GACtBA,EAAO7D,UAAYziC,KACnBsmC,EAAO1lC,UAAUuiC,YAAYnjC,KAAKoyC,SAClCpyC,KAAKsmC,OAASA,GAGlBtmC,KAAKmiI,cAAgB,SAASC,GAC1BpiI,KAAKyiC,UAAY2/F,EAAG3+F,cAAc,oBAClCzjC,KAAKqiI,WAAaD,EAAG3+F,cAAc,qBACnCzjC,KAAKsiI,cAAgBF,EAAG3+F,cAAc,uBACtCzjC,KAAKuiI,aAAeH,EAAG3+F,cAAc,6BACrCzjC,KAAKwiI,oBAAsBJ,EAAG3+F,cAAc,gCAC5CzjC,KAAKyiI,gBAAkBL,EAAG3+F,cAAc,6BACxCzjC,KAAK0iI,YAAc1iI,KAAKyiC,UAAUgB,cAAc,qBAChDzjC,KAAK2iI,aAAe3iI,KAAKqiI,WAAW5+F,cAAc,sBAGtDzjC,KAAKuvE,MAAQ,WACT,GAAI6yD,GAAKpiI,KAAKoyC,OAEdpyC,MAAKmiI,cAAcC,EAEnB,IAAIQ,GAAQ5iI,IACZgnC,GAAMo5B,YAAYgiE,EAAI,YAAa,SAAS98H,GACxC0C,WAAW,WACP46H,EAAMC,YAAYr/F,SACnB,GACHwD,EAAM4E,gBAAgBtmC,KAE1B0hC,EAAMo5B,YAAYgiE,EAAI,QAAS,SAAS98H,GACpC,GAAIC,GAAID,EAAEgiC,QAAUhiC,EAAE4hD,WAClBjjB,EAAS1+B,EAAEw0E,aAAa,SACxB91C,IAAU2+F,EAAM3+F,GAChB2+F,EAAM3+F,KACD2+F,EAAME,aAAar1E,SAASxpB,IACjC2+F,EAAME,aAAar1E,SAASxpB,GAAQzI,KAAKonG,GAC7C57F,EAAM4E,gBAAgBtmC,KAG1B0hC,EAAMo8B,sBAAsBg/D,EAAI,SAAS98H,EAAGi6D,EAAQj0B,GAChD,GAAIqyB,GAAY6f,EAAQ9f,gBAAgBpyB,GACpCktB,EAAUoqE,EAAME,aAAapzB,eAAenwC,EAAQ5B,EACpDnF,IAAWA,EAAQh9B,OACnBg9B,EAAQh9B,KAAKonG,GACb57F,EAAMw5B,UAAUl7D,MAIxBtF,KAAKk0F,UAAYxuB,EAAKH,YAAY,WAC9Bq9D,EAAM51B,MAAK,GAAO,KAGtBhmE,EAAMo5B,YAAYpgE,KAAK0iI,YAAa,QAAS,WACzCE,EAAM1uC,UAAU7uB,SAAS,MAE7Br+B,EAAMo5B,YAAYpgE,KAAK0iI,YAAa,QAAS,WACzCE,EAAMC,YAAcD,EAAMF,YAC1BE,EAAMF,YAAYj5H,OAASm5H,EAAMn2F,cAErCzF,EAAMo5B,YAAYpgE,KAAK2iI,aAAc,QAAS,WAC1CC,EAAMC,YAAcD,EAAMD,aAC1BC,EAAMF,YAAYj5H,OAASm5H,EAAMn2F,eAGzCzsC,KAAK+iI,kBAAoB,GAAI50B,KACzBzgD,QAAS,MACTnqD,KAAM,iBACNi4B,KAAM,SAAS8K,GACXA,EAAO7D,UAAUka,WAGzB38C,KAAK8iI,aAAe,GAAI30B,GACxBnuG,KAAK8iI,aAAatzB,UACdwzB,mBAAoB,SAASZ,GACzB,GAAIa,GAAYb,EAAGa,WAAab,EAAGa,SACnCb,GAAGC,WAAWxxF,MAAM4N,QAAUwkF,EAAY,GAAK,OAC/Cb,EAAGM,YAAYl/F,SAEnB0/F,0BAA2B,SAASd,GAChCA,EAAGC,WAAWxxF,MAAM4N,QAAU,GAC9B2jF,EAAGO,aAAan/F,SAEpB2/F,mBAAoB,SAASf,GACzBA,EAAGtxB,YAEPsyB,+BAAgC,SAAShB,GACrCA,EAAGiB,YAEP7mG,IAAO,SAAS4lG,GACZp6H,WAAW,WAAao6H,EAAGzlF,UAE/B2mF,OAAU,SAASlB,GACXA,EAAGS,aAAeT,EAAGO,cACrBP,EAAGrqH,UACPqqH,EAAGtxB,YAEPyyB,eAAgB,SAASnB,GACjBA,EAAGS,aAAeT,EAAGO,cACrBP,EAAGrqH,UACPqqH,EAAGiB,YAEPG,aAAc,SAASpB,GACfA,EAAGS,aAAeT,EAAGO,cACrBP,EAAGjjB,aACPijB,EAAGj1B,WAEPs2B,IAAO,SAASrB,IACXA,EAAGS,aAAeT,EAAGO,aAAeP,EAAGM,YAAcN,EAAGO,cAAcn/F,WAI/ExjC,KAAK8iI,aAAaz0B,cACd9qG,KAAM,mBACNmqD,SAAU+V,IAAK,cAAe4sC,IAAK,yBACnC70E,KAAM,SAAS4mG,GACXA,EAAGG,aAAap/E,SAAWi/E,EAAGG,aAAap/E,QAC3Ci/E,EAAGsB,kBAGPngI,KAAM,sBACNmqD,SAAU+V,IAAK,cAAe4sC,IAAK,yBACnC70E,KAAM,SAAS4mG,GACXA,EAAGI,oBAAoBr/E,SAAWi/E,EAAGI,oBAAoBr/E,QACzDi/E,EAAGsB,kBAGPngI,KAAM,mBACNmqD,SAAU+V,IAAK,cAAe4sC,IAAK,yBACnC70E,KAAM,SAAS4mG,GACXA,EAAGK,gBAAgBt/E,SAAWi/E,EAAGK,gBAAgBt/E,QACjDi/E,EAAGsB,mBAIX1jI,KAAK0jI,aAAe,WAChBhiG,EAAI8zB,YAAYx1D,KAAKuiI,aAAc,UAAWviI,KAAKuiI,aAAap/E,SAChEzhB,EAAI8zB,YAAYx1D,KAAKyiI,gBAAiB,UAAWziI,KAAKyiI,gBAAgBt/E,SACtEzhB,EAAI8zB,YAAYx1D,KAAKwiI,oBAAqB,UAAWxiI,KAAKwiI,oBAAoBr/E,SAC9EnjD,KAAKgtG,MAAK,GAAO,IAGrBhtG,KAAKysC,UAAY,SAAS+d,GACtBxqD,KAAKsmC,OAAOsjC,QAAQn9B,UAAU+d,GAAMxqD,KAAKsmC,OAAOytE,QAAQr7B,SAASluB,IACjExqD,KAAKsmC,OAAOqgC,SAASizC,qBAEzB55G,KAAKgtG,KAAO,SAASE,EAAaQ,EAAW4R,GACzC,GAAIt5E,GAAQhmC,KAAKsmC,OAAO0mE,KAAKhtG,KAAK0iI,YAAYj5H,OAC1CyjG,YAAaA,EACbQ,UAAWA,EACX59E,MAAM,EACNi1C,OAAQ/kE,KAAKuiI,aAAap/E,QAC1B8qD,cAAejuG,KAAKwiI,oBAAoBr/E,QACxC4qD,UAAW/tG,KAAKyiI,gBAAgBt/E,QAChCm8D,cAAeA,IAEfqkB,GAAW39F,GAAShmC,KAAK0iI,YAAYj5H,KACzCi4B,GAAI8zB,YAAYx1D,KAAKyiC,UAAW,cAAekhG,GAC/C3jI,KAAKsmC,OAAOikC,MAAM,iBAAmB58D,OAAQg2H,IAC7C3jI,KAAKysC,aAETzsC,KAAK8wG,SAAW,WACZ9wG,KAAKgtG,MAAK,GAAM,IAEpBhtG,KAAKqjI,SAAW,WACZrjI,KAAKgtG,MAAK,GAAM,IAEpBhtG,KAAKmtG,QAAU,WACX,GAAInnE,GAAQhmC,KAAKsmC,OAAO6mE,QAAQntG,KAAK0iI,YAAYj5H,OAC7Cs7D,OAAQ/kE,KAAKuiI,aAAap/E,QAC1B8qD,cAAejuG,KAAKwiI,oBAAoBr/E,QACxC4qD,UAAW/tG,KAAKyiI,gBAAgBt/E,UAEhCwgF,GAAW39F,GAAShmC,KAAK0iI,YAAYj5H,KACzCi4B,GAAI8zB,YAAYx1D,KAAKyiC,UAAW,cAAekhG,GAC/C3jI,KAAKsmC,OAAOikC,MAAM,iBAAmB58D,OAAQg2H,IAC7C3jI,KAAKysC,YACLzsC,KAAK28C,QAET38C,KAAK+X,QAAU,WACN/X,KAAKsmC,OAAO6tC,eACbn0E,KAAKsmC,OAAOvuB,QAAQ/X,KAAK2iI,aAAal5H,QAE9CzJ,KAAK4jI,mBAAqB,WACjB5jI,KAAKsmC,OAAO6tC,gBACbn0E,KAAKsmC,OAAOvuB,QAAQ/X,KAAK2iI,aAAal5H,OACtCzJ,KAAK8wG,aAGb9wG,KAAKm/G,WAAa,WACTn/G,KAAKsmC,OAAO6tC,eACbn0E,KAAKsmC,OAAO64E,WAAWn/G,KAAK2iI,aAAal5H,QAGjDzJ,KAAK28C,KAAO,WACR38C,KAAKoyC,QAAQvB,MAAM4N,QAAU,OAC7Bz+C,KAAKsmC,OAAOutE,WAAWh2B,sBAAsB79E,KAAK+iI,mBAClD/iI,KAAKsmC,OAAO9C,SAEhBxjC,KAAKusC,KAAO,SAAS9iC,EAAOw5H,GACxBjjI,KAAKoyC,QAAQvB,MAAM4N,QAAU,GAC7Bz+C,KAAKqiI,WAAWxxF,MAAM4N,QAAUwkF,EAAY,GAAK,OAEjDjjI,KAAKijI,UAAYA,EAEbx5H,IACAzJ,KAAK0iI,YAAYj5H,MAAQA,GAE7BzJ,KAAKgtG,MAAK,GAAO,GAAO,GAExBhtG,KAAK0iI,YAAYl/F,QACjBxjC,KAAK0iI,YAAY38F,SAEjB/lC,KAAKsmC,OAAOutE,WAAW91B,mBAAmB/9E,KAAK+iI,oBAGnD/iI,KAAKmnE,UAAY,WACb,GAAI/R,GAAKluB,SAASkgC,aAClB,OAAOhS,IAAMp1D,KAAK0iI,aAAettE,GAAMp1D,KAAK2iI,gBAEjDpiI,KAAK+gC,EAAU7+B,WAElB7C,EAAQ0hC,UAAYA,EAEpB1hC,EAAQmtG,OAAS,SAASzmE,EAAQ28F,IACrB38F,EAAO7D,WAAa,GAAInB,GAAUgF,IACxCiG,KAAKjG,EAAOsjC,QAAQyL,eAAgB4tD,MAI3B,WACIh3E,IAAI4C,UAAU,qBAAsB,kBAMnD,SAAShvD,EAAQD,GAgCtBqsD,IAAInsD,OAAO,wBAAyB,UAAW,UAAW,SAAU,eAAgB,SAAS+uD,EAAUjvD,EAASC,GAEhHD,EAAQq0H,QAAS,EACjBr0H,EAAQm0H,SAAW,iBACnBn0H,EAAQo2D,QAAU,+nFA4GRnH,EAAS,cACfkH,gBAAgBn2D,EAAQo2D,QAASp2D,EAAQm0H","file":"jsoneditor"} \ No newline at end of file +{"version":3,"sources":["./dist/jsoneditor.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","JSONEditor","container","options","json","Error","ieVersion","util","getInternetExplorerVersion","error","console","warn","onError","change","onChange","editable","onEditable","VALID_OPTIONS","Object","keys","forEach","option","indexOf","arguments","length","_create","Ajv","err","treemode","textmode","modes","prototype","DEBOUNCE_INTERVAL","mode","setMode","destroy","set","get","setText","jsonText","parse","getText","JSON","stringify","setName","name","getName","data","extend","oldMode","config","asText","clear","mixin","create","load","onModeChange","_onError","getMode","setSchema","schema","ajv","allErrors","verbose","validateSchema","compile","validate","refresh","registerMode","i","prop","isArray","reserved","require","global","f","e","t","n","r","s","o","u","a","code","l","1","setupAsync","opts","required","check","async","transpile","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","copy","checkGenerators","Function","checkAsyncFunction","getRegenerator","regenerator","runtime","regeneratorTranspile","getNodent","nodent","log","dontInstallRequireHook","nodentTranspile","promises","sourcemap","compileAsync","callback","_compileAsync","firstCall","deferCallback","setTimeout","self","missingSchema","schemaLoaded","sch","_refs","ref","_schemas","addSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","put","key","value","del","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","arrB","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","toString","hasOwnProperty","5","formats","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","undefined","UUID","JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","loadBeautify","beautify","js_beautify","localRefs","baseId","callValidate","compilation","result","apply","errors","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","validateCode","co","ucs2length","ValidationError","refs","keepSourceCode","source","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","definition","message","errorsText","macro","keyword","checkCompiling","_compilations","compiling","_formats","cv","endCompiling","compIndex","splice","arr","statement","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","resolveSchema","refPath","_getFullPath","getFullPath","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","ALL","KEYWORDS","TYPES","all","group","map","push","keywords","concat","types","custom","./_rules","9","obj","10","len","pos","charCodeAt","11","to","checkDataType","dataType","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","./ucs2length","12","validation","constructor","13","$keyword","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$schemaValue","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","__err","pop","compositeRule","14","$notOp","15","16","unicode","17","18","$it","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","19","$errs","every","$wasComposite","20","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$code","passContext","$parentData","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","22","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","23","$vSchema","24","$unknownFormats","unknownFormats","$allowUnknown","$isObject","$formatRef","25","$idx","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$matched","$ownProperties","ownProperties","$pProperty","i1","$missingPattern","31","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","32","$refCode","$refVal","$message","missingRefs","$error","__callValidate","33","$propertySch","$loopRequired","i3","34","$shouldContinue","$ifPassed","$caseIndex","if","then","continue","35","36","$shouldUseRule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$refKeywords","extendRefs","$rulesGroup","$typeChecked","37","addKeyword","_addRule","ruleGroup","rg","metaSchema","getKeyword","removeKeyword","j","add","remove","./dotjs/custom","38","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","39","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","40","enableV5","_addKeyword","inlineFunc","inlineFunctions","_formatLimit","patternRequired","meta","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","41","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","TypeError","String","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","isObject","objectToPromise","fn","results","promise","displayName","val","wrap","createPromise","__generatorFunction__","42","cmp","space","cycles","replacer","node","aobj","bobj","seen","parent","indent","colonSeparator","toJSON","objectKeys","sort","keyValue","","x","has","jsonify","43","./lib/parse","./lib/stringify","44","at","ch","text","escapee","\"","\\","/","charAt","string","isFinite","hex","uffff","parseInt","fromCharCode","white","word","reviver","walk","holder","k","45","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","46","RangeError","mapDomain","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","window","punycode","overflow","not-basic","invalid-input","Math","version","ucs2","47","qs","sep","eq","maxKeys","kstr","vstr","idx","substr","xs","48","stringifyPrimitive","ks","49","./decode","./encode","50","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","queryIndex","splitter","uSplit","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","51","arg","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","currentUriFormat","keyRef","_getSchemaObj","_getSchemaFragment","compileSchema","_fragments","fragment","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","_metaOpts","separator","dataPath","addFormat","cache","indent_size","errorDataPath","metaOpts","META_IGNORE_OPTIONS","optsSchemas","customKeyword","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5","Highlighter","History","SearchBox","ContextMenu","Node","ModeSwitcher","dom","highlighter","selection","multiselection","nodes","errorNodes","focusTarget","_setOptions","history","_createFrame","_createTable","frame","parentNode","removeChild","_debouncedValidate","searchBox","modeSwitcher","autocomplete","debounce","bind","content","table","params","field","_setRoot","expand","appendChild","getNodeFromTarget","blur","getValue","updateField","focus","querySelector","menu","collapse","tbody","getDom","expandAll","collapseAll","_onAction","action","_onChange","setError","duplicateErrors","schemaErrors","improveSchemaError","findNode","filter","entry","reduce","findParents","child","updateDom","recurse","startAutoScroll","mouseY","me","top","getAbsoluteTop","height","clientHeight","bottom","scrollTop","autoScrollStep","scrollHeight","autoScrollTimer","setInterval","stopAutoScroll","clearTimeout","setSelection","select","range","setSelectionOffset","getSelection","getSelectionOffset","nodeName","scrollTo","editor","animateTimeout","animateCallback","finalScrollTop","min","max","animate","diff","abs","onEvent","event","_onEvent","document","createElement","className","onclick","target","preventDefault","oninput","onchange","onkeydown","onkeyup","oncut","onpaste","onmousedown","onmouseup","onmouseover","onmouseout","addEventListener","onfocusin","onfocusout","undo","_onUndo","redo","_onRedo","disabled","canUndo","canRedo","_onKeyDown","_startDragDistance","_updateDragDistance","selected","showContextMenu","hasMoved","deselect","onDragStart","drag","_onMultiSelectStart","dragDistanceEvent","initialTarget","initialPageX","pageX","initialPageY","pageY","dragDistance","diffX","diffY","sqrt","start","end","mousemove","_onMultiSelect","mouseup","_onMultiSelectEnd","_findTopLevelNodes","removeEventListener","clearStartAndEnd","setSelected","first","startPath","getNodePath","endPath","startChild","endChild","childs","startIndex","endIndex","firstIndex","keynum","which","keyCode","altKey","ctrlKey","metaKey","shiftKey","handled","selectContentEditable","previous","ApplyTo","ActivationChar","innerText","startsWith","hnode","element","Show","Hide","stopPropagation","contentOuter","col","colgroupContent","width","anchor","onClose","click","onDuplicate","onRemove","close","show","locked","highlight","setHighlight","_cancelUnhighlight","unhighlight","unhighlightTimer","lock","unlock","actions","editField","oldValue","newValue","editValue","updateValue","changeType","oldType","newType","appendNodes","insertBeforeNodes","insertBefore","beforeNode","insertAfterNodes","afterNode","insertAfter","removeNodes","append","duplicateNodes","moveNodes","oldBeforeNode","moveBefore","newBeforeNode","hideChilds","oldSort","oldChilds","showChilds","newSort","newChilds","timestamp","oldSelection","newSelection","jsonlint","jsonString","sanitize","jsString","curr","prev","chars","pp","specialValues","regexp","escapeUnicodeChars","Number","Boolean","isUrlRegex","isUrl","getAbsoluteLeft","elem","getBoundingClientRect","left","pageXOffset","scrollLeft","pageYOffset","addClassName","classes","removeClassName","stripFormatting","divElement","childNodes","iMax","style","removeAttribute","attributes","attribute","specified","setEndOfContentEditable","contentEditableElement","createRange","selectNodeContents","removeAllRanges","addRange","sel","getRangeAt","rangeCount","startContainer","endContainer","startOffset","endOffset","firstChild","createTextNode","setStart","setEnd","getInnerText","buffer","flush","nodeValue","hasChildNodes","prevChild","prevName","_ieVersion","rv","navigator","appName","ua","userAgent","parseFloat","$1","isFirefox","listener","useCapture","attachEvent","detachEvent","parsePath","jsonPath","remainder","SyntaxError","substring","enums","more","additionalProperty","insideRect","margin","_margin","right","func","wait","immediate","timeout","context","later","callNow","textDiff","oldText","newText","oldEnd","newEnd","parser","trace","yy","symbols_","JSONString","STRING","JSONNumber","NUMBER","JSONNullLiteral","NULL","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","EOF","JSONObject","JSONArray","{","}","JSONMemberList","JSONMember",":",",","[","]","JSONElementList","$accept","$end","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","defaultActions","parseError","lex","token","lexer","stack","vstack","lstack","recovering","TERROR","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","newState","expected","yyval","errStr","showPosition","line","loc","first_line","last_line","first_column","last_column","_input","_more","_less","matched","conditionStack","unput","less","pastInput","past","upcomingInput","pre","tempMatch","lines","_currentRules","flex","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","INITIAL","inclusive","delay","lastText","tr","td","divInput","tableInput","tbodySearch","refreshSearch","_onDelayedSearch","_onSearch","_onKeyUp","searchNext","searchPrevious","resultIndex","_setActiveResult","activeResult","prevNode","searchFieldActive","searchValueActive","_clearDelay","forceSearch","resultCount","innerHTML","createMenuItems","list","domItems","li","domItem","button","hide","submenu","divIcon","buttonSubmenu","buttonExpand","submenuTitle","divExpand","_onExpandItem","domSubItems","subItems","ul","eventListeners","focusButton","maxHeight","_getVisibleButtons","buttons","expandedItem","subItem","visibleMenu","contentWindow","showBelow","anchorRect","contentRect","anchorHeight","offsetHeight","mousedown","_isChildOf","keydown","alreadyVisible","padding","display","targetIndex","prevButton","nextButton","expanded","setField","fieldEditable","setValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","naturalSort","appendNodeFactory","_updateEditability","parents","tdError","tdValue","popover","onfocus","directions","direction","popoverRect","getIndex","setParent","previousField","getField","_getDomField","childValue","_getType","childField","sortObjectKeys","previousValue","_getDomValue","getLevel","clone","fieldInnerText","valueInnerText","cloneChilds","childClone","getAppend","nextTr","nextSibling","_hasChilds","newTr","appendTr","updateIndexes","trTemp","AppendNode","moveTo","searchField","searchValue","_updateDomField","childResults","_updateDomValue","offsetTop","focusElement","elementName","editableDiv","containsNode","_move","clearDom","removedNode","_remove","lastTr","_stringCast","silent","_unescapeHTML","undoDiff","redoDiff","domValue","classNames","checkbox","tdCheckbox","checked","getUTCMilliseconds","tdSelect","valueFieldHTML","visibility","domField","duplicateKeys","tdDrag","domDrag","tdMenu","tdField","tree","_createDomTree","firstNode","lastNode","draggedNode","_nextSibling","offsetY","onDrag","onDragEnd","oldCursor","body","cursor","mouseX","trThis","trPrev","trNext","trFirst","trLast","trRoot","nodePrev","nodeNext","topThis","topPrev","topFirst","heightThis","bottomNext","heightNext","moved","previousSibling","diffLevel","round","levelNext","some","_createDomField","isFirst","domTree","marginLeft","contentEditable","spellcheck","fieldText","_escapeHTML","_updateSchema","_updateDomIndexes","_findSchema","_findEnum","composite","childSchema","_createDomValue","_createDomExpandButton","borderCollapse","tdExpand","tdSeparator","srcElement","expandable","_onExpand","open","offsetX","onKeyDown","nextNode","nextDom","nextDom2","selectedNodes","_onInsertBefore","_onInsertAfter","endNode","_lastNode","_getElementName","homeNode","_firstNode","prevElement","_previousElement","appendDom","nextNode2","_previousNode","nextElement","_nextElement","prevDom","isVisible","_nextNode","blurNodes","clones","newNode","_onAppend","_onChangeType","order","oldSortOrder","sortOrder","firstDom","lastDom","lastChild","TYPE_TITLES","auto","titles","lower","num","numFloat","isNaN","htmlEscaped","html","escapeUnicode","escapedText","_escapeJSON","escaped","oFxNcL","oFyNcL","re","sre","dre","hre","insensitive","y","xN","yN","xD","yD","cLoc","numS","trAppend","tdAppend","domText","paddingLeft","current","onSwitch","availableModes","form","view","currentMode","currentTitle","box","position","ace","indentation","_ace","theme","aceEditor","textarea","clientWidth","buttonFormat","buttonCompact","compact","emptyNode","isReadOnly","editorDom","edit","$blockScrolling","setTheme","setOptions","readOnly","setShowPrintMargin","setFontSize","getSession","setTabSize","setUseSoftTabs","setUseWrapMode","commands","bindKey","defineProperty","poweredBy","on","resize","originalOnChange","validationErrors","marginBottom","paddingBottom","doValidate","hidden","deps","payload","original","payloads","_acequire","parentId","lookup","dep","acequire","packagedModule","normalizeModule","moduleName","chunks","mod","packaged","ns","getNativeFlags","ignoreCase","multiline","extended","sticky","from","real","compliantExecNpcg","compliantLastIndexIncrement","r2","_xregexp","captureNames","Empty","doesDefinePropertyWork","exception","toInteger","that","bound","defineGetter","defineSetter","lookupGetter","lookupSetter","supportsAccessors","prototypeOfArray","prototypeOfObject","_toString","owns","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","makeArray","lengthBefore","array_splice","deleteCount","removeCount","removed","insert","tailOldPos","tailNewPos","tailCount","lengthAfterRemove","boxedString","splitString","fun","toObject","thisp","reduceRight","sought","getPrototypeOf","__proto__","getOwnPropertyDescriptor","property","descriptor","getter","setter","enumerable","configurable","getOwnPropertyNames","createEmpty","empty","propertyIsEnumerable","isPrototypeOf","toLocaleString","valueOf","Type","defineProperties","definePropertyWorksOnObject","definePropertyWorksOnDom","definePropertyFallback","seal","freeze","freezeObject","preventExtensions","isSealed","isFrozen","isExtensible","returnValue","hasDontEnumBug","dontEnums","dontEnumsLength","ii","dontEnum","now","ws","trimBeginRegexp","trimEndRegexp","getDocumentHead","doc","head","getElementsByTagName","documentElement","tag","createElementNS","hasCssClass","el","addCssClass","removeCssClass","toggleCssClass","setCssClass","include","hasCssString","sheets","createStyleSheet","styleSheets","owningElement","importCssString","cssText","importCssStylsheet","link","getInnerWidth","computedStyle","getInnerHeight","scrollbarWidth","inner","minWidth","outer","noScrollbar","offsetWidth","withScrollbar","getPageScrollTop","getPageScrollLeft","getComputedStyle","currentStyle","setInnerHtml","innerHtml","cloneNode","replaceChild","setInnerText","textContent","getParentWindow","defaultView","parentWindow","inherits","ctor","superCtor","super_","writable","implement","oop","Keys","MODIFIER_KEYS","224","KEY_MODS","ctrl","alt","super","command","cmd","FUNCTION_KEYS","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","PRINTABLE_KEYS","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","enter","mods","pow","keyCodeToString","keyString","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","os","platform","isWin","isIE","isOldIE","isGecko","isMozilla","Controllers","controllers","product","isOldGecko","isOpera","opera","isWebKit","isChrome","isAIR","isIPad","isTouchPad","isChromeOS","normalizeCommandKeys","hashId","getModifierHash","useragent","pressedKeys","getModifierState","altGr","location","keyLocation","ts","timeStamp","dt","defaultPrevented","resetPressedKeys","addListener","wrapper","_wrapper","removeListener","stopEvent","cancelBubble","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addTouchMoveListener","startx","starty","touchObj","changedTouches","clientX","clientY","wheelX","wheelY","addMouseWheelListener","wheelDeltaX","wheelDeltaY","wheelDelta","deltaMode","DOM_DELTA_PIXEL","deltaX","deltaY","DOM_DELTA_LINE","DOM_DELTA_PAGE","axis","HORIZONTAL_AXIS","detail","addMultiMouseDownListener","elements","timeouts","callbackName","onMousedown","clicks","isNewClick","startX","startY","timer","_clicks","eventNames","onDblclick","getModifierString","addCommandKeyListener","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","nextTick","win","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","stringReverse","reverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","props","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","offset","deferredCall","fcn","deferred","cancel","schedule","isPending","delayedCall","defaultTimeout","_self","lang","BROKEN_SETDATA","USE_IE_MIME_TYPE","TextInput","resetSelection","isEmpty","inComposition","inputHandler","selectionStart","selectionEnd","setSelectionRange","resetValue","PLACEHOLDER","syncValue","onContextMenuClose","closeTimeout","tempStyle","renderer","$keepTextAreaAtCursor","$moveTextAreaToCursor","setAttribute","opacity","copied","pasted","isSelectionEmpty","isFocused","activeElement","onBlur","onFocus","syncSelection","isAllSelected","createTextRange","moveStart","moveEnd","ownerDocument","parentElement","inPropertyChange","onPropertyChange","syncProperty","sendText","keytable","onCompositionEnd","onCompositionUpdate","onCompositionStart","onSelect","selectAll","setInputHandler","cb","getInputHandler","afterContextMenu","onPaste","execCommand","onTextInput","onInput","handleClipboardData","forceIEMime","clipboardData","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","$readOnly","session","$undoManager","markUndoGroup","clearSelection","lastValue","getRange","setRange","syncComposition","getElement","setReadOnly","onContextMenu","_emit","domEvent","moveToMouse","bringToFront","rect","borderTopWidth","borderLeftWidth","maxTop","move","textInput","scroller","DefaultHandlers","mouseHandler","$clickSelection","setDefaultHandler","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","onTouchMove","selectByLines","extendSelectionBy","selectByWords","calcDistance","ax","ay","bx","by","calcRangeOrientation","row","column","ev","inSelection","getDocumentPosition","mousedownEvent","selectionRange","getSelectionRange","selectionEmpty","moveToPosition","$focusTimout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","setCapture","setStyle","comparePoint","orientedRange","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","unsetStyle","releaseCapture","focusWait","distance","getBracketRange","getWordRange","isMultiLine","getLineRange","getAccelKey","$lastScrollTime","isScrollableBy","speed","scrollBy","stop","Tooltip","isOpen","$element","$parentNode","$init","setHtml","setPosition","setClassName","getHeight","getWidth","GutterHandler","showTooltip","mouseEvent","annotation","gutter","$annotations","hideTooltip","getLength","screenRow","pixelToScreenCoordinates","$pos","documentToScreenRow","tooltipAnnotation","tooltip","_signal","$tooltipFollowsMouse","moveTooltip","gutterElement","tooltipTimeout","$gutterLayer","GutterTooltip","getRegion","selectTo","isMousePressed","$gutter","windowWidth","innerWidth","windowHeight","innerHeight","MouseEvent","$inSelection","propagationStopped","DragdropHandler","prevCursor","vMovement","hMovement","cursorMovedTime","moveCursorToPosition","cursorPointOnCaretMoved","SCROLL_CURSOR_HYSTERESIS","SCROLL_CURSOR_DELAY","autoScroll","lineHeight","layerConfig","characterWidth","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScrollStartTime","AUTOSCROLL_DELAY","onDragInterval","dragCursor","addDragMarker","toOrientedRange","dragSelectionMarker","addMarker","getSelectionStyle","$cursorLayer","setBlinking","clearInterval","timerId","onMouseMove","clearDragMarker","removeMarker","fromOrientedRange","isInternal","getReadOnly","onMouseMoveTimer","canAccept","dataTransfer","getDropEffect","copyAllowed","moveAllowed","copyModifierState","effectAllowed","dropEffect","blankImage","src","dragOperation","mouseTarget","cancelDrag","draggable","setDragImage","clearData","getTextRange","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dropData","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","send","loadScript","onload","_","isAbort","qualifyURL","EventEmitter","_dispatchEvent","eventName","_eventRegistry","_defaultHandlers","listeners","defaultHandler","once","newCallback","handlers","_disabled_","old","removeDefaultHandler","capturing","off","removeAllListeners","reportError","msg","optionsProvider","optList","setOption","getOptions","optionNames","$options","getOption","opt","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","init","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","script","getAttribute","attr","deHyphenate","basePath","workerPath","modePath","themePath","m1","toUpperCase","net","suffix","$moduleUrls","moduleUrl","component","setModuleUrl","subst","$loading","loadModule","onLoad","moduleType","afterLoad","DefaultGutterHandler","MouseHandler","focusEditor","hasFocus","getMouseEventTarget","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","insideStart","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onCaptureInterval","$onCaptureMouseMove","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimout","tooltipFollowsMouse","FoldHandler","fold","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","getLine","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","success","passEvent","comparePoints","p1","p2","Range","startRow","startColumn","endRow","endColumn","isEqual","compareRange","containsRange","intersects","isEnd","isStart","inside","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","Selection","getDocument","lead","selectionLead","createAnchor","selectionAnchor","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","getCursor","getPosition","getSelectionAnchor","getSelectionLead","shiftSelection","columns","moveCursorTo","isBackwards","$moveSelection","mover","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectWord","selectAWord","getAWordRange","excludeLastChar","rowEnd","rowStart","foldLine","getFoldLine","selectLine","moveCursorBy","tabSize","getTabSize","isTabStop","firstColumnPosition","screenToDocumentPosition","beforeCursor","getDisplayLine","leadingSpace","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","screenPos","docPos","lineWidgets","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","ranges","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","splitterRurles","caseInsensitive","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","values","tokens","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","merge","TextHighlightRules","$rules","addRules","prefix","nextState","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","splitChar","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","rowCount","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getCursorPosition","getWrapBehavioursEnabled","isSaneInsertion","recordAutoInsert","recordMaybeInsert","rightChar","matching","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","lineCommentStart","leftChar","rightToken","pair","stringBefore","stringAfter","wordRe","$mode","isWordBefore","isWordAfter","iterator","$matchTokenType","iterator2","bracket","packages","pack","L","Ll","Lu","Lt","Lm","Lo","M","Mn","Mc","Me","N","Nd","Nl","No","P","Pd","Ps","Pe","Pi","Pf","Pc","Po","S","Sm","Sc","Sk","So","Z","Zs","Zl","Zp","C","Cc","Cf","Co","Cs","Cn","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","iter","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","removeInLine","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","getNextLineIndent","tab","checkOutdent","autoOutdent","createWorker","createModeDelegates","$modes","delegations","scope","functionName","$delegator","method","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","score","$id","applyDelta","docLines","doNotValidate","Anchor","$onChange","$pointsInOrder","point1","point2","equalPointsInOrder","bColIsAfter","$getTransformedPoint","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$clipPositionToDocument","$insertRight","noClip","Document","textOrLines","$lines","insertMergedLines","getAllLines","getNewLineCharacter","$split","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","clippedPos","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","startCol","endCol","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","SearchHighlight","clazz","setRegexp","MAX_RANGES","update","markerLayer","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","lastEnd","isNewRow","placeholder","getNextFoldTo","kind","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","consumePoint","consumeRange","restorePoint","restoreRange","Fold","subFolds","subFold","collapseChildren","addSubFold","afterStart","Folding","side","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","docRow","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$useWrapMode","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","dir","depth","getFoldWidget","getFoldWidgetRange","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","children","siblings","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","$brackets",")","(","typeRe","openBracket","valueIndex","closingBracket","valueLength","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","onChangeFold","isFullWidth","bgTokenizer","resetCaches","$resetRowCache","$docRowCache","$screenRowCache","$getRowCacheIndex","cacheArray","low","hi","mid","$wrapData","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","ignore","$deltasDoc","$deltasFold","$informUndoManager","$deltas","setUndoManager","getUndoManager","reset","undoManager","$syncInformUndoManager","execute","mergeUndoDeltas","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","$overwrite","setOverwrite","overwrite","getOverwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","marker","addDynamicMarker","markerId","markers","getMarkers","$searchHighlight","highlightLines","setAnnotations","annotations","getAnnotations","clearAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$modeId","$onChangeMode","$isPlaceholder","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","$scrollTop","setScrollTop","getScrollTop","$scrollLeft","setScrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","force","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","lastUndoRange","$getUndoSelection","foldDelta","redoChanges","setUndoSelect","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","size","$moveLines","$clipRowToDocument","MAX_VALUE","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","$wrapLimitRange","useWrapMode","getUseWrapMode","setWrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","SPACE","TAB","TAB_SPACE","getWrapIndent","maxIndent","indentedSoftWrap","isCode","addSplit","displayed","lastSplit","splits","lastDocSplit","displayLength","$wrapAsCode","$indentedSoftWrap","minSplit","getScreenTabSize","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","rowCache","doCache","maxRow","wrapIndent","splitIndex","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","$wrap","firstLineNumber","useSoftTabs","addWordBoundary","needle","wordBoundary","Search","find","$matchIterator","skipCurrent","findAll","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","matchIterator","backwards","lineIterator","$lineIterator","_callback","$disableFakeMultiline","wholeWord","modifier","caseSensitive","$assembleMultilineRegExp","HashHandler","commandKeyBinding","addCommands","$singleCommand","MultiHashHandler","addCommand","removeCommand","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","isDefault","other","otherPos","removeCommands","bindKeys","keyList","findKeyCommand","$keyChain","CommandManager","byName","toggleRecording","$inReplay","recording","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","gotoLine","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","times","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","firstLineEndCol","selectedText","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","defaultCommands","Editor","getContainerElement","getTextAreaContainer","keyBinding","$mouseHandler","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","selections","startOperation","endOperation","$opResetTimer","curOp","docChanged","selectionChanged","prevOp","commadEvent","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeableCommands","$mergeUndoDeltas","mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","handler","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","updateFull","oldEditor","cursorPos","onResize","getTheme","getFontSize","$highlightBrackets","$bracketHighlight","$highlightPending","getMatching","$highlightTags","$highlightTagPending","$tagHighlight","prevToken","sbm","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","updateLines","$updateHighlightActiveLine","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","startOuter","endOuter","lineCols","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","inVirtualSelectionMode","getBehavioursEnabled","transform","$mergeNextCommand","d","lineState","shouldOutdent","lineIndent","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","setShowInvisibles","showInvisibles","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","enabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","toFixed","replaceRange","endPoint","totalDiff","rangeIndex","subRows","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","isRowVisible","isRowFullyVisible","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","scrollToLine","center","alignCursor","getCursorPositionScreen","matchType","bracketType","found","brackets","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","preventScroll","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$resetCursorStyle","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","behavioursEnabled","wrapBehavioursEnabled","autoScrollEditorIntoView","keybindingId","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","showLineNumbers","showGutter","displayIndentGuides","fontSize","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","foldStyle","UndoManager","$serializeDelta","$deserializeDelta","cloneDeltaSetsObj","deltaSets_old","fnGetModifiedDelta","deltaSets_new","deltaSet_old","deltaSet_new","delta_old","deltaSets","$doc","hasUndo","dirtyCounter","$undoStack","$redoStack","NaN","undoSelectionRange","redoSelectionRange","$deserializeDeltas","hasRedo","markClean","isClean","$serializeDeltas","Gutter","parentEl","$showFoldWidgets","gutterWidth","$updateAnnotations","$cells","rowInfo","annoText","gutterOffset","breakpoints","decorations","$firstLineNumber","lastLineNumber","gutterRenderer","$renderer","cell","textNode","foldWidget","minHeight","$fixedWidth","$padding","$computePadding","ceil","$showLineNumbers","setShowLineNumbers","getShowLineNumbers","paddingRight","Marker","getBorderClass","tl","br","bl","setPadding","setMarkers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","firstRowScreen","stringBuilder","extraStyle","lineRange","radiusClass","extraLength","Text","$updateEolChar","EOF_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","TAB_CHAR","SPACE_CHAR","getLineHeight","$fontMetrics","$characterSize","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","$tabStrings","tabStr","$indentGuideRe","spaceClass","tabClass","spaceContent","tabContent","scrollLines","lineElements","lineElementsIdx","lineElement","$renderLine","$useLineGroups","oldConfig","$renderLinesFragment","createDocumentFragment","$textToken","rparen","lparen","$renderToken","replaceFunc","tabIdx","idx4","classToUse","renderIndentGuide","cols","$renderWrappedLine","onlyContents","splitChars","$renderSimpleLine","$getFoldLineTokens","addTokens","renderTokens","$measureNode","isIE8","Cursor","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateVisibility","$updateOpacity","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","blink","getPixelPosition","onScreen","$selectionMarkers","cursorIndex","pixelPos","drawCursor","$setOverwrite","ScrollBar","classSuffix","setVisible","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","setHeight","setInnerHeight","setScrollHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBarV","ScrollBarH","RenderLoop","onRender","pending","changes","CHAR_COUNT","FontMetrics","$setMeasureNodeStyles","$main","$testFractionalRect","whiteSpace","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","setPolling","$measureCharWidth","GutterLayer","MarkerLayer","TextLayer","CursorLayer","VirtualRenderer","onGutterResize","$markerBack","textLayer","$textLayer","canvas","$markerFront","$horizScroll","$vScroll","scrollBar","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$loop","$renderChanges","CHANGE_FULL","CHANGE_CURSOR","CHANGE_MARKER","CHANGE_GUTTER","CHANGE_SCROLL","CHANGE_LINES","CHANGE_TEXT","CHANGE_SIZE","CHANGE_MARKER_BACK","CHANGE_MARKER_FRONT","CHANGE_H_SCROLL","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","updateFontSize","$changes","$updateSizeAsync","resizing","scrollWidth","$updateCachedSize","$extraHeight","oldSize","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$updateGutterLineHighlight","$gutterLineHighlight","$printMarginEl","containerEl","posTop","posLeft","$composition","setScrollMargin","sm","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","st","marginTop","$highlightGutterLine","$updateLines","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","screenLines","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","topMargin","bottomMargin","alignment","STEPS","$calcSteps","fromValue","toValue","steps","x_min","dx","initialScroll","oldSteps","$timer","canvasPos","textToScreenCoordinates","keepTextAreaAtCursor","$themeId","cssClass","$theme","isDark","setMouseCursor","maxPixelHeight","WorkerClient","topLevelNamespaces","classname","workerUrl","$sendDeltaQueue","changeListener","onMessage","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","workerSrc","Blob","blob","blobUrl","URL","webkitURL","createObjectURL","Worker","DOMException","$workerBlob","blobURL","revokeObjectURL","callbackId","callbacks","onmessage","deltaQueue","emit","ex","attachToDocument","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","blobBuilder","getBlob","UIWorkerClient","messageBuffer","main","emitSync","sender","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","selectionBefore","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","updateMarkers","updateMarker","undosRequired","isSamePoint","accel","selectionMode","isMultiSelect","onMouseSelection","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onMouseSelectionEnd","onSelectionInterval","selectMoreLines","selectMore","splitIntoLines","alignCursors","multiSelectCommands","isAvailable","MultiSelect","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","addAltCursorListeners","altCursor","altDown","getSelectionMarkers","$blockChangeEvents","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","yBackwards","docEnd","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","forEachSelection","keepOrder","$byLines","reg","cmdResult","anim","buf","nl","additive","skip","screenLead","toRemove","tmp","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","fr","lr","guessRange","$reAlignText","forceLeft","alignLeft","startW","textW","endW","alignRight","unAlign","isLeftAligned","isRightAligned","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","addLineWidget","zIndex","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","changedWidgets","fixedWidth","coverLine","fullWidth","binarySearch","comparator","findAnnotations","oldWidget","gutterAnno","sc","arrow","Renderer","_id","getElementById","env","tagName","oldNode","createEditSession","Builder","MSBlobBuilder","bag","builder","endings","JsonHighlightRules","MatchingBraceOutdent","BaseFoldMode","commentRegex","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","forceMultiline","getCommentRegionBlock","getSectionRange","startIndent","subRange","CStyleFoldMode","$outdent","worker","showReplaceForm","div","setEditor","$initElements","sb","replaceBox","searchOptions","regExpOption","caseSensitiveOption","wholeWordOption","searchInput","replaceInput","_this","activeInput","$searchBarKb","$closeSearchBarKb","Ctrl-f|Command-f","isReplace","Ctrl-H|Command-Option-F","Ctrl-G|Command-G","Ctrl-Shift-G|Command-Shift-G","findPrev","Return","Shift-Return","Alt-Return","Tab","$syncOptions","noMatch","replaceAndFindNext"],"mappings":"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","file":"jsoneditor"} \ No newline at end of file diff --git a/dist/jsoneditor.min.js b/dist/jsoneditor.min.js index 63d59eb..f8bb21a 100644 --- a/dist/jsoneditor.min.js +++ b/dist/jsoneditor.min.js @@ -25,16 +25,16 @@ * * @author Jos de Jong, * @version 5.6.0 - * @date 2017-04-15 + * @date 2017-05-16 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ace","theme","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(2),s=i(13),a=i(5);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate()),this.refresh()}else this.validateSchema=null,this.options.schema=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=1&&i<=12&&n>=1&&n<=m[i]}function o(e,t){var i=e.match(g);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(E);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&v.test(e)}function l(e){return C.test(e)&&w.test(e)}function c(e){try{return new RegExp(e),!0}catch(e){return!1}}function h(e,t){if(e&&t)return e>t?1:et?1:e=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function s(e,t,i){var n=a.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function a(e,t,i){for(var n=0;n=55296&&t<=56319&&r=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h",F="result"+r,x=e.opts.v5&&s&&s.$data;if(x?(n+=" var schema"+r+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",w="schema"+r):w=s,C){var S=e.util.getData(E.$data,o,e.dataPathArr),$="exclusive"+r,D="op"+r,k="' + "+D+" + '";n+=" var schemaExcl"+r+" = "+S+"; ",S="schemaExcl"+r,n+=" if (typeof "+S+" != 'boolean' && "+S+" !== undefined) { "+d+" = false; ";var i=A,B=B||[];B.push(n),n="",!1!==e.createErrors?(n+=" { keyword: '"+(i||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: '"+A+" should be boolean' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var _=n;n=B.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(p+="}",n+=" else { "),x&&(n+=" if ("+w+" === undefined) "+d+" = true; else if (typeof "+w+" != 'string') "+d+" = false; else { ",p+="}"),f&&(n+=" if (!"+v+") "+d+" = true; else { ",p+="}"),n+=" var "+F+" = "+v+"("+h+", ",n+=x?""+w:""+e.util.toQuotedString(s),n+=" ); if ("+F+" === undefined) "+d+" = false; var "+$+" = "+S+" === true; if ("+d+" === undefined) { "+d+" = "+$+" ? "+F+" "+b+" 0 : "+F+" "+b+"= 0; } if (!"+d+") var op"+r+" = "+$+" ? '"+b+"' : '"+b+"=';"}else{var $=!0===E,k=b;$||(k+="=");var D="'"+k+"'";x&&(n+=" if ("+w+" === undefined) "+d+" = true; else if (typeof "+w+" != 'string') "+d+" = false; else { ",p+="}"),f&&(n+=" if (!"+v+") "+d+" = true; else { ",p+="}"),n+=" var "+F+" = "+v+"("+h+", ",n+=x?""+w:""+e.util.toQuotedString(s),n+=" ); if ("+F+" === undefined) "+d+" = false; if ("+d+" === undefined) "+d+" = "+F+" "+b,$||(n+="="),n+=" 0;"}n+=p+"if (!"+d+") { ";var i=t,B=B||[];B.push(n),n="",!1!==e.createErrors?(n+=" { keyword: '"+(i||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+D+", limit: ",n+=x?""+w:""+e.util.toQuotedString(s),n+=" , exclusive: "+$+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be "+k+' "',n+=x?"' + "+w+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=x?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var _=n;return n=B.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="}"}},{}],14:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maximum"==t,p=f?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],g=e.opts.v5&&m&&m.$data,v=f?"<":">",w=f?">":"<";if(g){var y=e.util.getData(m.$data,s,e.dataPathArr),A="exclusive"+o,E="op"+o,C="' + "+E+" + '";r+=" var schemaExcl"+o+" = "+y+"; ",y="schemaExcl"+o,r+=" var exclusive"+o+"; if (typeof "+y+" != 'boolean' && typeof "+y+" != 'undefined') { ";var i=p,b=b||[];b.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(r+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var F=r;r=b.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+F+"]); ":r+=" validate.errors = ["+F+"]; return false; ":r+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else if( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" ((exclusive"+o+" = "+y+" === true) ? "+d+" "+w+"= "+n+" : "+d+" "+w+" "+n+") || "+d+" !== "+d+") { var op"+o+" = exclusive"+o+" ? '"+v+"' : '"+v+"=';"}else{var A=!0===m,C=v;A||(C+="=");var E="'"+C+"'";r+=" if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+d+" "+w,A&&(r+="="),r+=" "+n+" || "+d+" !== "+d+") {"}var i=t,b=b||[];b.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+E+", limit: "+n+", exclusive: "+A+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be "+C+" ",r+=u?"' + "+n:a+"'"),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var F=r;return r=b.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+F+"]); ":r+=" validate.errors = ["+F+"]; return false; ":r+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { "),r}},{}],15:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maxItems"==t?">":"<";r+="if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+d+".length "+f+" "+n+") { ";var i=t,p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have ",r+="maxItems"==t?"more":"less",r+=" than ",r+=u?"' + "+n+" + '":""+a,r+=" items' "),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;return r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},{}],16:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maxLength"==t?">":"<";r+="if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),!1===e.opts.unicode?r+=" "+d+".length ":r+=" ucs2length("+d+") ",r+=" "+f+" "+n+") { ";var i=t,p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT be ",r+="maxLength"==t?"longer":"shorter",r+=" than ",r+=u?"' + "+n+" + '":""+a,r+=" characters' "),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;return r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},{}],17:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maxProperties"==t?">":"<";r+="if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" Object.keys("+d+").length "+f+" "+n+") { ";var i=t,p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have ",r+="maxProperties"==t?"more":"less",r+=" than ",r+=u?"' + "+n+" + '":""+a,r+=" properties' "),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;return r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},{}],18:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.schema[t],r=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,s=!e.opts.allErrors,a=e.util.copy(e),l="";a.level++;var c="valid"+a.level,h=a.baseId,d=!0,u=n;if(u)for(var f,p=-1,m=u.length-1;p "+x+") { ";var $=c+"["+x+"]";u.schema=F,u.schemaPath=s+"["+x+"]",u.errSchemaPath=a+"/"+x,u.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),u.dataPathArr[g]=x;var D=e.validate(u);u.baseId=w,e.util.varOccurences(D,v)<2?i+=" "+e.util.varReplace(D,v,$)+" ":i+=" var "+v+" = "+$+"; "+D+" ",i+=" } ",l&&(i+=" if ("+p+") { ",f+="}")}if("object"==typeof y&&e.util.schemaHasRules(y,e.RULES.all)){u.schema=y,u.schemaPath=e.schemaPath+".additionalItems",u.errSchemaPath=e.errSchemaPath+"/additionalItems",i+=" "+p+" = true; if ("+c+".length > "+o.length+") { for (var "+m+" = "+o.length+"; "+m+" < "+c+".length; "+m+"++) { ",u.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var $=c+"["+m+"]";u.dataPathArr[g]=m;var D=e.validate(u);u.baseId=w,e.util.varOccurences(D,v)<2?i+=" "+e.util.varReplace(D,v,$)+" ":i+=" var "+v+" = "+$+"; "+D+" ",l&&(i+=" if (!"+p+") break; "),i+=" } } ",l&&(i+=" if ("+p+") { ",f+="}")}}else if(e.util.schemaHasRules(o,e.RULES.all)){u.schema=o,u.schemaPath=s,u.errSchemaPath=a,i+=" for (var "+m+" = 0; "+m+" < "+c+".length; "+m+"++) { ",u.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var $=c+"["+m+"]";u.dataPathArr[g]=m;var D=e.validate(u);u.baseId=w,e.util.varOccurences(D,v)<2?i+=" "+e.util.varReplace(D,v,$)+" ":i+=" var "+v+" = "+$+"; "+D+" ",l&&(i+=" if (!"+p+") break; "),i+=" } ",l&&(i+=" if ("+p+") { ",f+="}")}return l&&(i+=" "+f+" if ("+d+" == errors) {"),i=e.util.cleanUpCode(i)}},{}],26:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d=e.opts.v5&&s&&s.$data;d?(n+=" var schema"+r+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",i="schema"+r):i=s,n+="var division"+r+";if (",d&&(n+=" "+i+" !== undefined && ( typeof "+i+" != 'number' || "),n+=" (division"+r+" = "+h+" / "+i+", ",e.opts.multipleOfPrecision?n+=" Math.abs(Math.round(division"+r+") - division"+r+") > 1e-"+e.opts.multipleOfPrecision+" ":n+=" division"+r+" !== parseInt(division"+r+") ",n+=" ) ",d&&(n+=" ) "),n+=" ) { ";var u=u||[];u.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { multipleOf: "+i+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be multiple of ",n+=d?"' + "+i:s+"'"),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+s,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var f=n;return n=u.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+f+"]); ":n+=" validate.errors = ["+f+"]; return false; ":n+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",c&&(n+=" else { "),n}},{}],27:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.level,r=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),a=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,c="data"+(r||""),h="errs__"+n,d=e.util.copy(e);d.level++;var u="valid"+d.level;if(e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=s,d.errSchemaPath=a,i+=" var "+h+" = errors; ";var f=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var p;d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),i+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=f,i+=" if ("+u+") { ";var m=m||[];m.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: 'should NOT be valid' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var g=i;i=m.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+g+"]); ":i+=" validate.errors = ["+g+"]; return false; ":i+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(i+=" } ")}else i+=" var err = ",!1!==e.createErrors?(i+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: 'should NOT be valid' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ",i+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(i+=" if (false) { ");return i}},{}],28:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.level,r=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),a=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,c="data"+(r||""),h="valid"+n,d="errs__"+n,u=e.util.copy(e),f="";u.level++;var p="valid"+u.level;i+="var "+d+" = errors;var prevValid"+n+" = false;var "+h+" = false;";var m=u.baseId,g=e.compositeRule;e.compositeRule=u.compositeRule=!0;var v=o;if(v)for(var w,y=-1,A=v.length-1;y5)i+=" || validate.schema"+s+"["+m+"] ";else{var R=w;if(R)for(var T,P=-1,M=R.length-1;P= "+pe+"; ",a=e.errSchemaPath+"/patternGroups/minimum",i+=" if (!"+h+") { ";var q=q||[];q.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: { reason: '"+ve+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(H)+"' } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have "+we+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(H)+"\"' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var G=i;i=q.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+G+"]); ":i+=" validate.errors = ["+G+"]; return false; ":i+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",void 0!==me&&(i+=" else ")}if(void 0!==me){var ge=me,ve="maximum",we="more";i+=" "+h+" = pgPropCount"+n+" <= "+me+"; ",a=e.errSchemaPath+"/patternGroups/maximum",i+=" if (!"+h+") { ";var q=q||[];q.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: { reason: '"+ve+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(H)+"' } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have "+we+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(H)+"\"' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var G=i;i=q.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+G+"]); ":i+=" validate.errors = ["+G+"]; return false; ":i+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } "}a=K,l&&(i+=" if ("+h+") { ",f+="}")}}}}return l&&(i+=" "+f+" if ("+d+" == errors) {"),i=e.util.cleanUpCode(i)}},{}],32:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="valid"+o;if("#"==a||"#/"==a)e.isRoot?(i=e.async,n="validate"):(i=!0===e.root.schema.$async,n="root.refVal[0]");else{var u=e.resolveRef(e.baseId,a,e.isRoot);if(void 0===u){var f="can't resolve reference "+a+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(f);var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(a)+"' } ",!1!==e.opts.messages&&(r+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(a)+"' "),e.opts.verbose&&(r+=" , schema: "+e.util.toQuotedString(a)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(r+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var g=new Error(f);throw g.missingRef=e.resolve.url(e.baseId,a),g.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(g.missingRef)),g}console.log(f),c&&(r+=" if (true) { ")}}else if(u.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=u.schema,v.schemaPath="",v.errSchemaPath=a;var y=e.validate(v).replace(/validate\.schema/g,u.code);r+=" "+y+" ",c&&(r+=" if ("+w+") { ")}else i=!0===u.$async,n=u.code}if(n){var p=p||[];p.push(r),r="",e.opts.passContext?r+=" "+n+".call(this, ":r+=" "+n+"( ",r+=" "+h+", (dataPath || '')",'""'!=e.errorPath&&(r+=" + "+e.errorPath);r+=" , "+(s?"data"+(s-1||""):"parentData")+" , "+(s?e.dataPathArr[s]:"parentDataProperty")+", rootData) ";var A=r;if(r=p.pop(),i){if(!e.async)throw new Error("async schema referenced by sync schema");r+=" try { ",c&&(r+="var "+d+" ="),r+=" "+e.yieldAwait+" "+A+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",c&&(r+=" if ("+d+") { ")}else r+=" if (!"+A+") { if (vErrors === null) vErrors = "+n+".errors; else vErrors = vErrors.concat("+n+".errors); errors = vErrors.length; } ",c&&(r+=" else { ")}return r}},{}],33:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.level,r=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),a=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,c="data"+(r||""),h="valid"+n,d=e.opts.v5&&o&&o.$data;d&&(i+=" var schema"+n+" = "+e.util.getData(o.$data,r,e.dataPathArr)+"; ");var u="schema"+n;if(!d)if(o.length=e.opts.loopRequired;if(l)if(i+=" var missing"+n+"; ",A){d||(i+=" var "+u+" = validate.schema"+s+"; ");var E="i"+n,C="schema"+n+"["+E+"]",b="' + "+C+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,C,e.opts.jsonPointers)),i+=" var "+h+" = true; ",d&&(i+=" if (schema"+n+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+n+")) "+h+" = false; else {"),i+=" for (var "+E+" = 0; "+E+" < "+u+".length; "+E+"++) { "+h+" = "+c+"["+u+"["+E+"]] !== undefined; if (!"+h+") break; } ",d&&(i+=" } "),i+=" if (!"+h+") { ";var F=F||[];F.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(i+=" , message: '",e.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+b+"\\'",i+="' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var x=i;i=F.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { "}else{i+=" if ( ";var S=f;if(S)for(var $,E=-1,D=S.length-1;E 1) { var i = "+h+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } } ",u&&(n+=" } "),n+=" if (!"+d+") { ";var f=f||[];f.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+s,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var p=n;n=f.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+p+"]); ":n+=" validate.errors = ["+p+"]; return false; ":n+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { ")}else c&&(n+=" if (true) { ");return n}},{}],36:[function(e,t,i){"use strict";t.exports=function(e,t){function i(t){return void 0!==e.schema[t.keyword]||"properties"==t.keyword&&(!1===e.schema.additionalProperties||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var n="",r=!0===e.schema.$async;if(e.isTop){var o=e.isTop,s=e.level=0,a=e.dataLevel=0,l="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,r){e.async=!0;var c="es7"==e.opts.async;e.yieldAwait=c?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],n+=" var validate = ",r?c?n+=" (async function ":("co*"==e.opts.async&&(n+="co.wrap"),n+="(function* "):n+=" (function ",n+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; var vErrors = null; ",n+=" var errors = 0; ",n+=" if (rootData === undefined) rootData = data;"}else{var s=e.level,a=e.dataLevel,l="data"+(a||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),r&&!e.async)throw new Error("async schema in sync schema");n+=" var errs_"+s+" = errors;"}var h="valid"+s,d=!e.opts.allErrors,u="",f="",p=e.schema.type,m=Array.isArray(p);if(p&&e.opts.coerceTypes){var g=e.util.coerceToTypes(e.opts.coerceTypes,p);if(g){var v=e.schemaPath+".type",w=e.errSchemaPath+"/type",y=m?"checkDataTypes":"checkDataType";n+=" if ("+e.util[y](p,l,!0)+") { ";var A="dataType"+s,E="coerced"+s;n+=" var "+A+" = typeof "+l+"; ","array"==e.opts.coerceTypes&&(n+=" if ("+A+" == 'object' && Array.isArray("+l+")) "+A+" = 'array'; "),n+=" var "+E+" = undefined; ";var C="",b=g;if(b)for(var F,x=-1,S=b.length-1;x2&&(t=u.call(arguments,1)),i(t)})})}function s(e){return Promise.all(e.map(r,this))}function a(e){for(var t=new e.constructor,i=Object.keys(e),n=[],o=0;o="0"&&r<="9";)t+=r,c();if("."===r)for(t+=".";c()&&r>="0"&&r<="9";)t+=r;if("e"===r||"E"===r)for(t+=r,c(),"-"!==r&&"+"!==r||(t+=r,c());r>="0"&&r<="9";)t+=r,c();if(e=+t,isFinite(e))return e;l("Bad number")},d=function(){var e,t,i,n="";if('"'===r)for(;c();){if('"'===r)return c(),n;if("\\"===r)if(c(),"u"===r){for(i=0,t=0;t<4&&(e=parseInt(c(),16),isFinite(e));t+=1)i=16*i+e;n+=String.fromCharCode(i)}else{if("string"!=typeof a[r])break;n+=a[r]}else n+=r}l("Bad string")},u=function(){for(;r&&r<=" ";)c()},f=function(){switch(r){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}l("Unexpected '"+r+"'")},p=function(){var e=[];if("["===r){if(c("["),u(),"]"===r)return c("]"),e;for(;r;){if(e.push(s()),u(),"]"===r)return c("]"),e;c(","),u()}}l("Bad array")},m=function(){var e,t={};if("{"===r){if(c("{"),u(),"}"===r)return c("}"),t;for(;r;){if(e=d(),u(),c(":"),Object.hasOwnProperty.call(t,e)&&l('Duplicate key "'+e+'"'),t[e]=s(),u(),"}"===r)return c("}"),t;c(","),u()}}l("Bad object")};s=function(){switch(u(),r){case"{":return m();case"[":return p();case'"':return d();case"-":return h();default:return r>="0"&&r<="9"?h():f()}},t.exports=function(e,t){var i;return o=e,n=0,r=" ",i=s(),u(),r&&l("Syntax error"),"function"==typeof t?function e(i,n){var r,o,s=i[n];if(s&&"object"==typeof s)for(r in s)Object.prototype.hasOwnProperty.call(s,r)&&(o=e(s,r),void 0!==o?s[r]=o:delete s[r]);return t.call(i,n,s)}({"":i},""):i}},{}],45:[function(e,t,i){function n(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var t=c[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function r(e,t){var i,l,c,h,d,u=o,f=t[e];switch(f&&"object"==typeof f&&"function"==typeof f.toJSON&&(f=f.toJSON(e)),"function"==typeof a&&(f=a.call(t,e,f)),typeof f){case"string":return n(f);case"number":return isFinite(f)?String(f):"null";case"boolean":case"null":return String(f);case"object":if(!f)return"null";if(o+=s,d=[],"[object Array]"===Object.prototype.toString.apply(f)){for(h=f.length,i=0;i1&&(n=i[0]+"@",e=i[1]),e=e.replace(R,"."),n+s(e.split("."),t).join(".")}function l(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=O(e>>>10&1023|55296),e=56320|1023&e),t+=O(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:b}function d(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function u(e,t,i){var n=0;for(e=i?M(e/$):e>>1,e+=M(e/t);e>P*x>>1;n+=b)e=M(e/P);return M(n+(P+1)*e/(e+S))}function f(e){var t,i,n,r,s,a,l,d,f,p,m=[],g=e.length,v=0,w=k,y=D;for(i=e.lastIndexOf(B),i<0&&(i=0),n=0;n=128&&o("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&o("invalid-input"),d=h(e.charCodeAt(r++)),(d>=b||d>M((C-v)/a))&&o("overflow"),v+=d*a,f=l<=y?F:l>=y+x?x:l-y,!(dM(C/p)&&o("overflow"),a*=p;t=m.length+1,y=u(v-s,t,0==s),M(v/t)>C-w&&o("overflow"),w+=M(v/t),v%=t,m.splice(v++,0,w)}return c(m)}function p(e){var t,i,n,r,s,a,c,h,f,p,m,g,v,w,y,A=[];for(e=l(e),g=e.length,t=k,i=0,s=D,a=0;a=t&&mM((C-i)/v)&&o("overflow"),i+=(c-t)*v,t=c,a=0;aC&&o("overflow"),m==t){for(h=i,f=b;p=f<=s?F:f>=s+x?x:f-s,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},P=b-F,M=Math.floor,O=String.fromCharCode;if(A={version:"1.4.1",ucs2:{decode:l,encode:c},decode:f,encode:p,toASCII:g,toUnicode:m},"function"==typeof e&&"object"==typeof e.amd&&e.amd)e("punycode",function(){return A});else if(v&&w)if(n.exports==v)w.exports=A;else for(E in A)A.hasOwnProperty(E)&&(v[E]=A[E]);else i.punycode=A}(this)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],47:[function(e,t,i){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,i,o){t=t||"&",i=i||"=";var s={};if("string"!=typeof e||0===e.length)return s;e=e.split(t);var a=1e3;o&&"number"==typeof o.maxKeys&&(a=o.maxKeys);var l=e.length;a>0&&l>a&&(l=a);for(var c=0;c=0?(h=p.substr(0,m),d=p.substr(m+1)):(h=p,d=""),u=decodeURIComponent(h),f=decodeURIComponent(d),n(s,u)?r(s[u])?s[u].push(f):s[u]=[s[u],f]:s[u]=f}return s};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],48:[function(e,t,i){"use strict";function n(e,t){if(e.map)return e.map(t);for(var i=[],n=0;n",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(f),m=["'"].concat(p),g=["%","/","?",";","#"].concat(m),v=["/","?","#"],w={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},A={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},E=e("querystring");n.prototype.parse=function(e,t,i){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),r=-1!==n&&n127?_+="x":_+=B[L];if(!_.match(/^[+a-z0-9A-Z_-]{0,63}$/)){var T=D.slice(0,b),P=D.slice(b+1),M=B.match(/^([+a-z0-9A-Z_-]{0,63})(.*)$/);M&&(T.push(M[1]),P.unshift(M[2])),P.length&&(s="/"+P.join(".")+s),this.hostname=T.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),$||(this.hostname=l.toASCII(this.hostname));var O=this.port?":"+this.port:"",j=this.hostname||"";this.host=j+O,this.href+=this.host,$&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!w[f])for(var b=0,k=m.length;b0)&&i.host.split("@");x&&(i.auth=x.shift(),i.host=i.hostname=x.shift())}return i.search=e.search,i.query=e.query,c.isNull(i.pathname)&&c.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!b.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var S=b.slice(-1)[0],$=(i.host||e.host||b.length>1)&&("."===S||".."===S)||""===S,D=0,k=b.length;k>=0;k--)S=b[k],"."===S?b.splice(k,1):".."===S?(b.splice(k,1),D++):D&&(b.splice(k,1),D--);if(!E&&!C)for(;D--;D)b.unshift("..");!E||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),$&&"/"!==b.join("/").substr(-1)&&b.push("");var B=""===b[0]||b[0]&&"/"===b[0].charAt(0);if(F){i.hostname=i.host=B?"":b.length?b.shift():"";var x=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");x&&(i.auth=x.shift(),i.host=i.hostname=x.shift())}return E=E||i.host&&b.length,E&&!B&&b.unshift(""),b.length?i.pathname=b.join("/"):(i.pathname=null,i.path=null),c.isNull(i.pathname)&&c.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{"./util":51,punycode:46,querystring:49}],51:[function(e,t,i){"use strict";t.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],ajv:[function(e,t,i){"use strict";function n(e){return w.test(e)}function r(t){function i(e,t){var i;if("string"==typeof e){if(!(i=F(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var n=k(e);i=n.validate||B(n)}var r=i(t);return!0===i.$async?"*"==T._opts.async?m(r):r:(T.errors=i.errors,r)}function g(e,t){var i=k(e,void 0,t);return i.validate||B(i)}function A(e,t,i,n){if(Array.isArray(e))for(var r=0;r0?this.autoScrollStep=(n+24-e)/3:e>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},h._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title="Undo last action (Ctrl+Z)",r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=this;this.modeSwitcher=new l(this.menu,this.options.modes,this.options.mode,function(e){a.modeSwitcher.destroy(),a.setMode(e),a.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu))},h._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},h._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},h._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(this.focusTarget=e.target),"mousedown"==e.type&&this._startDragDistance(e),"mousemove"!=e.type&&"mouseup"!=e.type&&"click"!=e.type||this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value&&e.target!=t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},h._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},h._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},h._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},h._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},h._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},h.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},h.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},h._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0},n.prototype.canRedo=function(){return this.index=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),s=/[a-zA-Z_$\d]/;s.test(n);)i+=n,o++,n=t();-1===e.indexOf(i)?r.push('"'+i+'"'):r.push(i)}():(r.push(a),o++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}}},function(e,t,i){var n=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,r,o,s){var a=o.length-1;switch(r){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=o[a-1];case 13:this.$={};break;case 14:this.$=o[a-1];break;case 15:this.$=[o[a-2],o[a]];break;case 16:this.$={},this.$[o[a][0]]=o[a][1];break;case 17:this.$=o[a-2],o[a-2][o[a][0]]=o[a][1];break;case 18:this.$=[];break;case 19:this.$=o[a-1];break;case 20:this.$=[o[a]];break;case 21:this.$=o[a-2],o[a-2].push(o[a])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=i.lexer.lex()||1,"number"!=typeof e&&(e=i.symbols_[e]||e),e}var i=this,n=[0],r=[null],o=[],s=this.table,a="",l=0,c=0,h=0,d=2;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;o.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,p,m,g,v,w,y,A,E,C={};;){if(m=n[n.length-1],this.defaultActions[m]?g=this.defaultActions[m]:(null==f&&(f=t()),g=s[m]&&s[m][f]),void 0===g||!g.length||!g[0]){if(!h){E=[];for(w in s[m])this.terminals_[w]&&w>2&&E.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+E.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:E})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=d,m=n[n.length-1],g=s[m]&&s[m][d],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],C.$=r[r.length-y],C._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(C,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(C.$),o.push(C._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},d.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(o),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.type="button",l.className=r.className,s.button=l,r.title&&(l.title=r.title),r.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),a.appendChild(l),r.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(r.text));var h;if(r.click){l.className+=" jsoneditor-default";var d=document.createElement("button");d.type="button",s.buttonExpand=d,d.className="jsoneditor-expand",d.innerHTML='
',a.appendChild(d),r.submenuTitle&&(d.title=r.submenuTitle),h=d}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),h=l}h.onclick=function(e){e.preventDefault(),n._onExpandItem(s),h.focus()};var f=[];s.subItems=f;var p=document.createElement("ul");s.ul=p,p.className="jsoneditor-menu",p.style.height="0",a.appendChild(p),i(p,f,r.submenu)}else l.innerHTML='
'+r.text;t.push(s)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var s=document.createElement("div");s.className="jsoneditor-contextmenu",r.menu=s,o.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),r.list=a,r.items=[];var l=document.createElement("button");l.type="button",r.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var r=i(5);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var o=e.getBoundingClientRect(),s=t.getBoundingClientRect();o.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,h=this.dom.list;this.eventListeners.mousedown=r.addEventListener(window,"mousedown",function(e){var t=e.target;t==h||c._isChildOf(t,h)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",r.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){t.expandedItem==e&&(o.style.height=24*o.childNodes.length+"px",o.style.padding="5px 10px")},0),r.addClassName(o.parentNode,"jsoneditor-selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,o,s=e.target,a=e.which,l=!1;27==a?(this.selection&&r.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),0==(i=t.indexOf(s))&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),(i=t.indexOf(s))==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),(n=t[i-1])&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"jsoneditor-expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&o.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&(o=t[i+2]),o||(o=t[0]),o&&(o.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){"use strict";function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=a.debounce(this._onChangeValue.bind(this),n.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=a.debounce(this._onChangeField.bind(this),n.prototype.DEBOUNCE_INTERVAL)}var r=i(10),o=i(8),s=i(11),a=i(5);n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.getPath=function(){for(var e=this,t=[];e;){var i=e.parent?"array"!=e.parent.type?e.field:e.index:void 0;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.findNode=function(e){for(var t=a.parsePath(e),i=this;i&&t.length>0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r._nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,c,h,d,u,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,E=t.pageX,C=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),C=!0)}else{var F=e[e.length-1];if(c=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),o=s;do{u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(u&&u.parent){var x=E-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=u.getLevel();for(r=u.dom.tr.previousSibling;D<$&&r;){d=n.getNodeFromTarget(r);if(e.some(function(e){return e===d||d._isChildOf(e)}));else{if(!(d instanceof l))break;var k=d.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}c.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),C=!0)}}}C&&(y.drag.mouseX=E,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),l=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=n._findSchema(this.editor.options.schema,this.getPath()),this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){for(var i=e,n=0;n0?this.editor.multiselection.nodes:[this],A=y[0],E=y[y.length-1];if(13==u){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var C=this._hasChilds();if(C){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(y),v=!0);else if(69==u)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(y),v=!0);else if(45==u&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(E.expanded){var $=E.getAppend();r=$?$.nextSibling:void 0}else{var D=E.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof l&&1!=E.parent.childs.length&&_&&_.parent&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),i.focus("field")),v=!0;else if(g&&m&&w){i=E.expanded?E.append?E.append._nextNode():void 0:E._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getSelection();n.blurNodes(e);var a=r.getSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;i==l[l.length-1]&&s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}]}),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}]}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,f.length);gr)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="(empty)",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}]}];new o(s,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(5),o=i(8);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.frame.appendChild(r);var s=r.clientHeight;this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(15),i(18),i(20)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,m=d.bind(f.toString),g=d.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var E=r({}),C="undefined"==typeof document||r(document.createElement("div"));if(!E||!C)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isTouchPad=r.indexOf("TouchPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){if("ontouchmove"in e){var n,r;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];n=t.clientX,r=t.clientY}),t.addListener(e,"touchmove",function(e){var t=e.changedTouches[0];e.wheelX=-(t.clientX-n)/1,e.wheelY=-(t.clientY-r)/1,n=t.clientX,r=t.clientY,i(e)})}},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(d=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),1==d&&(l=e.clientX,c=e.clientY)}if(e._clicks=d,n[r]("mousedown",e),d>4)d=0;else if(d>1)return n[r](u[d],e)}function a(e){d=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),n[r]("mousedown",e),n[r](u[d],e)}var l,c,h,d=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;i=53&&B()}},I=s.delayedCall(O,50);n.addListener(d,"compositionstart",M),r.isGecko?n.addListener(d,"text",function(){I.schedule()}):(n.addListener(d,"keyup",function(){I.schedule()}),n.addListener(d,"keydown",function(){I.schedule()})),n.addListener(d,"compositionend",j),this.getElement=function(){return d},this.setReadOnly=function(e){d.readOnly=e},this.onContextMenu=function(e){D=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){if(i||!r.isOldIE){g||(g=d.style.cssText),d.style.cssText=(i?"z-index:100000;":"")+"height:"+d.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),u=s.bottom-l-d.clientHeight-2,f=function(e){d.style.left=e.clientX-c-2+"px",d.style.top=Math.min(e.clientY-l-2,u)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&!r.isOldIE&&n.capture(t.container,f,h))}},this.onContextMenuClose=h;var N,W=function(e){t.textInput.onContextMenu(e),h()};n.addListener(d,"mouseup",W),n.addListener(d,"mousedown",function(e){e.preventDefault(),h()}),n.addListener(t.renderer.scroller,"contextmenu",W),n.addListener(d,"contextmenu",W)};t.TextInput=c}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}e("../lib/dom"),e("../lib/event"),e("../lib/useragent");(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),s=o.isEmpty();return n.$blockScrolling++,(s||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&n.textInput.onContextMenu(e.domEvent))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor;return n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed)||i<200?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor -;if(n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed)||i<200)return this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var h=d.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),u&&(c.hide(),u=null,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();u&&e.$tooltipFollowsMouse&&n(r),d=r,h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function d(){C=g.selection.toOrientedRange(),w=g.session.addMarker(C,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(E),n(),E=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(E),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(C),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),C=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,E,C,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}C=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||d(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(d(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return u(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":C=C.contains(b.row,b.column)?{start:b,end:b}:g.moveText(C,b);break;case"copy":C=g.moveText(C,b,!0)}else{var i=t.getData("Text");C={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return u(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&(n.row>0||e>0)&&n.row++,this.moveCursorTo(n.row,n.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;rh){var v=e.substring(h,g-m.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(n.prototype),t.TokenIterator=n}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},u=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},f=function(){this.add("braces","insertion",function(e,t,i,r,o){var s=i.getCursorPosition(),l=r.doc.getLine(s.row);if("{"==o){d(i);var c=i.getSelectionRange(),h=r.doc.getTextRange(c);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return u(c,h,"{","}");if(f.isSaneInsertion(i,r))return/[\]\}\)]/.test(l[s.column])||i.inMultiSelectMode?(f.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==o){d(i);var p=l.substring(s.column,s.column+1);if("}"==p){var m=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(null!==m&&f.isAutoInsertedClosing(s,l,o))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==o||"\r\n"==o){d(i);var g="";f.isMaybeInsertedClosing(s,l)&&(g=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var p=l.substring(s.column,s.column+1);if("}"===p){var v=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!v)return null;var w=this.$getIndent(r.getLine(v.row))}else{if(!g)return void f.clearMaybeInsertedClosing();var w=this.$getIndent(l)}var y=w+r.getTabString();return{text:"\n"+y+"\n"+w+g,selection:[1,y.length,1,y.length]}}f.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){d(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return u(o,s,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){d(i);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return u(o,s,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){d(i);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){if('"'==r||"'"==r){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;d(i);var o=r,s=i.getSelectionRange(),a=n.doc.getTextRange(s);if(""!==a&&"'"!==a&&'"'!=a&&i.getWrapBehavioursEnabled())return u(s,a,o,o);if(!a){var l=i.getCursorPosition(),c=n.doc.getLine(l.row),h=c.substring(l.column-1,l.column),f=c.substring(l.column,l.column+1),p=n.getTokenAt(l.row,l.column),m=n.getTokenAt(l.row,l.column+1);if("\\"==h&&p&&/escape/.test(p.type))return null;var g,v=p&&/string|escape/.test(p.type),w=!m||/string|escape/.test(m.type);if(f==o)(g=v!==w)&&/string\.end/.test(m.type)&&(g=!1);else{if(v&&!w)return null;if(v&&w)return null;var y=n.$mode.tokenRe;y.lastIndex=0;var A=y.test(h);y.lastIndex=0;var E=y.test(h);if(A||E)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;g=!0}return{text:g?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){d(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(f,o),t.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F", -Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(E=e.length)}),c==1/0&&(c=E,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;u=new c(m,g,m,g+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),u&&(t.remove(u),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(t=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++} -for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,h=o.start,s=h.row-l.row,a=h.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new c(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=d+n-v;if(e[w-1]>=a&&e[w]>=a)s(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),d-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?s(++w):(w=d+n,2==e[w]&&w--,s(w-v))}else{for(w;w!=d-1&&e[w]!=t;w--);if(w>d){s(w);continue}for(w=d+n;w39&&s<48||s>57&&s<64?r.push(9):s>=4352&&e(s)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var s=l[c],r=this.$docRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getLength()-1,f=this.getNextFoldLine(r),p=f?f.start.row:1/0;s<=e&&(a=this.getRowLength(r),!(s+a>e||r>=u));)s+=a,++r>p&&(r=f.end.row+1,f=this.getNextFoldLine(r,f),p=f?f.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(s));if(f&&f.start.row<=r)i=this.getFoldDisplayLine(f),r=f.start.row;else{if(s+a<=e||r>u)return{row:u,column:this.getLine(u).length};i=this.getLine(r),f=null}var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){var v=Math.floor(e-s);n=g[v],v>0&&g.length&&(m=g.indent,o=g[v-1]||g[g.length-1],i=i.substring(o))}}return o+=this.$getStringScreenWidth(i,t-m)[1],this.$useWrapMode&&o>=n&&(o=n-1),f?f.idxToPosition(o):{row:r,column:o}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;a=f){if((s=u.end.row+1)>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),o.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=f}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r){if(e.start)n=e;else{var o=e.offset+(r||0);if(n=new s(i,o,i,o+e.length),!e.length&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))return n=null,!1}return!0}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(o.push(l=new s(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vE&&o[u].end.row==i.end.row;)u--;for(o=o.slice(v,u+1),v=0,u=o.length;v=0;a--)if(n(s[a],t,o))return!0};else var a=function(e,t,o){for(var s=r.getMatchOffsets(e,i),a=0;a=s;n--)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=a,s=o.row;n>=s;n--)if(i(e.getLine(n),n))return}}:function(i){var n=o.row;if(!i(e.getLine(n).substr(o.column),n,o.column)){for(n+=1;n<=a;n++)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=s,a=o.row;n<=a;n++)if(i(e.getLine(n),n))return}}}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=n||i.isDefault?-100:e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var n=new f(0,0,0,0),r=e.first;r<=e.last;r++){var o=t.getLine(r);n.start.row=r,n.end.row=r,n.end.column=o.length,t.replace(n,i[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}).call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+r.start.column*e.characterWidth;n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=new n(h,i.start.column,h,u);h<=c;h++)p.start.row=p.end.row=h,p.start.column=h==l?i.start.column:a.getRowWrapIndent(h),p.end.column=f,d=u,u=f,f=h+1f,h==c),o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o=this.$padding,s=n.lineHeight,a=this.$getTop(t.start.row,n),l=o+t.start.column*n.characterWidth;r=r||"",e.push("
"),a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;if(e.push("
"),!((s=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var h=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+i.column*this.config.characterWidth,top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_editor.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()), -this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var E=e.getFoldLine(w);E&&(w=E.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var C=0;return this.layerConfig.width!=o&&(C=this.CHANGE_H_SCROLL),(a||p)&&(C=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},C},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=(e+this.scrollLeft-i.left-this.$padding)/this.characterWidth,r=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),o=Math.round(n);return{row:r,column:o,side:n-o>0?1:-1}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=Math.round((e+this.scrollLeft-i.left-this.$padding)/this.characterWidth),r=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(r,Math.max(n,0))},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+Math.round(n.column*this.characterWidth),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,a=e("../config"),l=function(t,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)o=o||a.moduleUrl(n.id,"worker");else{var s=this.$normalizePath;o=o||s(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach(function(t){l[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{var c=n.src,h=i(17),d=new h([c],{type:"application/javascript"}),u=(window.URL||window.webkitURL).createObjectURL(d);this.$worker=new Worker(u)}catch(e){if(!(e instanceof window.DOMException))throw e;var d=this.$workerBlob(o),f=window.URL||window.webkitURL,p=f.createObjectURL(d);this.$worker=new Worker(p),f.revokeObjectURL(p)}this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return o.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))},this.$workerBlob=function(e){var t="importScripts('"+o.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,n=new i;return n.append(t),n.getBlob("application/javascript")}}}).call(l.prototype);var c=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(s),l=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){l.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=l.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){l.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],function(e){for(n=new e[i](o);l.messageBuffer.length;)c()})};c.prototype=l.prototype,t.UIWorkerClient=c,t.WorkerClient=l}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)m--;if(m>0)for(var g=0;n[g].isEmpty();)g++;for(var v=m;v>=g;v--)n[v].isEmpty()&&n.splice(v,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(d)}while(/[=:]/.test(p)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var g=this.session.removeFullLines(h,d);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return u.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,s,c,d)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return u.destroy(),{command:"null"}};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(16),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),o.addListener(window,"resize",d.onResize),h.on("destroy",function(){o.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h}, -t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.6"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=function(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var e=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return function(t,i){var n=new e,r=i.endings,o=i.type;if(r)for(var s=0,a=t.length;sc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(19),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker",e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/lang"),o=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString("\t.ace_search {\tbackground-color: #ddd;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\tmax-width: 325px;\toverflow: hidden;\tmargin: 0;\tpadding: 4px;\tpadding-right: 6px;\tpadding-bottom: 0;\tposition: absolute;\ttop: 0px;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tborder-radius: 3px;\tborder: 1px solid #cbcbcb;\tfloat: left;\tmargin-bottom: 4px;\toverflow: hidden;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tbackground-color: white;\tcolor: black;\tborder-right: 1px solid #cbcbcb;\tborder: 0 none;\t-webkit-box-sizing: border-box;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tfloat: left;\theight: 22px;\toutline: 0;\tpadding: 0 7px;\twidth: 214px;\tmargin: 0;\t}\t.ace_searchbtn,\t.ace_replacebtn {\tbackground: #fff;\tborder: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tfloat: left;\theight: 22px;\tmargin: 0;\tposition: relative;\t}\t.ace_searchbtn:last-child,\t.ace_replacebtn:last-child {\tborder-top-right-radius: 3px;\tborder-bottom-right-radius: 3px;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn {\tbackground-position: 50% 50%;\tbackground-repeat: no-repeat;\twidth: 27px;\t}\t.ace_searchbtn.prev {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \t}\t.ace_searchbtn.next {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfloat: right;\tfont: 16px/16px Arial;\theight: 14px;\tmargin: 5px 1px 9px 5px;\tpadding: 0;\ttext-align: center;\twidth: 14px;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_replacebtn.prev {\twidth: 54px\t}\t.ace_replacebtn.next {\twidth: 27px\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\t}","ace_searchbox");var l=''.replace(/>\s+/g,">"),c=function(e,t,i){var r=n.createElement("div");r.innerHTML=l,this.element=r.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;o.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),o.stopPropagation(e)}),o.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),o.stopPropagation(e)}),o.addCommandKeyListener(e,function(e,i,n){var r=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,r);s&&s.exec&&(s.exec(t),o.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),o.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),o.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),o.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var r=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){"use strict";function n(e,t,i){if(!(this instanceof n))throw new Error('JSONEditor constructor called without "new".');var r=a.getInternetExplorerVersion();if(-1!=r&&r<9)throw new Error("Unsupported browser, IE9 or newer required. Please install the newest version of your browser.");if(t&&(t.error&&(console.warn('Option "error" has been renamed to "onError"'),t.onError=t.error,delete t.error),t.change&&(console.warn('Option "change" has been renamed to "onChange"'),t.onChange=t.change,delete t.change),t.editable&&(console.warn('Option "editable" has been renamed to "onEditable"'),t.onEditable=t.editable,delete t.editable),t)){var o=["ace","theme","autocomplete","ajv","schema","onChange","onEditable","onError","onModeChange","escapeUnicode","history","search","mode","modes","name","indentation","sortObjectKeys"];Object.keys(t).forEach(function(e){-1===o.indexOf(e)&&console.warn('Unknown option "'+e+'". This option will be ignored')})}arguments.length&&this._create(e,t,i)}var r;try{r=i(1)}catch(e){}var o=i(2),s=i(13),a=i(5);n.modes={},n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._create=function(e,t,i){this.container=e,this.options=t||{},this.json=i||{};var n=this.options.mode||"tree";this.setMode(n)},n.prototype.destroy=function(){},n.prototype.set=function(e){this.json=e},n.prototype.get=function(){return this.json},n.prototype.setText=function(e){this.json=a.parse(e)},n.prototype.getText=function(){return JSON.stringify(this.json)},n.prototype.setName=function(e){this.options||(this.options={}),this.options.name=e},n.prototype.getName=function(){return this.options&&this.options.name},n.prototype.setMode=function(e){var t,i,r=this.container,o=a.extend({},this.options),s=o.mode;o.mode=e;var l=n.modes[e];if(!l)throw new Error('Unknown mode "'+o.mode+'"');try{var c="text"==l.data;if(i=this.getName(),t=this[c?"getText":"get"](),this.destroy(),a.clear(this),a.extend(this,l.mixin),this.create(r,o),this.setName(i),this[c?"setText":"set"](t),"function"==typeof l.load)try{l.load.call(this)}catch(e){console.error(e)}if("function"==typeof o.onModeChange&&e!==s)try{o.onModeChange(e,s)}catch(e){console.error(e)}}catch(e){this._onError(e)}},n.prototype.getMode=function(){return this.options.mode},n.prototype._onError=function(e){if(!this.options||"function"!=typeof this.options.onError)throw e;this.options.onError(e)},n.prototype.setSchema=function(e){if(e){var t;try{t=this.options.ajv||r({allErrors:!0,verbose:!0})}catch(e){console.warn("Failed to create an instance of Ajv, JSON Schema validation is not available. Please use a JSONEditor bundle including Ajv, or pass an instance of Ajv as via the configuration option `ajv`.")}t&&(this.validateSchema=t.compile(e),this.options.schema=e,this.validate()),this.refresh()}else this.validateSchema=null,this.options.schema=null,this.validate(),this.refresh()},n.prototype.validate=function(){},n.prototype.refresh=function(){},n.registerMode=function(e){var t,i;if(a.isArray(e))for(t=0;t=1&&i<=12&&n>=1&&n<=m[i]}function o(e,t){var i=e.match(g);if(!i)return!1;var n=i[1],r=i[2],o=i[3],s=i[5];return n<=23&&r<=59&&o<=59&&(!t||s)}function s(e){var t=e.split(E);return 2==t.length&&r(t[0])&&o(t[1],!0)}function a(e){return e.length<=255&&v.test(e)}function l(e){return C.test(e)&&w.test(e)}function c(e){try{return new RegExp(e),!0}catch(e){return!1}}function h(e,t){if(e&&t)return e>t?1:et?1:e=0?{index:n,compiling:!0}:(n=this._compilations.length,this._compilations[n]={schema:e,root:t,baseId:i},{index:n,compiling:!1})}function s(e,t,i){var n=a.call(this,e,t,i);n>=0&&this._compilations.splice(n,1)}function a(e,t,i){for(var n=0;n=55296&&t<=56319&&r=t)throw new Error("Cannot access property/index "+n+" levels up, current level is "+t);return i[t-n]}if(n>t)throw new Error("Cannot access data "+n+" levels up, current level is "+t);if(o="data"+(t-n||""),!r)return o}for(var a=o,c=r.split("/"),h=0;h",F="result"+r,x=e.opts.v5&&s&&s.$data;if(x?(n+=" var schema"+r+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",w="schema"+r):w=s,C){var S=e.util.getData(E.$data,o,e.dataPathArr),$="exclusive"+r,D="op"+r,k="' + "+D+" + '";n+=" var schemaExcl"+r+" = "+S+"; ",S="schemaExcl"+r,n+=" if (typeof "+S+" != 'boolean' && "+S+" !== undefined) { "+d+" = false; ";var i=A,B=B||[];B.push(n),n="",!1!==e.createErrors?(n+=" { keyword: '"+(i||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(n+=" , message: '"+A+" should be boolean' "),e.opts.verbose&&(n+=" , schema: validate.schema"+a+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var _=n;n=B.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(p+="}",n+=" else { "),x&&(n+=" if ("+w+" === undefined) "+d+" = true; else if (typeof "+w+" != 'string') "+d+" = false; else { ",p+="}"),f&&(n+=" if (!"+v+") "+d+" = true; else { ",p+="}"),n+=" var "+F+" = "+v+"("+h+", ",n+=x?""+w:""+e.util.toQuotedString(s),n+=" ); if ("+F+" === undefined) "+d+" = false; var "+$+" = "+S+" === true; if ("+d+" === undefined) { "+d+" = "+$+" ? "+F+" "+b+" 0 : "+F+" "+b+"= 0; } if (!"+d+") var op"+r+" = "+$+" ? '"+b+"' : '"+b+"=';"}else{var $=!0===E,k=b;$||(k+="=");var D="'"+k+"'";x&&(n+=" if ("+w+" === undefined) "+d+" = true; else if (typeof "+w+" != 'string') "+d+" = false; else { ",p+="}"),f&&(n+=" if (!"+v+") "+d+" = true; else { ",p+="}"),n+=" var "+F+" = "+v+"("+h+", ",n+=x?""+w:""+e.util.toQuotedString(s),n+=" ); if ("+F+" === undefined) "+d+" = false; if ("+d+" === undefined) "+d+" = "+F+" "+b,$||(n+="="),n+=" 0;"}n+=p+"if (!"+d+") { ";var i=t,B=B||[];B.push(n),n="",!1!==e.createErrors?(n+=" { keyword: '"+(i||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+D+", limit: ",n+=x?""+w:""+e.util.toQuotedString(s),n+=" , exclusive: "+$+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be "+k+' "',n+=x?"' + "+w+" + '":""+e.util.escapeQuotes(s),n+="\"' "),e.opts.verbose&&(n+=" , schema: ",n+=x?"validate.schema"+a:""+e.util.toQuotedString(s),n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var _=n;return n=B.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+_+"]); ":n+=" validate.errors = ["+_+"]; return false; ":n+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="}"}},{}],14:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maximum"==t,p=f?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],g=e.opts.v5&&m&&m.$data,v=f?"<":">",w=f?">":"<";if(g){var y=e.util.getData(m.$data,s,e.dataPathArr),A="exclusive"+o,E="op"+o,C="' + "+E+" + '";r+=" var schemaExcl"+o+" = "+y+"; ",y="schemaExcl"+o,r+=" var exclusive"+o+"; if (typeof "+y+" != 'boolean' && typeof "+y+" != 'undefined') { ";var i=p,b=b||[];b.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(r+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var F=r;r=b.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+F+"]); ":r+=" validate.errors = ["+F+"]; return false; ":r+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else if( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" ((exclusive"+o+" = "+y+" === true) ? "+d+" "+w+"= "+n+" : "+d+" "+w+" "+n+") || "+d+" !== "+d+") { var op"+o+" = exclusive"+o+" ? '"+v+"' : '"+v+"=';"}else{var A=!0===m,C=v;A||(C+="=");var E="'"+C+"'";r+=" if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+d+" "+w,A&&(r+="="),r+=" "+n+" || "+d+" !== "+d+") {"}var i=t,b=b||[];b.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+E+", limit: "+n+", exclusive: "+A+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be "+C+" ",r+=u?"' + "+n:a+"'"),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var F=r;return r=b.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+F+"]); ":r+=" validate.errors = ["+F+"]; return false; ":r+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",h&&(r+=" else { "),r}},{}],15:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maxItems"==t?">":"<";r+="if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" "+d+".length "+f+" "+n+") { ";var i=t,p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have ",r+="maxItems"==t?"more":"less",r+=" than ",r+=u?"' + "+n+" + '":""+a,r+=" items' "),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;return r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},{}],16:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maxLength"==t?">":"<";r+="if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),!1===e.opts.unicode?r+=" "+d+".length ":r+=" ucs2length("+d+") ",r+=" "+f+" "+n+") { ";var i=t,p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT be ",r+="maxLength"==t?"longer":"shorter",r+=" than ",r+=u?"' + "+n+" + '":""+a,r+=" characters' "),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;return r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},{}],17:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,d="data"+(s||""),u=e.opts.v5&&a&&a.$data;u?(r+=" var schema"+o+" = "+e.util.getData(a.$data,s,e.dataPathArr)+"; ",n="schema"+o):n=a;var f="maxProperties"==t?">":"<";r+="if ( ",u&&(r+=" ("+n+" !== undefined && typeof "+n+" != 'number') || "),r+=" Object.keys("+d+").length "+f+" "+n+") { ";var i=t,p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '"+(i||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have ",r+="maxProperties"==t?"more":"less",r+=" than ",r+=u?"' + "+n+" + '":""+a,r+=" properties' "),e.opts.verbose&&(r+=" , schema: ",r+=u?"validate.schema"+l:""+a,r+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),r+=" } "):r+=" {} ";var m=r;return r=p.pop(),!e.compositeRule&&h?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",h&&(r+=" else { "),r}},{}],18:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.schema[t],r=e.schemaPath+e.util.getProperty(t),o=e.errSchemaPath+"/"+t,s=!e.opts.allErrors,a=e.util.copy(e),l="";a.level++;var c="valid"+a.level,h=a.baseId,d=!0,u=n;if(u)for(var f,p=-1,m=u.length-1;p "+x+") { ";var $=c+"["+x+"]";u.schema=F,u.schemaPath=s+"["+x+"]",u.errSchemaPath=a+"/"+x,u.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),u.dataPathArr[g]=x;var D=e.validate(u);u.baseId=w,e.util.varOccurences(D,v)<2?i+=" "+e.util.varReplace(D,v,$)+" ":i+=" var "+v+" = "+$+"; "+D+" ",i+=" } ",l&&(i+=" if ("+p+") { ",f+="}")}if("object"==typeof y&&e.util.schemaHasRules(y,e.RULES.all)){u.schema=y,u.schemaPath=e.schemaPath+".additionalItems",u.errSchemaPath=e.errSchemaPath+"/additionalItems",i+=" "+p+" = true; if ("+c+".length > "+o.length+") { for (var "+m+" = "+o.length+"; "+m+" < "+c+".length; "+m+"++) { ",u.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var $=c+"["+m+"]";u.dataPathArr[g]=m;var D=e.validate(u);u.baseId=w,e.util.varOccurences(D,v)<2?i+=" "+e.util.varReplace(D,v,$)+" ":i+=" var "+v+" = "+$+"; "+D+" ",l&&(i+=" if (!"+p+") break; "),i+=" } } ",l&&(i+=" if ("+p+") { ",f+="}")}}else if(e.util.schemaHasRules(o,e.RULES.all)){u.schema=o,u.schemaPath=s,u.errSchemaPath=a,i+=" for (var "+m+" = 0; "+m+" < "+c+".length; "+m+"++) { ",u.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var $=c+"["+m+"]";u.dataPathArr[g]=m;var D=e.validate(u);u.baseId=w,e.util.varOccurences(D,v)<2?i+=" "+e.util.varReplace(D,v,$)+" ":i+=" var "+v+" = "+$+"; "+D+" ",l&&(i+=" if (!"+p+") break; "),i+=" } ",l&&(i+=" if ("+p+") { ",f+="}")}return l&&(i+=" "+f+" if ("+d+" == errors) {"),i=e.util.cleanUpCode(i)}},{}],26:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n=" ",r=e.level,o=e.dataLevel,s=e.schema[t],a=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(o||""),d=e.opts.v5&&s&&s.$data;d?(n+=" var schema"+r+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",i="schema"+r):i=s,n+="var division"+r+";if (",d&&(n+=" "+i+" !== undefined && ( typeof "+i+" != 'number' || "),n+=" (division"+r+" = "+h+" / "+i+", ",e.opts.multipleOfPrecision?n+=" Math.abs(Math.round(division"+r+") - division"+r+") > 1e-"+e.opts.multipleOfPrecision+" ":n+=" division"+r+" !== parseInt(division"+r+") ",n+=" ) ",d&&(n+=" ) "),n+=" ) { ";var u=u||[];u.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { multipleOf: "+i+" } ",!1!==e.opts.messages&&(n+=" , message: 'should be multiple of ",n+=d?"' + "+i:s+"'"),e.opts.verbose&&(n+=" , schema: ",n+=d?"validate.schema"+a:""+s,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var f=n;return n=u.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+f+"]); ":n+=" validate.errors = ["+f+"]; return false; ":n+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",c&&(n+=" else { "),n}},{}],27:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.level,r=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),a=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,c="data"+(r||""),h="errs__"+n,d=e.util.copy(e);d.level++;var u="valid"+d.level;if(e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=s,d.errSchemaPath=a,i+=" var "+h+" = errors; ";var f=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var p;d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),i+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=f,i+=" if ("+u+") { ";var m=m||[];m.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: 'should NOT be valid' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var g=i;i=m.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+g+"]); ":i+=" validate.errors = ["+g+"]; return false; ":i+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(i+=" } ")}else i+=" var err = ",!1!==e.createErrors?(i+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: 'should NOT be valid' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ",i+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(i+=" if (false) { ");return i}},{}],28:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.level,r=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),a=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,c="data"+(r||""),h="valid"+n,d="errs__"+n,u=e.util.copy(e),f="";u.level++;var p="valid"+u.level;i+="var "+d+" = errors;var prevValid"+n+" = false;var "+h+" = false;";var m=u.baseId,g=e.compositeRule;e.compositeRule=u.compositeRule=!0;var v=o;if(v)for(var w,y=-1,A=v.length-1;y5)i+=" || validate.schema"+s+"["+m+"] ";else{var R=w;if(R)for(var T,P=-1,M=R.length-1;P= "+pe+"; ",a=e.errSchemaPath+"/patternGroups/minimum",i+=" if (!"+h+") { ";var q=q||[];q.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: { reason: '"+ve+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(H)+"' } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have "+we+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(H)+"\"' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var G=i;i=q.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+G+"]); ":i+=" validate.errors = ["+G+"]; return false; ":i+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",void 0!==me&&(i+=" else ")}if(void 0!==me){var ge=me,ve="maximum",we="more";i+=" "+h+" = pgPropCount"+n+" <= "+me+"; ",a=e.errSchemaPath+"/patternGroups/maximum",i+=" if (!"+h+") { ";var q=q||[];q.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: { reason: '"+ve+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(H)+"' } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have "+we+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(H)+"\"' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var G=i;i=q.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+G+"]); ":i+=" validate.errors = ["+G+"]; return false; ":i+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } "}a=K,l&&(i+=" if ("+h+") { ",f+="}")}}}}return l&&(i+=" "+f+" if ("+d+" == errors) {"),i=e.util.cleanUpCode(i)}},{}],32:[function(e,t,i){"use strict";t.exports=function(e,t){var i,n,r=" ",o=e.level,s=e.dataLevel,a=e.schema[t],l=e.errSchemaPath+"/"+t,c=!e.opts.allErrors,h="data"+(s||""),d="valid"+o;if("#"==a||"#/"==a)e.isRoot?(i=e.async,n="validate"):(i=!0===e.root.schema.$async,n="root.refVal[0]");else{var u=e.resolveRef(e.baseId,a,e.isRoot);if(void 0===u){var f="can't resolve reference "+a+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(f);var p=p||[];p.push(r),r="",!1!==e.createErrors?(r+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(a)+"' } ",!1!==e.opts.messages&&(r+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(a)+"' "),e.opts.verbose&&(r+=" , schema: "+e.util.toQuotedString(a)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ";var m=r;r=p.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(r+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var g=new Error(f);throw g.missingRef=e.resolve.url(e.baseId,a),g.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(g.missingRef)),g}console.log(f),c&&(r+=" if (true) { ")}}else if(u.inline){var v=e.util.copy(e);v.level++;var w="valid"+v.level;v.schema=u.schema,v.schemaPath="",v.errSchemaPath=a;var y=e.validate(v).replace(/validate\.schema/g,u.code);r+=" "+y+" ",c&&(r+=" if ("+w+") { ")}else i=!0===u.$async,n=u.code}if(n){var p=p||[];p.push(r),r="",e.opts.passContext?r+=" "+n+".call(this, ":r+=" "+n+"( ",r+=" "+h+", (dataPath || '')",'""'!=e.errorPath&&(r+=" + "+e.errorPath);r+=" , "+(s?"data"+(s-1||""):"parentData")+" , "+(s?e.dataPathArr[s]:"parentDataProperty")+", rootData) ";var A=r;if(r=p.pop(),i){if(!e.async)throw new Error("async schema referenced by sync schema");r+=" try { ",c&&(r+="var "+d+" ="),r+=" "+e.yieldAwait+" "+A+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",c&&(r+=" if ("+d+") { ")}else r+=" if (!"+A+") { if (vErrors === null) vErrors = "+n+".errors; else vErrors = vErrors.concat("+n+".errors); errors = vErrors.length; } ",c&&(r+=" else { ")}return r}},{}],33:[function(e,t,i){"use strict";t.exports=function(e,t){var i=" ",n=e.level,r=e.dataLevel,o=e.schema[t],s=e.schemaPath+e.util.getProperty(t),a=e.errSchemaPath+"/"+t,l=!e.opts.allErrors,c="data"+(r||""),h="valid"+n,d=e.opts.v5&&o&&o.$data;d&&(i+=" var schema"+n+" = "+e.util.getData(o.$data,r,e.dataPathArr)+"; ");var u="schema"+n;if(!d)if(o.length=e.opts.loopRequired;if(l)if(i+=" var missing"+n+"; ",A){d||(i+=" var "+u+" = validate.schema"+s+"; ");var E="i"+n,C="schema"+n+"["+E+"]",b="' + "+C+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,C,e.opts.jsonPointers)),i+=" var "+h+" = true; ",d&&(i+=" if (schema"+n+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+n+")) "+h+" = false; else {"),i+=" for (var "+E+" = 0; "+E+" < "+u+".length; "+E+"++) { "+h+" = "+c+"["+u+"["+E+"]] !== undefined; if (!"+h+") break; } ",d&&(i+=" } "),i+=" if (!"+h+") { ";var F=F||[];F.push(i),i="",!1!==e.createErrors?(i+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(a)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(i+=" , message: '",e.opts._errorDataPathProperty?i+="is a required property":i+="should have required property \\'"+b+"\\'",i+="' "),e.opts.verbose&&(i+=" , schema: validate.schema"+s+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),i+=" } "):i+=" {} ";var x=i;i=F.pop(),!e.compositeRule&&l?e.async?i+=" throw new ValidationError(["+x+"]); ":i+=" validate.errors = ["+x+"]; return false; ":i+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { "}else{i+=" if ( ";var S=f;if(S)for(var $,E=-1,D=S.length-1;E 1) { var i = "+h+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } } ",u&&(n+=" } "),n+=" if (!"+d+") { ";var f=f||[];f.push(n),n="",!1!==e.createErrors?(n+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(n+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(n+=" , schema: ",n+=u?"validate.schema"+a:""+s,n+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var p=n;n=f.pop(),!e.compositeRule&&c?e.async?n+=" throw new ValidationError(["+p+"]); ":n+=" validate.errors = ["+p+"]; return false; ":n+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",c&&(n+=" else { ")}else c&&(n+=" if (true) { ");return n}},{}],36:[function(e,t,i){"use strict";t.exports=function(e,t){function i(t){return void 0!==e.schema[t.keyword]||"properties"==t.keyword&&(!1===e.schema.additionalProperties||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var n="",r=!0===e.schema.$async;if(e.isTop){var o=e.isTop,s=e.level=0,a=e.dataLevel=0,l="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,r){e.async=!0;var c="es7"==e.opts.async;e.yieldAwait=c?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],n+=" var validate = ",r?c?n+=" (async function ":("co*"==e.opts.async&&(n+="co.wrap"),n+="(function* "):n+=" (function ",n+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; var vErrors = null; ",n+=" var errors = 0; ",n+=" if (rootData === undefined) rootData = data;"}else{var s=e.level,a=e.dataLevel,l="data"+(a||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),r&&!e.async)throw new Error("async schema in sync schema");n+=" var errs_"+s+" = errors;"}var h="valid"+s,d=!e.opts.allErrors,u="",f="",p=e.schema.type,m=Array.isArray(p);if(p&&e.opts.coerceTypes){var g=e.util.coerceToTypes(e.opts.coerceTypes,p);if(g){var v=e.schemaPath+".type",w=e.errSchemaPath+"/type",y=m?"checkDataTypes":"checkDataType";n+=" if ("+e.util[y](p,l,!0)+") { ";var A="dataType"+s,E="coerced"+s;n+=" var "+A+" = typeof "+l+"; ","array"==e.opts.coerceTypes&&(n+=" if ("+A+" == 'object' && Array.isArray("+l+")) "+A+" = 'array'; "),n+=" var "+E+" = undefined; ";var C="",b=g;if(b)for(var F,x=-1,S=b.length-1;x2&&(t=u.call(arguments,1)),i(t)})})}function s(e){return Promise.all(e.map(r,this))}function a(e){for(var t=new e.constructor,i=Object.keys(e),n=[],o=0;o="0"&&r<="9";)t+=r,c();if("."===r)for(t+=".";c()&&r>="0"&&r<="9";)t+=r;if("e"===r||"E"===r)for(t+=r,c(),"-"!==r&&"+"!==r||(t+=r,c());r>="0"&&r<="9";)t+=r,c();if(e=+t,isFinite(e))return e;l("Bad number")},d=function(){var e,t,i,n="";if('"'===r)for(;c();){if('"'===r)return c(),n;if("\\"===r)if(c(),"u"===r){for(i=0,t=0;t<4&&(e=parseInt(c(),16),isFinite(e));t+=1)i=16*i+e;n+=String.fromCharCode(i)}else{if("string"!=typeof a[r])break;n+=a[r]}else n+=r}l("Bad string")},u=function(){for(;r&&r<=" ";)c()},f=function(){switch(r){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}l("Unexpected '"+r+"'")},p=function(){var e=[];if("["===r){if(c("["),u(),"]"===r)return c("]"),e;for(;r;){if(e.push(s()),u(),"]"===r)return c("]"),e;c(","),u()}}l("Bad array")},m=function(){var e,t={};if("{"===r){if(c("{"),u(),"}"===r)return c("}"),t;for(;r;){if(e=d(),u(),c(":"),Object.hasOwnProperty.call(t,e)&&l('Duplicate key "'+e+'"'),t[e]=s(),u(),"}"===r)return c("}"),t;c(","),u()}}l("Bad object")};s=function(){switch(u(),r){case"{":return m();case"[":return p();case'"':return d();case"-":return h();default:return r>="0"&&r<="9"?h():f()}},t.exports=function(e,t){var i;return o=e,n=0,r=" ",i=s(),u(),r&&l("Syntax error"),"function"==typeof t?function e(i,n){var r,o,s=i[n];if(s&&"object"==typeof s)for(r in s)Object.prototype.hasOwnProperty.call(s,r)&&(o=e(s,r),void 0!==o?s[r]=o:delete s[r]);return t.call(i,n,s)}({"":i},""):i}},{}],45:[function(e,t,i){function n(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var t=c[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function r(e,t){var i,l,c,h,d,u=o,f=t[e];switch(f&&"object"==typeof f&&"function"==typeof f.toJSON&&(f=f.toJSON(e)),"function"==typeof a&&(f=a.call(t,e,f)),typeof f){case"string":return n(f);case"number":return isFinite(f)?String(f):"null";case"boolean":case"null":return String(f);case"object":if(!f)return"null";if(o+=s,d=[],"[object Array]"===Object.prototype.toString.apply(f)){for(h=f.length,i=0;i1&&(n=i[0]+"@",e=i[1]),e=e.replace(R,"."),n+s(e.split("."),t).join(".")}function l(e){for(var t,i,n=[],r=0,o=e.length;r=55296&&t<=56319&&r65535&&(e-=65536,t+=O(e>>>10&1023|55296),e=56320|1023&e),t+=O(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:b}function d(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function u(e,t,i){var n=0;for(e=i?M(e/$):e>>1,e+=M(e/t);e>P*x>>1;n+=b)e=M(e/P);return M(n+(P+1)*e/(e+S))}function f(e){var t,i,n,r,s,a,l,d,f,p,m=[],g=e.length,v=0,w=k,y=D;for(i=e.lastIndexOf(B),i<0&&(i=0),n=0;n=128&&o("not-basic"),m.push(e.charCodeAt(n));for(r=i>0?i+1:0;r=g&&o("invalid-input"),d=h(e.charCodeAt(r++)),(d>=b||d>M((C-v)/a))&&o("overflow"),v+=d*a,f=l<=y?F:l>=y+x?x:l-y,!(dM(C/p)&&o("overflow"),a*=p;t=m.length+1,y=u(v-s,t,0==s),M(v/t)>C-w&&o("overflow"),w+=M(v/t),v%=t,m.splice(v++,0,w)}return c(m)}function p(e){var t,i,n,r,s,a,c,h,f,p,m,g,v,w,y,A=[];for(e=l(e),g=e.length,t=k,i=0,s=D,a=0;a=t&&mM((C-i)/v)&&o("overflow"),i+=(c-t)*v,t=c,a=0;aC&&o("overflow"),m==t){for(h=i,f=b;p=f<=s?F:f>=s+x?x:f-s,!(h= 0x80 (not a basic code point)","invalid-input":"Invalid input"},P=b-F,M=Math.floor,O=String.fromCharCode;if(A={version:"1.4.1",ucs2:{decode:l,encode:c},decode:f,encode:p,toASCII:g,toUnicode:m},"function"==typeof e&&"object"==typeof e.amd&&e.amd)e("punycode",function(){return A});else if(v&&w)if(n.exports==v)w.exports=A;else for(E in A)A.hasOwnProperty(E)&&(v[E]=A[E]);else i.punycode=A}(this)}).call(this,void 0!==t?t:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],47:[function(e,t,i){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,i,o){t=t||"&",i=i||"=";var s={};if("string"!=typeof e||0===e.length)return s;e=e.split(t);var a=1e3;o&&"number"==typeof o.maxKeys&&(a=o.maxKeys);var l=e.length;a>0&&l>a&&(l=a);for(var c=0;c=0?(h=p.substr(0,m),d=p.substr(m+1)):(h=p,d=""),u=decodeURIComponent(h),f=decodeURIComponent(d),n(s,u)?r(s[u])?s[u].push(f):s[u]=[s[u],f]:s[u]=f}return s};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],48:[function(e,t,i){"use strict";function n(e,t){if(e.map)return e.map(t);for(var i=[],n=0;n",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(f),m=["'"].concat(p),g=["%","/","?",";","#"].concat(m),v=["/","?","#"],w={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},A={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},E=e("querystring");n.prototype.parse=function(e,t,i){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var n=e.indexOf("?"),r=-1!==n&&n127?_+="x":_+=B[L];if(!_.match(/^[+a-z0-9A-Z_-]{0,63}$/)){var T=D.slice(0,b),P=D.slice(b+1),M=B.match(/^([+a-z0-9A-Z_-]{0,63})(.*)$/);M&&(T.push(M[1]),P.unshift(M[2])),P.length&&(s="/"+P.join(".")+s),this.hostname=T.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),$||(this.hostname=l.toASCII(this.hostname));var O=this.port?":"+this.port:"",j=this.hostname||"";this.host=j+O,this.href+=this.host,$&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!w[f])for(var b=0,k=m.length;b0)&&i.host.split("@");x&&(i.auth=x.shift(),i.host=i.hostname=x.shift())}return i.search=e.search,i.query=e.query,c.isNull(i.pathname)&&c.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.href=i.format(),i}if(!b.length)return i.pathname=null,i.search?i.path="/"+i.search:i.path=null,i.href=i.format(),i;for(var S=b.slice(-1)[0],$=(i.host||e.host||b.length>1)&&("."===S||".."===S)||""===S,D=0,k=b.length;k>=0;k--)S=b[k],"."===S?b.splice(k,1):".."===S?(b.splice(k,1),D++):D&&(b.splice(k,1),D--);if(!E&&!C)for(;D--;D)b.unshift("..");!E||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),$&&"/"!==b.join("/").substr(-1)&&b.push("");var B=""===b[0]||b[0]&&"/"===b[0].charAt(0);if(F){i.hostname=i.host=B?"":b.length?b.shift():"";var x=!!(i.host&&i.host.indexOf("@")>0)&&i.host.split("@");x&&(i.auth=x.shift(),i.host=i.hostname=x.shift())}return E=E||i.host&&b.length,E&&!B&&b.unshift(""),b.length?i.pathname=b.join("/"):(i.pathname=null,i.path=null),c.isNull(i.pathname)&&c.isNull(i.search)||(i.path=(i.pathname?i.pathname:"")+(i.search?i.search:"")),i.auth=e.auth||i.auth,i.slashes=i.slashes||e.slashes,i.href=i.format(),i},n.prototype.parseHost=function(){var e=this.host,t=d.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{"./util":51,punycode:46,querystring:49}],51:[function(e,t,i){"use strict";t.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],ajv:[function(e,t,i){"use strict";function n(e){return w.test(e)}function r(t){function i(e,t){var i;if("string"==typeof e){if(!(i=F(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var n=k(e);i=n.validate||B(n)}var r=i(t);return!0===i.$async?"*"==T._opts.async?m(r):r:(T.errors=i.errors,r)}function g(e,t){var i=k(e,void 0,t);return i.validate||B(i)}function A(e,t,i,n){if(Array.isArray(e))for(var r=0;r0?this.autoScrollStep=(n+24-e)/3:e>o-24&&r+i.scrollTop3?(i.scrollTop+=r/3,n.animateCallback=t,n.animateTimeout=setTimeout(a,50)):(t&&t(!0),i.scrollTop=s,delete n.animateTimeout,delete n.animateCallback)};a()}else t&&t(!1)},h._createFrame=function(){function e(e){t._onEvent&&t._onEvent(e)}this.frame=document.createElement("div"),this.frame.className="jsoneditor jsoneditor-mode-"+this.options.mode,this.container.appendChild(this.frame);var t=this;this.frame.onclick=function(t){var i=t.target;e(t),"BUTTON"==i.nodeName&&t.preventDefault()},this.frame.oninput=e,this.frame.onchange=e,this.frame.onkeydown=e,this.frame.onkeyup=e,this.frame.oncut=e,this.frame.onpaste=e,this.frame.onmousedown=e,this.frame.onmouseup=e,this.frame.onmouseover=e,this.frame.onmouseout=e,c.addEventListener(this.frame,"focus",e,!0),c.addEventListener(this.frame,"blur",e,!0),this.frame.onfocusin=e,this.frame.onfocusout=e,this.menu=document.createElement("div"),this.menu.className="jsoneditor-menu",this.frame.appendChild(this.menu);var i=document.createElement("button");i.type="button",i.className="jsoneditor-expand-all",i.title="Expand all fields",i.onclick=function(){t.expandAll()},this.menu.appendChild(i);var n=document.createElement("button");if(n.type="button",n.title="Collapse all fields",n.className="jsoneditor-collapse-all",n.onclick=function(){t.collapseAll()},this.menu.appendChild(n),this.history){var r=document.createElement("button");r.type="button",r.className="jsoneditor-undo jsoneditor-separator",r.title="Undo last action (Ctrl+Z)",r.onclick=function(){t._onUndo()},this.menu.appendChild(r),this.dom.undo=r;var s=document.createElement("button");s.type="button",s.className="jsoneditor-redo",s.title="Redo (Ctrl+Shift+Z)",s.onclick=function(){t._onRedo()},this.menu.appendChild(s),this.dom.redo=s,this.history.onChange=function(){r.disabled=!t.history.canUndo(),s.disabled=!t.history.canRedo()},this.history.onChange()}if(this.options&&this.options.modes&&this.options.modes.length){var a=this;this.modeSwitcher=new l(this.menu,this.options.modes,this.options.mode,function(e){a.modeSwitcher.destroy(),a.setMode(e),a.modeSwitcher.focus()})}this.options.search&&(this.searchBox=new o(this,this.menu))},h._onUndo=function(){this.history&&(this.history.undo(),this._onChange())},h._onRedo=function(){this.history&&(this.history.redo(),this._onChange())},h._onEvent=function(e){"keydown"==e.type&&this._onKeyDown(e),"focus"==e.type&&(this.focusTarget=e.target),"mousedown"==e.type&&this._startDragDistance(e),"mousemove"!=e.type&&"mouseup"!=e.type&&"click"!=e.type||this._updateDragDistance(e);var t=a.getNodeFromTarget(e.target);if(t&&t.selected){if("click"==e.type){if(e.target==t.dom.menu)return void this.showContextMenu(e.target);e.hasMoved||this.deselect()}"mousedown"==e.type&&a.onDragStart(this.multiselection.nodes,e)}else"mousedown"==e.type&&(this.deselect(),t&&e.target==t.dom.drag?a.onDragStart(t,e):(!t||e.target!=t.dom.field&&e.target!=t.dom.value&&e.target!=t.dom.select)&&this._onMultiSelectStart(e));t&&t.onEvent(e)},h._startDragDistance=function(e){this.dragDistanceEvent={initialTarget:e.target,initialPageX:e.pageX,initialPageY:e.pageY,dragDistance:0,hasMoved:!1}},h._updateDragDistance=function(e){this.dragDistanceEvent||this._startDragDistance(e);var t=e.pageX-this.dragDistanceEvent.initialPageX,i=e.pageY-this.dragDistanceEvent.initialPageY;return this.dragDistanceEvent.dragDistance=Math.sqrt(t*t+i*i),this.dragDistanceEvent.hasMoved=this.dragDistanceEvent.hasMoved||this.dragDistanceEvent.dragDistance>10,e.dragDistance=this.dragDistanceEvent.dragDistance,e.hasMoved=this.dragDistanceEvent.hasMoved,e.dragDistance},h._onMultiSelectStart=function(e){var t=a.getNodeFromTarget(e.target);if("tree"===this.options.mode&&void 0===this.options.onEditable){this.multiselection={start:t||null,end:null,nodes:[]},this._startDragDistance(e);var i=this;this.mousemove||(this.mousemove=c.addEventListener(window,"mousemove",function(e){i._onMultiSelect(e)})),this.mouseup||(this.mouseup=c.addEventListener(window,"mouseup",function(e){i._onMultiSelectEnd(e)}))}},h._onMultiSelect=function(e){if(e.preventDefault(),this._updateDragDistance(e),e.hasMoved){var t=a.getNodeFromTarget(e.target);t&&(null==this.multiselection.start&&(this.multiselection.start=t),this.multiselection.end=t),this.deselect();var i=this.multiselection.start,n=this.multiselection.end||this.multiselection.start;i&&n&&(this.multiselection.nodes=this._findTopLevelNodes(i,n),this.select(this.multiselection.nodes))}},h._onMultiSelectEnd=function(e){this.multiselection.nodes[0]&&this.multiselection.nodes[0].dom.menu.focus(),this.multiselection.start=null,this.multiselection.end=null,this.mousemove&&(c.removeEventListener(window,"mousemove",this.mousemove),delete this.mousemove),this.mouseup&&(c.removeEventListener(window,"mouseup",this.mouseup),delete this.mouseup)},h.deselect=function(e){this.multiselection.nodes.forEach(function(e){e.setSelected(!1)}),this.multiselection.nodes=[],e&&(this.multiselection.start=null,this.multiselection.end=null)},h.select=function(e){if(!Array.isArray(e))return this.select([e]);if(e){this.deselect(),this.multiselection.nodes=e.slice(0);var t=e[0];e.forEach(function(e){e.setSelected(!0,e===t)})}},h._findTopLevelNodes=function(e,t){for(var i=e.getNodePath(),n=t.getNodePath(),r=0;r=0&&e.target.className.indexOf("jsoneditor-value")>=0||this.options.autocomplete.ApplyTo.indexOf("name")>=0&&e.target.className.indexOf("jsoneditor-field")>=0)){var h=a.getNodeFromTarget(e.target);(null==this.options.autocomplete.ActivationChar||e.target.innerText.startsWith(this.options.autocomplete.ActivationChar))&&setTimeout(function(e,t){t.innerText.length>0?this.options.autocomplete.Show(e,t):this.options.autocomplete.Hide()}.bind(this,h,e.target),100)}s&&(e.preventDefault(),e.stopPropagation())},h._createTable=function(){var e=document.createElement("div");e.className="jsoneditor-outer",this.contentOuter=e,this.content=document.createElement("div"),this.content.className="jsoneditor-tree",e.appendChild(this.content),this.table=document.createElement("table"),this.table.className="jsoneditor-tree",this.content.appendChild(this.table);var t;this.colgroupContent=document.createElement("colgroup"),"tree"===this.options.mode&&(t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t)),t=document.createElement("col"),t.width="24px",this.colgroupContent.appendChild(t),t=document.createElement("col"),this.colgroupContent.appendChild(t),this.table.appendChild(this.colgroupContent),this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.frame.appendChild(e)},h.showContextMenu=function(e,t){var i=[],n=this;i.push({text:"Duplicate",title:"Duplicate selected fields (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){a.onDuplicate(n.multiselection.nodes)}}),i.push({text:"Remove",title:"Remove selected fields (Ctrl+Del)",className:"jsoneditor-remove",click:function(){a.onRemove(n.multiselection.nodes)}}),new s(i,{close:t}).show(e,this.content)},e.exports=[{mode:"tree",mixin:h,data:"json"},{mode:"view",mixin:h,data:"json"},{mode:"form",mixin:h,data:"json"}]},function(e,t){"use strict";function i(){this.locked=!1}i.prototype.highlight=function(e){this.locked||(this.node!=e&&(this.node&&this.node.setHighlight(!1),this.node=e,this.node.setHighlight(!0)),this._cancelUnhighlight())},i.prototype.unhighlight=function(){if(!this.locked){var e=this;this.node&&(this._cancelUnhighlight(),this.unhighlightTimer=setTimeout(function(){e.node.setHighlight(!1),e.node=void 0,e.unhighlightTimer=void 0},0))}},i.prototype._cancelUnhighlight=function(){this.unhighlightTimer&&(clearTimeout(this.unhighlightTimer),this.unhighlightTimer=void 0)},i.prototype.lock=function(){this.locked=!0},i.prototype.unlock=function(){this.locked=!1},e.exports=i},function(e,t,i){"use strict";function n(e){this.editor=e,this.history=[],this.index=-1,this.clear(),this.actions={editField:{undo:function(e){e.node.updateField(e.oldValue)},redo:function(e){e.node.updateField(e.newValue)}},editValue:{undo:function(e){e.node.updateValue(e.oldValue)},redo:function(e){e.node.updateValue(e.newValue)}},changeType:{undo:function(e){e.node.changeType(e.oldType)},redo:function(e){e.node.changeType(e.newType)}},appendNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.appendChild(t)})}},insertBeforeNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){e.nodes.forEach(function(t){e.parent.insertBefore(t,e.beforeNode)})}},insertAfterNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(e.node,t),t=i})}},removeNodes:{undo:function(e){var t=e.parent,i=t.childs[e.index]||t.append;e.nodes.forEach(function(e){t.insertBefore(e,i)})},redo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})}},duplicateNodes:{undo:function(e){e.nodes.forEach(function(t){e.parent.removeChild(t)})},redo:function(e){var t=e.afterNode;e.nodes.forEach(function(i){e.parent.insertAfter(i,t),t=i})}},moveNodes:{undo:function(e){e.nodes.forEach(function(t){e.oldBeforeNode.parent.moveBefore(t,e.oldBeforeNode)})},redo:function(e){e.nodes.forEach(function(t){e.newBeforeNode.parent.moveBefore(t,e.newBeforeNode)})}},sort:{undo:function(e){var t=e.node;t.hideChilds(),t.sort=e.oldSort,t.childs=e.oldChilds,t.showChilds()},redo:function(e){var t=e.node;t.hideChilds(),t.sort=e.newSort,t.childs=e.newChilds,t.showChilds()}}}}i(5);n.prototype.onChange=function(){},n.prototype.add=function(e,t){this.index++,this.history[this.index]={action:e,params:t,timestamp:new Date},this.index=0},n.prototype.canRedo=function(){return this.index=0;){var t=r[e];if(" "!==t&&"\n"!==t&&"\r"!==t&&"\t"!==t)return t;e--}return""}())?function(){for(var e=["null","true","false"],i="",n=t(),s=/[a-zA-Z_$\d]/;s.test(n);)i+=n,o++,n=t();-1===e.indexOf(i)?r.push('"'+i+'"'):r.push(i)}():(r.push(a),o++)}return r.join("")},t.escapeUnicodeChars=function(e){return e.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})},t.validate=function(e){void 0!==n?n.parse(e):JSON.parse(e)},t.extend=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},t.clear=function(e){for(var t in e)e.hasOwnProperty(t)&&delete e[t];return e},t.type=function(e){return null===e?"null":void 0===e?"undefined":e instanceof Number||"number"==typeof e?"number":e instanceof String||"string"==typeof e?"string":e instanceof Boolean||"boolean"==typeof e?"boolean":e instanceof RegExp||"regexp"==typeof e?"regexp":t.isArray(e)?"array":"object"};var r=/^https?:\/\/\S+$/;t.isUrl=function(e){return("string"==typeof e||e instanceof String)&&r.test(e)},t.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},t.getAbsoluteLeft=function(e){return e.getBoundingClientRect().left+window.pageXOffset||document.scrollLeft||0},t.getAbsoluteTop=function(e){return e.getBoundingClientRect().top+window.pageYOffset||document.scrollTop||0},t.addClassName=function(e,t){var i=e.className.split(" ");-1==i.indexOf(t)&&(i.push(t),e.className=i.join(" "))},t.removeClassName=function(e,t){var i=e.className.split(" "),n=i.indexOf(t);-1!=n&&(i.splice(n,1),e.className=i.join(" "))},t.stripFormatting=function(e){for(var i=e.childNodes,n=0,r=i.length;n=0;a--){var l=s[a];!0===l.specified&&o.removeAttribute(l.name)}t.stripFormatting(o)}},t.setEndOfContentEditable=function(e){var t,i;document.createRange&&(t=document.createRange(),t.selectNodeContents(e),t.collapse(!1),i=window.getSelection(),i.removeAllRanges(),i.addRange(t))},t.selectContentEditable=function(e){if(e&&"DIV"==e.nodeName){var t,i;window.getSelection&&document.createRange&&(i=document.createRange(),i.selectNodeContents(e),t=window.getSelection(),t.removeAllRanges(),t.addRange(i))}},t.getSelection=function(){if(window.getSelection){var e=window.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}return null},t.setSelection=function(e){if(e&&window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}},t.getSelectionOffset=function(){var e=t.getSelection();return e&&"startOffset"in e&&"endOffset"in e&&e.startContainer&&e.startContainer==e.endContainer?{startOffset:e.startOffset,endOffset:e.endOffset,container:e.startContainer.parentNode}:null},t.setSelectionOffset=function(e){if(document.createRange&&window.getSelection){if(window.getSelection()){var i=document.createRange();e.container.firstChild||e.container.appendChild(document.createTextNode("")),i.setStart(e.container.firstChild,e.startOffset),i.setEnd(e.container.firstChild,e.endOffset),t.setSelection(i)}}},t.getInnerText=function(e,i){if(void 0==i&&(i={text:"",flush:function(){var e=this.text;return this.text="",e},set:function(e){this.text=e}}),e.nodeValue)return i.flush()+e.nodeValue;if(e.hasChildNodes()){for(var n=e.childNodes,r="",o=0,s=n.length;o5){var i=["("+(t.length-5)+" more...)"];t=t.slice(0,5),t.push(i)}e.message="should be equal to one of: "+t.join(", ")}}return"additionalProperties"===e.keyword&&(e.message="should NOT have additional property: "+e.params.additionalProperty),e},t.insideRect=function(e,t,i){var n=void 0!==i?i:0;return t.left-n>=e.left&&t.right+n<=e.right&&t.top-n>=e.top&&t.bottom+n<=e.bottom},t.debounce=function(e,t,i){var n;return function(){var r=this,o=arguments,s=function(){n=null,i||e.apply(r,o)},a=i&&!n;clearTimeout(n),n=setTimeout(s,t),a&&e.apply(r,o)}},t.textDiff=function(e,t){for(var i=t.length,n=0,r=e.length,o=t.length;t.charAt(n)===e.charAt(n)&&nn&&r>0;)o--,r--;return{start:n,end:o}}},function(e,t,i){var n=function(){var e={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(e,t,i,n,r,o,s){var a=o.length-1;switch(r){case 1:this.$=e.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(e);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=o[a-1];case 13:this.$={};break;case 14:this.$=o[a-1];break;case 15:this.$=[o[a-2],o[a]];break;case 16:this.$={},this.$[o[a][0]]=o[a][1];break;case 17:this.$=o[a-2],o[a-2][o[a][0]]=o[a][1];break;case 18:this.$=[];break;case 19:this.$=o[a-1];break;case 20:this.$=[o[a]];break;case 21:this.$=o[a-2],o[a-2].push(o[a])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=i.lexer.lex()||1,"number"!=typeof e&&(e=i.symbols_[e]||e),e}var i=this,n=[0],r=[null],o=[],s=this.table,a="",l=0,c=0,h=0,d=2;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;o.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,p,m,g,v,w,y,A,E,C={};;){if(m=n[n.length-1],this.defaultActions[m]?g=this.defaultActions[m]:(null==f&&(f=t()),g=s[m]&&s[m][f]),void 0===g||!g.length||!g[0]){if(!h){E=[];for(w in s[m])this.terminals_[w]&&w>2&&E.push("'"+this.terminals_[w]+"'");var b="";b=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+E.join(", ")+", got '"+this.terminals_[f]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(b,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:u,expected:E})}if(3==h){if(1==f)throw new Error(b||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,f=t()}for(;;){if(d.toString()in s[m])break;if(0==m)throw new Error(b||"Parsing halted.");!function(e){n.length=n.length-2*e,r.length=r.length-e,o.length=o.length-e}(1),m=n[n.length-1]}p=f,f=d,m=n[n.length-1],g=s[m]&&s[m][d],h=3}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:n.push(f),r.push(this.lexer.yytext),o.push(this.lexer.yylloc),n.push(g[1]),f=null,p?(f=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,h>0&&h--);break;case 2:if(y=this.productions_[g[1]][1],C.$=r[r.length-y],C._$={first_line:o[o.length-(y||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(y||1)].first_column,last_column:o[o.length-1].last_column},void 0!==(v=this.performAction.call(C,a,c,l,this.yy,g[1],r,o)))return v;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),o=o.slice(0,-1*y)),n.push(this.productions_[g[1]][0]),r.push(C.$),o.push(C._$),A=s[n[n.length-2]][n[n.length-1]],n.push(A);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},less:function(e){this._input=this.match.slice(e)+this._input},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;st[0].length)||(t=i,n=s,this.options.flex));s++);return t?(r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,i,n){switch(i){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},e.rules=[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt\/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],e.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}},e}();return e.lexer=t,e}();t.parser=n,t.parse=n.parse.bind(n)},function(e,t){"use strict";function i(e,t){var i=this;this.editor=e,this.timeout=void 0,this.delay=200,this.lastText=void 0,this.dom={},this.dom.container=t;var n=document.createElement("table");this.dom.table=n,n.className="jsoneditor-search",t.appendChild(n);var r=document.createElement("tbody");this.dom.tbody=r,n.appendChild(r);var o=document.createElement("tr");r.appendChild(o);var s=document.createElement("td");o.appendChild(s);var a=document.createElement("div");this.dom.results=a,a.className="jsoneditor-results",s.appendChild(a),s=document.createElement("td"),o.appendChild(s);var l=document.createElement("div");this.dom.input=l,l.className="jsoneditor-frame",l.title="Search fields and values",s.appendChild(l);var c=document.createElement("table");l.appendChild(c);var h=document.createElement("tbody");c.appendChild(h),o=document.createElement("tr"),h.appendChild(o);var d=document.createElement("button");d.type="button",d.className="jsoneditor-refresh",s=document.createElement("td"),s.appendChild(d),o.appendChild(s);var u=document.createElement("input");this.dom.search=u,u.oninput=function(e){i._onDelayedSearch(e)},u.onchange=function(e){i._onSearch()},u.onkeydown=function(e){i._onKeyDown(e)},u.onkeyup=function(e){i._onKeyUp(e)},d.onclick=function(e){u.select()},s=document.createElement("td"),s.appendChild(u),o.appendChild(s);var f=document.createElement("button");f.type="button",f.title="Next result (Enter)",f.className="jsoneditor-next",f.onclick=function(){i.next()},s=document.createElement("td"),s.appendChild(f),o.appendChild(s);var p=document.createElement("button");p.type="button",p.title="Previous result (Shift+Enter)",p.className="jsoneditor-previous",p.onclick=function(){i.previous()},s=document.createElement("td"),s.appendChild(p),o.appendChild(s)}i.prototype.next=function(e){if(void 0!=this.results){var t=void 0!=this.resultIndex?this.resultIndex+1:0;t>this.results.length-1&&(t=0),this._setActiveResult(t,e)}},i.prototype.previous=function(e){if(void 0!=this.results){var t=this.results.length-1,i=void 0!=this.resultIndex?this.resultIndex-1:t;i<0&&(i=t),this._setActiveResult(i,e)}},i.prototype._setActiveResult=function(e,t){if(this.activeResult){var i=this.activeResult.node;"field"==this.activeResult.elem?delete i.searchFieldActive:delete i.searchValueActive,i.updateDom()}if(!this.results||!this.results[e])return this.resultIndex=void 0,void(this.activeResult=void 0);this.resultIndex=e;var n=this.results[this.resultIndex].node,r=this.results[this.resultIndex].elem;"field"==r?n.searchFieldActive=!0:n.searchValueActive=!0,this.activeResult=this.results[this.resultIndex],n.updateDom(),n.scrollTo(function(){t&&n.focus(r)})},i.prototype._clearDelay=function(){void 0!=this.timeout&&(clearTimeout(this.timeout),delete this.timeout)},i.prototype._onDelayedSearch=function(e){this._clearDelay();var t=this;this.timeout=setTimeout(function(e){t._onSearch()},this.delay)},i.prototype._onSearch=function(e){this._clearDelay();var t=this.dom.search.value,i=t.length>0?t:void 0;if(i!=this.lastText||e)if(this.lastText=i,this.results=this.editor.search(i),this._setActiveResult(void 0),void 0!=i){var n=this.results.length;switch(n){case 0:this.dom.results.innerHTML="no results";break;case 1:this.dom.results.innerHTML="1 result";break;default:this.dom.results.innerHTML=n+" results"}}else this.dom.results.innerHTML=""},i.prototype._onKeyDown=function(e){var t=e.which;27==t?(this.dom.search.value="",this._onSearch(),e.preventDefault(),e.stopPropagation()):13==t&&(e.ctrlKey?this._onSearch(!0):e.shiftKey?this.previous():this.next(),e.preventDefault(),e.stopPropagation())},i.prototype._onKeyUp=function(e){var t=e.keyCode;27!=t&&13!=t&&this._onDelayedSearch(e)},i.prototype.clear=function(){this.dom.search.value="",this._onSearch()},i.prototype.destroy=function(){this.editor=null,this.dom.container.removeChild(this.dom.table),this.dom=null,this.results=null,this.activeResult=null,this._clearDelay()},e.exports=i},function(e,t,i){"use strict";function n(e,t){function i(e,t,r){r.forEach(function(r){if("separator"==r.type){var o=document.createElement("div");o.className="jsoneditor-separator",a=document.createElement("li"),a.appendChild(o),e.appendChild(a)}else{var s={},a=document.createElement("li");e.appendChild(a);var l=document.createElement("button");if(l.type="button",l.className=r.className,s.button=l,r.title&&(l.title=r.title),r.click&&(l.onclick=function(e){e.preventDefault(),n.hide(),r.click()}),a.appendChild(l),r.submenu){var c=document.createElement("div");c.className="jsoneditor-icon",l.appendChild(c),l.appendChild(document.createTextNode(r.text));var h;if(r.click){l.className+=" jsoneditor-default";var d=document.createElement("button");d.type="button",s.buttonExpand=d,d.className="jsoneditor-expand",d.innerHTML='
',a.appendChild(d),r.submenuTitle&&(d.title=r.submenuTitle),h=d}else{var u=document.createElement("div");u.className="jsoneditor-expand",l.appendChild(u),h=l}h.onclick=function(e){e.preventDefault(),n._onExpandItem(s),h.focus()};var f=[];s.subItems=f;var p=document.createElement("ul");s.ul=p,p.className="jsoneditor-menu",p.style.height="0",a.appendChild(p),i(p,f,r.submenu)}else l.innerHTML='
'+r.text;t.push(s)}})}this.dom={};var n=this,r=this.dom;this.anchor=void 0,this.items=e,this.eventListeners={},this.selection=void 0,this.onClose=t?t.close:void 0;var o=document.createElement("div");o.className="jsoneditor-contextmenu-root",r.root=o;var s=document.createElement("div");s.className="jsoneditor-contextmenu",r.menu=s,o.appendChild(s);var a=document.createElement("ul");a.className="jsoneditor-menu",s.appendChild(a),r.list=a,r.items=[];var l=document.createElement("button");l.type="button",r.focusButton=l;var c=document.createElement("li");c.style.overflow="hidden",c.style.height="0",c.appendChild(l),a.appendChild(c),i(a,this.dom.items,e),this.maxHeight=0,e.forEach(function(t){var i=24*(e.length+(t.submenu?t.submenu.length:0));n.maxHeight=Math.max(n.maxHeight,i)})}var r=i(5);n.prototype._getVisibleButtons=function(){var e=[],t=this;return this.dom.items.forEach(function(i){e.push(i.button),i.buttonExpand&&e.push(i.buttonExpand),i.subItems&&i==t.expandedItem&&i.subItems.forEach(function(t){e.push(t.button),t.buttonExpand&&e.push(t.buttonExpand)})}),e},n.visibleMenu=void 0,n.prototype.show=function(e,t){this.hide();var i=!0;if(t){var o=e.getBoundingClientRect(),s=t.getBoundingClientRect();o.bottom+this.maxHeights.top&&(i=!1)}if(i){var a=e.offsetHeight;this.dom.menu.style.left="0px",this.dom.menu.style.top=a+"px",this.dom.menu.style.bottom=""}else this.dom.menu.style.left="0px",this.dom.menu.style.top="",this.dom.menu.style.bottom="0px";var l=e.parentNode;l.insertBefore(this.dom.root,l.firstChild);var c=this,h=this.dom.list;this.eventListeners.mousedown=r.addEventListener(window,"mousedown",function(e){var t=e.target;t==h||c._isChildOf(t,h)||(c.hide(),e.stopPropagation(),e.preventDefault())}),this.eventListeners.keydown=r.addEventListener(window,"keydown",function(e){c._onKeyDown(e)}),this.selection=r.getSelection(),this.anchor=e,setTimeout(function(){c.dom.focusButton.focus()},0),n.visibleMenu&&n.visibleMenu.hide(),n.visibleMenu=this},n.prototype.hide=function(){this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose&&this.onClose());for(var e in this.eventListeners)if(this.eventListeners.hasOwnProperty(e)){var t=this.eventListeners[e];t&&r.removeEventListener(window,e,t),delete this.eventListeners[e]}n.visibleMenu==this&&(n.visibleMenu=void 0)},n.prototype._onExpandItem=function(e){var t=this,i=e==this.expandedItem,n=this.expandedItem;if(n&&(n.ul.style.height="0",n.ul.style.padding="",setTimeout(function(){t.expandedItem!=n&&(n.ul.style.display="",r.removeClassName(n.ul.parentNode,"jsoneditor-selected"))},300),this.expandedItem=void 0),!i){var o=e.ul;o.style.display="block";o.clientHeight;setTimeout(function(){t.expandedItem==e&&(o.style.height=24*o.childNodes.length+"px",o.style.padding="5px 10px")},0),r.addClassName(o.parentNode,"jsoneditor-selected"),this.expandedItem=e}},n.prototype._onKeyDown=function(e){var t,i,n,o,s=e.target,a=e.which,l=!1;27==a?(this.selection&&r.setSelection(this.selection),this.anchor&&this.anchor.focus(),this.hide(),l=!0):9==a?e.shiftKey?(t=this._getVisibleButtons(),0==(i=t.indexOf(s))&&(t[t.length-1].focus(),l=!0)):(t=this._getVisibleButtons(),(i=t.indexOf(s))==t.length-1&&(t[0].focus(),l=!0)):37==a?("jsoneditor-expand"==s.className&&(t=this._getVisibleButtons(),i=t.indexOf(s),(n=t[i-1])&&n.focus()),l=!0):38==a?(t=this._getVisibleButtons(),i=t.indexOf(s),n=t[i-1],n&&"jsoneditor-expand"==n.className&&(n=t[i-2]),n||(n=t[t.length-1]),n&&n.focus(),l=!0):39==a?(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&o.focus(),l=!0):40==a&&(t=this._getVisibleButtons(),i=t.indexOf(s),o=t[i+1],o&&"jsoneditor-expand"==o.className&&(o=t[i+2]),o||(o=t[0]),o&&(o.focus(),l=!0),l=!0),l&&(e.stopPropagation(),e.preventDefault())},n.prototype._isChildOf=function(e,t){for(var i=e.parentNode;i;){if(i==t)return!0;i=i.parentNode}return!1},e.exports=n},function(e,t,i){"use strict";function n(e,t){this.editor=e,this.dom={},this.expanded=!1,t&&t instanceof Object?(this.setField(t.field,t.fieldEditable),this.setValue(t.value,t.type)):(this.setField(""),this.setValue(null)),this._debouncedOnChangeValue=a.debounce(this._onChangeValue.bind(this),n.prototype.DEBOUNCE_INTERVAL),this._debouncedOnChangeField=a.debounce(this._onChangeField.bind(this),n.prototype.DEBOUNCE_INTERVAL)}var r=i(10),o=i(8),s=i(11),a=i(5);n.prototype.DEBOUNCE_INTERVAL=150,n.prototype._updateEditability=function(){if(this.editable={field:!0,value:!0},this.editor&&(this.editable.field="tree"===this.editor.options.mode,this.editable.value="view"!==this.editor.options.mode,("tree"===this.editor.options.mode||"form"===this.editor.options.mode)&&"function"==typeof this.editor.options.onEditable)){var e=this.editor.options.onEditable({field:this.field,value:this.value,path:this.getPath()});"boolean"==typeof e?(this.editable.field=e,this.editable.value=e):("boolean"==typeof e.field&&(this.editable.field=e.field),"boolean"==typeof e.value&&(this.editable.value=e.value))}},n.prototype.getPath=function(){for(var e=this,t=[];e;){var i=e.parent?"array"!=e.parent.type?e.field:e.index:void 0;void 0!==i&&t.unshift(i),e=e.parent}return t},n.prototype.findNode=function(e){for(var t=a.parsePath(e),i=this;i&&t.length>0;){var n=t.shift();if("number"==typeof n){if("array"!==i.type)throw new Error("Cannot get child node at index "+n+": node is no array");i=i.childs[n]}else{if("object"!==i.type)throw new Error("Cannot get child node "+n+": node is no object");i=i.childs.filter(function(e){return e.field===n})[0]}}return i},n.prototype.findParents=function(){for(var e=[],t=this.parent;t;)e.unshift(t),t=t.parent;return e},n.prototype.setError=function(e,t){this.getDom(),this.error=e;var i=this.dom.tdError;if(e){i||(i=document.createElement("td"),this.dom.tdError=i,this.dom.tdValue.parentNode.appendChild(i));var n=document.createElement("div");n.className="jsoneditor-popover jsoneditor-right",n.appendChild(document.createTextNode(e.message));var r=document.createElement("button");for(r.type="button",r.className="jsoneditor-schema-error",r.appendChild(n),r.onmouseover=r.onfocus=function(){for(var e=["right","above","below","left"],t=0;t0&&(e=this.childs.filter(function(e){return-1!==i.indexOf(e.field)}).map(function(e){return{node:e,error:{message:'duplicate key "'+e.field+'"'}}}))}if(this.childs)for(var n=0;n0&&(e=e.concat(o))}return e},n.prototype.clearDom=function(){this.dom={}},n.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;if(this._updateEditability(),e.tr=document.createElement("tr"),e.tr.node=this,"tree"===this.editor.options.mode){var t=document.createElement("td");if(this.editable.field&&this.parent){var i=document.createElement("button");i.type="button",e.drag=i,i.className="jsoneditor-dragarea",i.title="Drag to move this field (Alt+Shift+Arrows)",t.appendChild(i)}e.tr.appendChild(t);var n=document.createElement("td"),r=document.createElement("button");r.type="button",e.menu=r,r.className="jsoneditor-contextmenu",r.title="Click to open the actions menu (Ctrl+M)",n.appendChild(e.menu),e.tr.appendChild(n)}var o=document.createElement("td");return e.tr.appendChild(o),e.tree=this._createDomTree(),o.appendChild(e.tree),this.updateDom({updateIndexes:!0}),e.tr},n.onDragStart=function(e,t){if(!Array.isArray(e))return n.onDragStart([e],t);if(0!==e.length){var i=e[0],r=e[e.length-1],o=n.getNodeFromTarget(t.target),s=r._nextSibling(),l=i.editor,c=a.getAbsoluteTop(o.dom.tr)-a.getAbsoluteTop(i.dom.tr);l.mousemove||(l.mousemove=a.addEventListener(window,"mousemove",function(t){n.onDrag(e,t)})),l.mouseup||(l.mouseup=a.addEventListener(window,"mouseup",function(t){n.onDragEnd(e,t)})),l.highlighter.lock(),l.drag={oldCursor:document.body.style.cursor,oldSelection:l.getSelection(),oldBeforeNode:s,mouseX:t.pageX,offsetY:c,level:i.getLevel()},document.body.style.cursor="move",t.preventDefault()}},n.onDrag=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i,r,o,s,c,h,d,u,f,p,m,g,v,w,y=e[0].editor,A=t.pageY-y.drag.offsetY,E=t.pageX,C=!1,b=e[0];if(i=b.dom.tr,f=a.getAbsoluteTop(i),g=i.offsetHeight,Ap+g&&(d=void 0)),d&&(e.forEach(function(e){d.parent.moveBefore(e,d)}),C=!0)}else{var F=e[e.length-1];if(c=F.expanded&&F.append?F.append.getDom():F.dom.tr,s=c?c.nextSibling:void 0){m=a.getAbsoluteTop(s),o=s;do{u=n.getNodeFromTarget(o),o&&(v=o.nextSibling?a.getAbsoluteTop(o.nextSibling):0,w=o?v-m:0,u.parent.childs.length==e.length&&u.parent.childs[e.length-1]==F&&(f+=27)),o=o.nextSibling}while(o&&A>f+w);if(u&&u.parent){var x=E-y.drag.mouseX,S=Math.round(x/24/2),$=y.drag.level+S,D=u.getLevel();for(r=u.dom.tr.previousSibling;D<$&&r;){d=n.getNodeFromTarget(r);if(e.some(function(e){return e===d||d._isChildOf(e)}));else{if(!(d instanceof l))break;var k=d.parent.childs;if(k.length==e.length&&k[e.length-1]==F)break;u=n.getNodeFromTarget(r),D=u.getLevel()}r=r.previousSibling}c.nextSibling!=u.dom.tr&&(e.forEach(function(e){u.parent.moveBefore(e,u)}),C=!0)}}}C&&(y.drag.mouseX=E,y.drag.level=b.getLevel()),y.startAutoScroll(A),t.preventDefault()}},n.onDragEnd=function(e,t){if(!Array.isArray(e))return n.onDrag([e],t);if(0!==e.length){var i=e[0],r=i.editor,o=i.parent,s=o.childs.indexOf(i),l=o.childs[s+e.length]||o.append;e[0]&&e[0].dom.menu.focus();var c={nodes:e,oldSelection:r.drag.oldSelection,newSelection:r.getSelection(),oldBeforeNode:r.drag.oldBeforeNode,newBeforeNode:l};c.oldBeforeNode!=c.newBeforeNode&&r._onAction("moveNodes",c),document.body.style.cursor=r.drag.oldCursor,r.highlighter.unlock(),e.forEach(function(e){t.target!==e.dom.drag&&t.target!==e.dom.menu&&r.highlighter.unhighlight()}),delete r.drag,r.mousemove&&(a.removeEventListener(window,"mousemove",r.mousemove),delete r.mousemove),r.mouseup&&(a.removeEventListener(window,"mouseup",r.mouseup),delete r.mouseup),r.stopAutoScroll(),t.preventDefault()}},n.prototype._isChildOf=function(e){for(var t=this.parent;t;){if(t==e)return!0;t=t.parent}return!1},n.prototype._createDomField=function(){return document.createElement("div")},n.prototype.setHighlight=function(e){this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-highlight"):a.removeClassName(this.dom.tr,"jsoneditor-highlight"),this.append&&this.append.setHighlight(e),this.childs&&this.childs.forEach(function(t){t.setHighlight(e)}))},n.prototype.setSelected=function(e,t){this.selected=e,this.dom.tr&&(e?a.addClassName(this.dom.tr,"jsoneditor-selected"):a.removeClassName(this.dom.tr,"jsoneditor-selected"),t?a.addClassName(this.dom.tr,"jsoneditor-first"):a.removeClassName(this.dom.tr,"jsoneditor-first"),this.append&&this.append.setSelected(e),this.childs&&this.childs.forEach(function(t){t.setSelected(e)}))},n.prototype.updateValue=function(e){this.value=e,this.updateDom()},n.prototype.updateField=function(e){this.field=e,this.updateDom()},n.prototype.updateDom=function(e){var t=this.dom.tree;t&&(t.style.marginLeft=24*this.getLevel()+"px");var i=this.dom.field;if(i){this.fieldEditable?(i.contentEditable=this.editable.field,i.spellcheck=!1,i.className="jsoneditor-field"):i.className="jsoneditor-readonly";var n;n=void 0!=this.index?this.index:void 0!=this.field?this.field:this._hasChilds()?this.type:"",i.innerHTML=this._escapeHTML(n),this._updateSchema()}var r=this.dom.value;if(r){var o=this.childs?this.childs.length:0;"array"==this.type?(r.innerHTML="["+o+"]",a.addClassName(this.dom.tr,"jsoneditor-expandable")):"object"==this.type?(r.innerHTML="{"+o+"}",a.addClassName(this.dom.tr,"jsoneditor-expandable")):(r.innerHTML=this._escapeHTML(this.value),a.removeClassName(this.dom.tr,"jsoneditor-expandable"))}this._updateDomField(),this._updateDomValue(),e&&!0===e.updateIndexes&&this._updateDomIndexes(),e&&!0===e.recurse&&this.childs&&this.childs.forEach(function(t){t.updateDom(e)}),this.append&&this.append.updateDom()},n.prototype._updateSchema=function(){this.editor&&this.editor.options&&(this.schema=n._findSchema(this.editor.options.schema,this.getPath()),this.schema?this.enum=n._findEnum(this.schema):delete this.enum)},n._findEnum=function(e){if(e.enum)return e.enum;var t=e.oneOf||e.anyOf||e.allOf;if(t){var i=t.filter(function(e){return e.enum});if(i.length>0)return i[0].enum}return null},n._findSchema=function(e,t){for(var i=e,n=0;n0?this.editor.multiselection.nodes:[this],A=y[0],E=y[y.length-1];if(13==u){if(f==this.dom.value)this.editable.value&&!e.ctrlKey||a.isUrl(this.value)&&(window.open(this.value,"_blank"),v=!0);else if(f==this.dom.expand){var C=this._hasChilds();if(C){var b=e.ctrlKey;this._onExpand(b),f.focus(),v=!0}}}else if(68==u)p&&w&&(n.onDuplicate(y),v=!0);else if(69==u)p&&(this._onExpand(m),f.focus(),v=!0);else if(77==u&&w)p&&(this.showContextMenu(f),v=!0);else if(46==u&&w)p&&(n.onRemove(y), +v=!0);else if(45==u&&w)p&&!m?(this._onInsertBefore(),v=!0):p&&m&&(this._onInsertAfter(),v=!0);else if(35==u){if(g){var F=this._lastNode();F&&F.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(36==u){if(g){var x=this._firstNode();x&&x.focus(n.focusElement||this._getElementName(f)),v=!0}}else if(37==u){if(g&&!m){var S=this._previousElement(f);S&&this.focus(this._getElementName(S)),v=!0}else if(g&&m&&w){if(E.expanded){var $=E.getAppend();r=$?$.nextSibling:void 0}else{var D=E.getDom();r=D.nextSibling}r&&(i=n.getNodeFromTarget(r),o=r.nextSibling,_=n.getNodeFromTarget(o),i&&i instanceof l&&1!=E.parent.childs.length&&_&&_.parent&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})))}}else if(38==u)g&&!m?(t=this._previousNode(),t&&(this.editor.deselect(!0),t.focus(n.focusElement||this._getElementName(f))),v=!0):!g&&p&&m&&w?(t=this._previousNode(),t&&(d=this.editor.multiselection,d.start=d.start||this,d.end=t,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),t.focus("field")),v=!0):g&&m&&w&&(t=A._previousNode(),t&&t.parent&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0);else if(39==u){if(g&&!m){var k=this._nextElement(f);k&&this.focus(this._getElementName(k)),v=!0}else if(g&&m&&w){D=A.getDom();var B=D.previousSibling;B&&(t=n.getNodeFromTarget(B))&&t.parent&&t instanceof l&&!t.isVisible()&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){t.parent.moveBefore(e,t)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:t,oldSelection:s,newSelection:this.editor.getSelection()}))}}else if(40==u)if(g&&!m)i=this._nextNode(),i&&(this.editor.deselect(!0),i.focus(n.focusElement||this._getElementName(f))),v=!0;else if(!g&&p&&m&&w)i=this._nextNode(),i&&(d=this.editor.multiselection,d.start=d.start||this,d.end=i,h=this.editor._findTopLevelNodes(d.start,d.end),this.editor.select(h),i.focus("field")),v=!0;else if(g&&m&&w){i=E.expanded?E.append?E.append._nextNode():void 0:E._nextNode();var _=i&&(i._nextNode()||i.parent.append);_&&_.parent&&(s=this.editor.getSelection(),c=E._nextSibling(),y.forEach(function(e){_.parent.moveBefore(e,_)}),this.focus(n.focusElement||this._getElementName(f)),this.editor._onAction("moveNodes",{nodes:y,oldBeforeNode:c,newBeforeNode:_,oldSelection:s,newSelection:this.editor.getSelection()})),v=!0}v&&(e.preventDefault(),e.stopPropagation())},n.prototype._onExpand=function(e){if(e){var t=this.dom.tr.parentNode,i=t.parentNode,n=i.scrollTop;i.removeChild(t)}this.expanded?this.collapse(e):this.expand(e),e&&(i.appendChild(t),i.scrollTop=n)},n.onRemove=function(e){if(!Array.isArray(e))return n.onRemove([e]);if(e&&e.length>0){var t=e[0],i=t.parent,r=t.editor,o=t.getIndex();r.highlighter.unhighlight();var s=r.getSelection();n.blurNodes(e);var a=r.getSelection();e.forEach(function(e){e.parent._remove(e)}),r._onAction("removeNodes",{nodes:e.slice(0),parent:i,index:o,oldSelection:s,newSelection:a})}},n.onDuplicate=function(e){if(!Array.isArray(e))return n.onDuplicate([e]);if(e&&e.length>0){var t=e[e.length-1],i=t.parent,r=t.editor;r.deselect(r.multiselection.nodes);var o=r.getSelection(),s=t,a=e.map(function(e){var t=e.clone();return i.insertAfter(t,s),s=t,t});1===e.length?a[0].focus():r.select(a);var l=r.getSelection();r._onAction("duplicateNodes",{afterNode:t,nodes:a,parent:i,oldSelection:o,newSelection:l})}},n.prototype._onInsertBefore=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertBefore(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertBeforeNodes",{nodes:[o],beforeNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onInsertAfter=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.insertAfter(o,this),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("insertAfterNodes",{nodes:[o],afterNode:this,parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onAppend=function(e,t,i){var r=this.editor.getSelection(),o=new n(this.editor,{field:void 0!=e?e:"",value:void 0!=t?t:"",type:i});o.expand(!0),this.parent.appendChild(o),this.editor.highlighter.unhighlight(),o.focus("field");var s=this.editor.getSelection();this.editor._onAction("appendNodes",{nodes:[o],parent:this.parent,oldSelection:r,newSelection:s})},n.prototype._onChangeType=function(e){var t=this.type;if(e!=t){var i=this.editor.getSelection();this.changeType(e);var n=this.editor.getSelection();this.editor._onAction("changeType",{node:this,oldType:t,newType:e,oldSelection:i,newSelection:n})}},n.prototype.sort=function(e){if(this._hasChilds()){var t="desc"==e?-1:1,i="array"==this.type?"value":"field";this.hideChilds();var n=this.childs,o=this.sortOrder;this.childs=this.childs.concat(),this.childs.sort(function(e,n){return t*r(e[i],n[i])}),this.sortOrder=1==t?"asc":"desc",this.editor._onAction("sort",{node:this,oldChilds:n,oldSort:o,newChilds:this.childs,newSort:this.sortOrder}),this.showChilds()}},n.prototype.getAppend=function(){return this.append||(this.append=new l(this.editor),this.append.setParent(this)),this.append.getDom()},n.getNodeFromTarget=function(e){for(;e;){if(e.node)return e.node;e=e.parentNode}},n.blurNodes=function(e){if(!Array.isArray(e))return void n.blurNodes([e]);var t=e[0],i=t.parent,r=t.getIndex();i.childs[r+e.length]?i.childs[r+e.length].focus():i.childs[r-1]?i.childs[r-1].focus():i.focus()},n.prototype._nextSibling=function(){var e=this.parent.childs.indexOf(this);return this.parent.childs[e+1]||this.parent.append},n.prototype._previousNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.previousSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._nextNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t;do{i=i.nextSibling,e=n.getNodeFromTarget(i)}while(i&&e instanceof l&&!e.isVisible())}return e},n.prototype._firstNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.firstChild;e=n.getNodeFromTarget(i)}return e},n.prototype._lastNode=function(){var e=null,t=this.getDom();if(t&&t.parentNode){var i=t.parentNode.lastChild;for(e=n.getNodeFromTarget(i);i&&e instanceof l&&!e.isVisible();)i=i.previousSibling,e=n.getNodeFromTarget(i)}return e},n.prototype._previousElement=function(e){var t=this.dom;switch(e){case t.value:if(this.fieldEditable)return t.field;case t.field:if(this._hasChilds())return t.expand;case t.expand:return t.menu;case t.menu:if(t.drag)return t.drag;default:return null}},n.prototype._nextElement=function(e){var t=this.dom;switch(e){case t.drag:return t.menu;case t.menu:if(this._hasChilds())return t.expand;case t.expand:if(this.fieldEditable)return t.field;case t.field:if(!this._hasChilds())return t.value;default:return null}},n.prototype._getElementName=function(e){var t=this.dom;for(var i in t)if(t.hasOwnProperty(i)&&t[i]==e)return i;return null},n.prototype._hasChilds=function(){return"array"==this.type||"object"==this.type},n.TYPE_TITLES={auto:'Field type "auto". The field type is automatically determined from the value and can be a string, number, boolean, or null.',object:'Field type "object". An object contains an unordered set of key/value pairs.',array:'Field type "array". An array contains an ordered collection of values.',string:'Field type "string". Field type is not determined from the value, but always returned as string.'},n.prototype.showContextMenu=function(e,t){var i=this,r=n.TYPE_TITLES,s=[];if(this.editable.value&&s.push({text:"Type",title:"Change the type of this field",className:"jsoneditor-type-"+this.type,submenu:[{text:"Auto",className:"jsoneditor-type-auto"+("auto"==this.type?" jsoneditor-selected":""),title:r.auto,click:function(){i._onChangeType("auto")}},{text:"Array",className:"jsoneditor-type-array"+("array"==this.type?" jsoneditor-selected":""),title:r.array,click:function(){i._onChangeType("array")}},{text:"Object",className:"jsoneditor-type-object"+("object"==this.type?" jsoneditor-selected":""),title:r.object,click:function(){i._onChangeType("object")}},{text:"String",className:"jsoneditor-type-string"+("string"==this.type?" jsoneditor-selected":""),title:r.string,click:function(){i._onChangeType("string")}}]}),this._hasChilds()){var a="asc"==this.sortOrder?"desc":"asc";s.push({text:"Sort",title:"Sort the childs of this "+this.type,className:"jsoneditor-sort-"+a,click:function(){i.sort(a)},submenu:[{text:"Ascending",className:"jsoneditor-sort-asc",title:"Sort the childs of this "+this.type+" in ascending order",click:function(){i.sort("asc")}},{text:"Descending",className:"jsoneditor-sort-desc",title:"Sort the childs of this "+this.type+" in descending order",click:function(){i.sort("desc")}}]})}if(this.parent&&this.parent._hasChilds()){s.length&&s.push({type:"separator"});var l=i.parent.childs;i==l[l.length-1]&&s.push({text:"Append",title:"Append a new field with type 'auto' after this field (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-append",click:function(){i._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onAppend("","","string")}}]}),s.push({text:"Insert",title:"Insert a new field with type 'auto' before this field (Ctrl+Ins)",submenuTitle:"Select the type of the field to be inserted",className:"jsoneditor-insert",click:function(){i._onInsertBefore("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){i._onInsertBefore("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){i._onInsertBefore("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){i._onInsertBefore("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){i._onInsertBefore("","","string")}}]}),this.editable.field&&(s.push({text:"Duplicate",title:"Duplicate this field (Ctrl+D)",className:"jsoneditor-duplicate",click:function(){n.onDuplicate(i)}}),s.push({text:"Remove",title:"Remove this field (Ctrl+Del)",className:"jsoneditor-remove",click:function(){n.onRemove(i)}}))}new o(s,{close:t}).show(e,this.editor.content)},n.prototype._getType=function(e){return e instanceof Array?"array":e instanceof Object?"object":"string"==typeof e&&"string"!=typeof this._stringCast(e)?"string":"auto"},n.prototype._stringCast=function(e){var t=e.toLowerCase(),i=Number(e),n=parseFloat(e);return""==e?"":"null"==t?null:"true"==t||"false"!=t&&(isNaN(i)||isNaN(n)?e:i)},n.prototype._escapeHTML=function(e){if("string"!=typeof e)return String(e);var t=String(e).replace(/&/g,"&").replace(//g,">").replace(/ /g,"  ").replace(/^ /," ").replace(/ $/," "),i=JSON.stringify(t),n=i.substring(1,i.length-1);return!0===this.editor.options.escapeUnicode&&(n=a.escapeUnicodeChars(n)),n},n.prototype._unescapeHTML=function(e){var t='"'+this._escapeJSON(e)+'"';return a.parse(t).replace(/</g,"<").replace(/>/g,">").replace(/ |\u00A0/g," ").replace(/&/g,"&")},n.prototype._escapeJSON=function(e){for(var t="",i=0;im)return 1}for(var g=0,v=Math.max(u.length,f.length);gr)return 1}return 0}},function(e,t,i){"use strict";function n(e){function t(e){this.editor=e,this.dom={}}return t.prototype=new e,t.prototype.getDom=function(){var e=this.dom;if(e.tr)return e.tr;this._updateEditability();var t=document.createElement("tr");if(t.node=this,e.tr=t,"tree"===this.editor.options.mode){e.tdDrag=document.createElement("td");var i=document.createElement("td");e.tdMenu=i;var n=document.createElement("button");n.type="button",n.className="jsoneditor-contextmenu",n.title="Click to open the actions menu (Ctrl+M)",e.menu=n,i.appendChild(e.menu)}var r=document.createElement("td"),o=document.createElement("div");return o.innerHTML="(empty)",o.className="jsoneditor-readonly",r.appendChild(o),e.td=r,e.text=o,this.updateDom(),t},t.prototype.updateDom=function(){var e=this.dom,t=e.td;t&&(t.style.paddingLeft=24*this.getLevel()+26+"px");var i=e.text;i&&(i.innerHTML="(empty "+this.parent.type+")");var n=e.tr;this.isVisible()?e.tr.firstChild||(e.tdDrag&&n.appendChild(e.tdDrag),e.tdMenu&&n.appendChild(e.tdMenu),n.appendChild(t)):e.tr.firstChild&&(e.tdDrag&&n.removeChild(e.tdDrag),e.tdMenu&&n.removeChild(e.tdMenu),n.removeChild(t))},t.prototype.isVisible=function(){return 0==this.parent.childs.length},t.prototype.showContextMenu=function(t,i){var n=this,r=e.TYPE_TITLES,s=[{text:"Append",title:"Append a new field with type 'auto' (Ctrl+Shift+Ins)",submenuTitle:"Select the type of the field to be appended",className:"jsoneditor-insert",click:function(){n._onAppend("","","auto")},submenu:[{text:"Auto",className:"jsoneditor-type-auto",title:r.auto,click:function(){n._onAppend("","","auto")}},{text:"Array",className:"jsoneditor-type-array",title:r.array,click:function(){n._onAppend("",[])}},{text:"Object",className:"jsoneditor-type-object",title:r.object,click:function(){n._onAppend("",{})}},{text:"String",className:"jsoneditor-type-string",title:r.string,click:function(){n._onAppend("","","string")}}]}];new o(s,{close:i}).show(t,this.editor.content)},t.prototype.onEvent=function(e){var t=e.type,i=e.target||e.srcElement,n=this.dom;if(i==n.menu&&("mouseover"==t?this.editor.highlighter.highlight(this.parent):"mouseout"==t&&this.editor.highlighter.unhighlight()),"click"==t&&i==n.menu){var o=this.editor.highlighter;o.highlight(this.parent),o.lock(),r.addClassName(n.menu,"jsoneditor-selected"),this.showContextMenu(n.menu,function(){r.removeClassName(n.menu,"jsoneditor-selected"),o.unlock(),o.unhighlight()})}"keydown"==t&&this.onKeyDown(e)},t}var r=i(5),o=i(8);e.exports=n},function(e,t,i){"use strict";function n(e,t,i,n){for(var o={code:{text:"Code",title:"Switch to code highlighter",click:function(){n("code")}},form:{text:"Form",title:"Switch to form editor",click:function(){n("form")}},text:{text:"Text",title:"Switch to plain text editor",click:function(){n("text")}},tree:{text:"Tree",title:"Switch to tree editor",click:function(){n("tree")}},view:{text:"View",title:"Switch to tree view",click:function(){n("view")}}},s=[],a=0;a0){if(i.length>3){i=i.slice(0,3);var n=this.validateSchema.errors.length-3;i.push("("+n+" more errors...)")}var r=document.createElement("div");r.innerHTML=''+i.map(function(e){return''+("string"==typeof e?'":"")+""}).join("")+"
'+e+"
"+e.dataPath+""+e.message+"
",this.dom.validationErrors=r,this.frame.appendChild(r);var s=r.clientHeight;this.content.style.marginBottom=-s+"px",this.content.style.paddingBottom=s+"px"}if(this.aceEditor){this.aceEditor.resize(!1)}},e.exports=[{mode:"text",mixin:s,data:"text",load:s.format},{mode:"code",mixin:s,data:"text",load:s.format}]},function(e,t,i){var n;if(window.ace)n=window.ace;else try{n=i(15),i(18),i(20)}catch(e){}e.exports=n},function(e,t,i){!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){if("string"!=typeof e)return void(t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace()));2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var r=o(e,t);if(void 0!=r)return i&&i(),r}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a1&&r(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function r(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(e){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=p.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(p.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(p.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var s,a,l,c,h,d=Function.prototype.call,u=Array.prototype,f=Object.prototype,p=u.slice,m=d.bind(f.toString),g=d.bind(f.hasOwnProperty);if((h=g(f,"__defineGetter__"))&&(s=d.bind(f.__defineGetter__),a=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),c=d.bind(f.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(p.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(d=c;d--;)this[l+d]=this[a+d];if(o&&e===h)this.length=h,this.push.apply(this,r);else for(this.length=h+o,d=0;d>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=y&&"[object String]"==m(this)?this.split(""):_(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:f)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(g(e,t)){var i,n,r;if(i={enumerable:!0,configurable:!0},h){var o=e.__proto__;e.__proto__=f;var n=l(e,t),r=c(e,t);if(e.__proto__=o,n||r)return n&&(i.get=n),r&&(i.set=r),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var A;A=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=A();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var E=r({}),C="undefined"==typeof document||r(document.createElement("div"));if(!E||!C)var b=Object.defineProperty}if(!Object.defineProperty||b){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(b)try{return b.call(Object,e,t,i)}catch(e){}if(g(i,"value"))if(h&&(l(e,t)||c(e,t))){var n=e.__proto__;e.__proto__=f,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!h)throw new TypeError("getters & setters can not be defined on this javascript engine");g(i,"get")&&s(e,t,i.get),g(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)g(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(e){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";g(e,t);)t+="?";e[t]=!0;var i=g(e,t);return delete e[t],i}),!Object.keys){var F=!0,x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],S=x.length;for(var $ in{toString:null})F=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)g(e,i)&&t.push(i);if(F)for(var n=0,r=S;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isTouchPad=r.indexOf("TouchPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=c(t);if(!s.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var r="location"in t?t.location:t.keyLocation;if(17===i&&1===r)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===r){var h=t.timeStamp-l;h<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var r="location"in t?t.location:t.keyLocation;if(3===r&&(e(t,n,-i),t.defaultPrevented))return}if(s.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function r(){a=Object.create(null)}var o=e("./keys"),s=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||s.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){if("ontouchmove"in e){var n,r;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];n=t.clientX,r=t.clientY}),t.addListener(e,"touchmove",function(e){var t=e.changedTouches[0];e.wheelX=-(t.clientX-n)/1,e.wheelY=-(t.clientY-r)/1,n=t.clientX,r=t.clientY,i(e)})}},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,r){function o(e){if(0!==t.getButton(e)?d=0:e.detail>1?++d>4&&(d=1):d=1,s.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-c)>5;h&&!o||(d=1),h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),1==d&&(l=e.clientX,c=e.clientY)}if(e._clicks=d,n[r]("mousedown",e),d>4)d=0;else if(d>1)return n[r](u[d],e)}function a(e){d=2,h&&clearTimeout(h),h=setTimeout(function(){h=null},i[d-1]||600),n[r]("mousedown",e),n[r](u[d],e)}var l,c,h,d=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),s.isOldIE&&t.addListener(e,"dblclick",a)})};var c=!s.isMac||!s.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};if(t.getModifierString=function(e){return o.KEY_MODS[c(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(s.isOldGecko||s.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var c=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return c=e.defaultPrevented,t}),o(e,"keypress",function(e){c&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),c=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(r(),o(window,"focus",r))}},"object"==typeof window&&window.postMessage&&!s.isOldIE){t.nextTick=function(e,i){i=i||window;t.addListener(i,"message",function n(r){"zero-timeout-message-1"==r.data&&(t.stopPropagation(r),t.removeListener(i,"message",n),e())}),i.postMessage("zero-timeout-message-1","*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,i){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};t.stringTrimLeft=function(e){return e.replace(/^\s\s*/,"")},t.stringTrimRight=function(e){return e.replace(/\s\s*$/,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;i=53&&B()}},I=s.delayedCall(O,50);n.addListener(d,"compositionstart",M),r.isGecko?n.addListener(d,"text",function(){I.schedule()}):(n.addListener(d,"keyup",function(){I.schedule()}),n.addListener(d,"keydown",function(){I.schedule()})),n.addListener(d,"compositionend",j),this.getElement=function(){return d},this.setReadOnly=function(e){d.readOnly=e},this.onContextMenu=function(e){D=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){if(i||!r.isOldIE){g||(g=d.style.cssText),d.style.cssText=(i?"z-index:100000;":"")+"height:"+d.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=s.top+(parseInt(a.borderTopWidth)||0),c=s.left+(parseInt(s.borderLeftWidth)||0),u=s.bottom-l-d.clientHeight-2,f=function(e){d.style.left=e.clientX-c-2+"px",d.style.top=Math.min(e.clientY-l-2,u)+"px"};f(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(N),r.isWin&&!r.isOldIE&&n.capture(t.container,f,h))}},this.onContextMenuClose=h;var N,W=function(e){t.textInput.onContextMenu(e),h()};n.addListener(d,"mouseup",W),n.addListener(d,"mousedown",function(e){e.preventDefault(),h()}),n.addListener(t.renderer.scroller,"contextmenu",W),n.addListener(d,"contextmenu",W)};t.TextInput=c}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}e("../lib/dom"),e("../lib/event"),e("../lib/useragent");(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,r=e.getButton();if(0!==r){var o=n.getSelectionRange(),s=o.isEmpty();return n.$blockScrolling++,(s||1==r)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==r&&n.textInput.onContextMenu(e.domEvent))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,r=n.getBracketRange(t);r?(r.isEmpty()&&(r.start.column--,r.end.column++),this.setState("select")):(r=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=r,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor;return n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed)||i<200?(this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,i=t-(this.$lastScrollTime||0),n=this.editor;if(n.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed)||i<200)return this.$lastScrollTime=t,n.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(n.prototype),t.DefaultHandlers=n}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=(e("./lib/oop"),e("./lib/dom"));(function(){this.$init=function(){return this.$element=r.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){r.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){r.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(n.prototype),t.Tooltip=n}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,i){"use strict";function n(e){function t(){var t=d.getDocumentPosition().row,r=l.$annotations[t];if(!r)return i();if(t==s.session.getLength()){var o=s.renderer.pixelToScreenCoordinates(0,d.y).row,a=d.$pos;if(o>s.session.documentToScreenRow(a.row,a.column))return i()}if(u!=r)if(u=r.text.join("
"),c.setHtml(u),c.show(),s._signal("showGutterTooltip",c),s.on("mousewheel",i),e.$tooltipFollowsMouse)n(d);else{var h=d.domEvent.target,f=h.getBoundingClientRect(),p=c.getElement().style;p.left=f.right+"px",p.top=f.bottom+"px"}}function i(){h&&(h=clearTimeout(h)),u&&(c.hide(),u=null,s._signal("hideGutterTooltip",c),s.removeEventListener("mousewheel",i))}function n(e){c.setPosition(e.x,e.y)}var s=e.editor,l=s.renderer.$gutterLayer,c=new r(s.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(s.isFocused()&&0==t.getButton()){if("foldWidgets"!=l.getRegion(t)){var i=t.getDocumentPosition().row,n=s.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return s.selectAll(),t.preventDefault();e.$clickSelection=s.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var h,d,u;e.editor.setDefaultHandler("guttermousemove",function(r){var s=r.domEvent.target||r.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();u&&e.$tooltipFollowsMouse&&n(r),d=r,h||(h=setTimeout(function(){h=null,d&&!e.isMousePressed?t():i()},50))}),a.addListener(s.renderer.$gutter,"mouseout",function(e){d=null,u&&!h&&(h=setTimeout(function(){h=null,i()},50))}),s.on("changeSession",i)}function r(e){l.call(this,e)}var o=e("../lib/dom"),s=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;s.inherits(r,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+r>i&&(e-=e+r-i),t+o>n&&(t-=20+o), +l.prototype.setPosition.call(this,e,t)}}.call(r.prototype),t.GutterHandler=n}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!$||n||o)g.$blockScrolling+=1,g.moveCursorToPosition(e),g.$blockScrolling-=1,$=i,D={x:y,y:A};else{r(D.x,D.y,y,A)>h?$=null:i-$>=c&&(g.renderer.scrollCursorIntoView(),$=null)}}function i(e,t){var i=Date.now(),n=g.renderer.layerConfig.lineHeight,r=g.renderer.layerConfig.characterWidth,o=g.renderer.scroller.getBoundingClientRect(),s={x:{left:y-o.left,right:o.right-y},y:{top:A-o.top,bottom:o.bottom-A}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};a/r<=2&&(h.column+=s.x.left=l&&g.renderer.scrollCursorIntoView(h):S=i:S=null}function n(){var e=b;b=g.renderer.screenToTextCoordinates(y,A),t(b,e),i(b,e)}function d(){C=g.selection.toOrientedRange(),w=g.session.addMarker(C,"ace_selection",g.getSelectionStyle()),g.clearSelection(),g.isFocused()&&g.renderer.$cursorLayer.setBlinking(!1),clearInterval(E),n(),E=setInterval(n,20),B=0,s.addListener(document,"mousemove",f)}function u(){clearInterval(E),g.session.removeMarker(w),w=null,g.$blockScrolling+=1,g.selection.fromOrientedRange(C),g.$blockScrolling-=1,g.isFocused()&&!x&&g.renderer.$cursorLayer.setBlinking(!g.getReadOnly()),C=null,b=null,B=0,S=null,$=null,s.removeListener(document,"mousemove",f)}function f(){null==_&&(_=setTimeout(function(){null!=_&&w&&u()},20))}function p(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,r="uninitialized";try{r=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(r)>=0?o="copy":i.indexOf(r)>=0?o="move":t.indexOf(r)>=0&&(o="copy"),o}var g=e.editor,v=o.createElement("img");v.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(v.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"),["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach(function(t){e[t]=this[t]},this),g.addEventListener("mousedown",this.onMouseDown.bind(e));var w,y,A,E,C,b,F,x,S,$,D,k=g.container,B=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}C=g.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=g.getReadOnly()?"copy":"copyMove",a.isOpera&&(g.container.appendChild(v),v.scrollTop=0),i.setDragImage&&i.setDragImage(v,0,0),a.isOpera&&g.container.removeChild(v),i.clearData(),i.setData("Text",g.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,x=!1,this.setState(null),!g.getReadOnly()){var t=e.dataTransfer.dropEffect;F||"move"!=t||g.session.remove(g.getSelectionRange()),g.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||d(),B++,e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragOver=function(e){if(!g.getReadOnly()&&p(e.dataTransfer))return y=e.clientX,A=e.clientY,w||(d(),B++),null!==_&&(_=null),e.dataTransfer.dropEffect=F=m(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--B<=0&&w)return u(),F=null,s.preventDefault(e)},this.onDrop=function(e){if(b){var t=e.dataTransfer;if(x)switch(F){case"move":C=C.contains(b.row,b.column)?{start:b,end:b}:g.moveText(C,b);break;case"copy":C=g.moveText(C,b,!0)}else{var i=t.getData("Text");C={start:b,end:g.session.insert(b,i)},g.focus(),F=null}return u(),s.preventDefault(e)}},s.addListener(k,"dragstart",this.onDragStart.bind(e)),s.addListener(k,"dragend",this.onDragEnd.bind(e)),s.addListener(k,"dragenter",this.onDragEnter.bind(e)),s.addListener(k,"dragover",this.onDragOver.bind(e)),s.addListener(k,"dragleave",this.onDragLeave.bind(e)),s.addListener(k,"drop",this.onDrop.bind(e));var _=null}function r(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,h=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;t.container.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var s=0;s1&&(r=i[i.length-2]);var s=h[t+"Path"];return null==s?s=h.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=e(i)}catch(e){}if(r&&!t.$loading[i])return n&&n(r);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return s();a.loadScript(t.moduleUrl(i,o),s)}},r(!0),t.init=r}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,i){"use strict";var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,s=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,c=e("../config"),h=function(e){var t=this;this.editor=e,new o(this),new s(this),new l(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var c=e.renderer.$gutter;n.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(c,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,s=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(h),c(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},c=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=s,o.releaseMouse=n.capture(this.editor.container,s,l);var h=setInterval(c,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(h.prototype),c.defineOptions(h.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=h}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())}),e.on("gutterclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var s=n.getFoldAt(i,n.getLine(i).length,1);s?n.removeFold(s):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,s=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&!((o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n))&&o.command&&(s="null"==o.command||a.exec(o.command,this.$editor,o.args,n),s&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),s)););return s||-1!=e||(o={command:"insertstring"},s=a.exec("insertstring",this.$editor,t)),s&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),s},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),ace.define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},r=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):-1==t?-2:(t=this.compare(n.row,n.column),-1==t?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var n={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(t.column-i,t.column).split(" ").length-1==i?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);return r?void this.moveCursorTo(r.end.row,r.end.column):(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length?(this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),s=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column);var n=this.session.screenToDocumentPosition(i.row+e,i.column);0!==e&&0===t&&n.row===this.lead.row&&n.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[n.row]&&(n.row>0||e>0)&&n.row++,this.moveCursorTo(n.row,n.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),r=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),d>1&&(/\\\d/.test(c.regex)?h=c.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+r+1)}):(d=1,h=this.removeCapturingGroups(c.regex)),c.splitRegex||"string"==typeof c.token||a.push(c)),o[r]=l,r+=d,n.push(h),c.onMatch||(c.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;rh){var v=e.substring(h,g-m.length);u.type==f?u.value+=v:(u.type&&c.push(u),u={type:f,value:v})}for(var w=0;wr){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});h1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(n.prototype),t.TokenIterator=n}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],c=["text","paren.rparen","punctuation.operator","comment"],h={},d=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,h.rangeCount!=e.multiSelect.rangeCount&&(h={rangeCount:e.multiSelect.rangeCount})),h[t])return n=h[t];n=h[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},u=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},f=function(){this.add("braces","insertion",function(e,t,i,r,o){var s=i.getCursorPosition(),l=r.doc.getLine(s.row);if("{"==o){d(i);var c=i.getSelectionRange(),h=r.doc.getTextRange(c);if(""!==h&&"{"!==h&&i.getWrapBehavioursEnabled())return u(c,h,"{","}");if(f.isSaneInsertion(i,r))return/[\]\}\)]/.test(l[s.column])||i.inMultiSelectMode?(f.recordAutoInsert(i,r,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(i,r,"{"),{text:"{",selection:[1,1]})}else if("}"==o){d(i);var p=l.substring(s.column,s.column+1);if("}"==p){var m=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(null!==m&&f.isAutoInsertedClosing(s,l,o))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==o||"\r\n"==o){d(i);var g="";f.isMaybeInsertedClosing(s,l)&&(g=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var p=l.substring(s.column,s.column+1);if("}"===p){var v=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!v)return null;var w=this.$getIndent(r.getLine(v.row))}else{if(!g)return void f.clearMaybeInsertedClosing();var w=this.$getIndent(l)}var y=w+r.getTabString();return{text:"\n"+y+"\n"+w+g,selection:[1,y.length,1,y.length]}}f.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,r,o){var s=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==s){d(i);if("}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,r){if("("==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return u(o,s,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if(")"==c){var h=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o){d(i);if(")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("brackets","insertion",function(e,t,i,n,r){if("["==r){d(i);var o=i.getSelectionRange(),s=n.doc.getTextRange(o);if(""!==s&&i.getWrapBehavioursEnabled())return u(o,s,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),c=l.substring(a.column,a.column+1);if("]"==c){var h=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==h&&f.isAutoInsertedClosing(a,l,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o){d(i);if("]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2))return r.end.column++,r}}),this.add("string_dquotes","insertion",function(e,t,i,n,r){if('"'==r||"'"==r){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;d(i);var o=r,s=i.getSelectionRange(),a=n.doc.getTextRange(s);if(""!==a&&"'"!==a&&'"'!=a&&i.getWrapBehavioursEnabled())return u(s,a,o,o);if(!a){var l=i.getCursorPosition(),c=n.doc.getLine(l.row),h=c.substring(l.column-1,l.column),f=c.substring(l.column,l.column+1),p=n.getTokenAt(l.row,l.column),m=n.getTokenAt(l.row,l.column+1);if("\\"==h&&p&&/escape/.test(p.type))return null;var g,v=p&&/string|escape/.test(p.type),w=!m||/string|escape/.test(m.type);if(f==o)(g=v!==w)&&/string\.end/.test(m.type)&&(g=!1);else{if(v&&!w)return null;if(v&&w)return null;var y=n.$mode.tokenRe;y.lastIndex=0;var A=y.test(h);y.lastIndex=0;var E=y.test(h);if(A||E)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;g=!0}return{text:g?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)){d(i);if(n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o)return r.end.column++,r}})};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var r=new s(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(f,o),t.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";t.packages={},function(e){for(var i in e)t.packages[i]=e[i].replace(/\w{4}/g,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26", +Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,s=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,c=e("../range").Range,h=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+s.packages.L+s.packages.Mn+s.packages.Mc+s.packages.Nd+s.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function r(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,s=!0,l=!0,c=1/0,h=t.getTabSize(),d=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var u=this.lineCommentStart.map(a.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var u=a.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;u=new RegExp("^(\\s*)(?:"+u+") ?"),d=t.getUseSoftTabs();var p=function(e,t){var i=e.match(u);if(i){var n=i[1].length,r=i[0].length;w(e,n,r)||" "!=i[0][r-1]||r--,o.removeInLine(t,n,r)}},m=f+" ",g=function(e,t){s&&!/\S/.test(e)||(w(e,c,c)?o.insertInLine({row:t,column:c},m):o.insertInLine({row:t,column:c},f))},v=function(e,t){return u.test(e)},w=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%h!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return h>2?n%h!=h-1:n%h==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,y=this.blockComment.end,u=new RegExp("^(\\s*)(?:"+a.escapeRegExp(f)+")"),A=new RegExp("(?:"+a.escapeRegExp(y)+")\\s*$"),g=function(e,t){v(e,t)||s&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},y),o.insertInLine({row:t,column:c},f))},p=function(e,t){var i;(i=e.match(A))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(u))&&o.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(u.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(E=e.length)}),c==1/0&&(c=E,s=!1,l=!1),d&&c%h!=0&&(c=Math.floor(c/h)*h),r(l?p:g)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o,s,a=new l(t,n.row,n.column),h=a.getCurrentToken(),d=(t.selection,t.selection.toOrientedRange());if(h&&/comment/.test(h.type)){for(var u,f;h&&/comment/.test(h.type);){var p=h.value.indexOf(r.start);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;u=new c(m,g,m,g+r.start.length);break}h=a.stepBackward()}for(var a=new l(t,n.row,n.column),h=a.getCurrentToken();h&&/comment/.test(h.type);){var p=h.value.indexOf(r.end);if(-1!=p){var m=a.getCurrentTokenRow(),g=a.getCurrentTokenColumn()+p;f=new c(m,g,m,g+r.end.length);break}h=a.stepForward()}f&&t.remove(f),u&&(t.remove(u),o=u.start.row,s=-r.start.length)}else s=r.start.length,o=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);d.start.row==o&&(d.start.column+=s),d.end.row==o&&(d.end.column+=s),t.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var i=0;e0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);return t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var l=i.slice(s,a);if(a>n){e.lines=l,e.start.row=r+s,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(r+s,o),end:this.pos(r+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),r=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var s=o.firstRow,a=o.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&(c=n.getMatchOffsets(i.getLine(l),this.regExp),c.length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map(function(e){return new r(l,e.offset,l,e.offset+e.length)}),this.cache[l]=c.length?c:"");for(var h=c.length;h--;)t.drawSingleLineMarker(e,c[h].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o,s=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var l=r(e,s.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return r(e.start,t.start)});for(var i,n=t[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(h.start.row==n&&h.start.column>=t.column&&(h.start.column==t.column&&this.$insertRight||(h.start.column+=s,h.start.row+=o)),h.end.row==n&&h.end.column>=t.column){if(h.end.column==t.column&&this.$insertRight)continue;h.end.column==t.column&&s>0&&lh.start.column&&h.end.column==a[l+1].start.column&&(h.end.column-=s),h.end.column+=s,h.end.row+=o}}}if(0!=o&&l=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0),n;n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var i,n=this.$foldData,r=!1;e instanceof s?i=e:(i=new s(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,h=i.end.column;if(!(a0&&(this.removeFolds(f),f.forEach(function(e){i.addSubFold(e)}));for(var p=0;p0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var i,n;if(null==e?(i=new r(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new r(e,0,e,this.getLine(e).length):"row"in e?r.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,s="";return e.walk(function(e,t,i,a){if(!(t=e){r=o.end.row;try{var s=this.addFold("...",o);s&&(s.collapseChildren=i)}catch(e){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var s=this.getFoldWidgetRange(r);if(n||(n=s),s&&s.end.row>=e)break}r--}return{range:-1!==r&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(o=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,o=e("./fold_line").FoldLine,s=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){var a=this.$findClosingBracket(s[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(s[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var h=c.charAt(l);if(h==n){if(0==(o-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else h==e&&(o+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;c=a.value,l=c.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,s=new r(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,h=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,s),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var r=/\s/;else var r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var s=t;se&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],s=o?o.start.row:1/0,a=t.length,l=0;ls){if((l=o.end.row+1)>=a)break;o=this.$foldData[r++],s=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),s&&o.start.row>=e.end.row&&(o.start.row+=s,o.end.row+=s)}if(o.end=this.insert(o.start,n),r.length){var l=e.start,h=o.start,s=h.row-l.row,a=h.column-l.column;this.addFolds(r.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=s,e.end.row+=s,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var s=0;s0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var r=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var r=t-e+1}var o=new c(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=r,e.end.row+=r,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+r,a),s.length&&this.addFolds(s),r},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,s=r.row,a=s-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var h=this.getFoldLine(r.row),d=0;if(h){h.addRemoveChars(r.row,r.column,n.column-r.column),h.shiftRow(-a);var u=this.getFoldLine(o);u&&u!==h&&(u.merge(h),h=u),d=c.indexOf(h)+1}for(d;d=r.row&&h.shiftRow(-a)}s=o}else{var f=Array(a);f.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,f);var c=this.$foldData,h=this.getFoldLine(o),d=0;if(h){var m=h.range.compareInside(n.row,n.column);0==m?(h=h.split(n.row,n.column))&&(h.shiftRow(a),h.addRemoveChars(s,0,r.column-n.column)):-1==m&&(h.addRemoveChars(o,0,r.column-n.column),h.shiftRow(a)),d=c.indexOf(h)+1}for(d;d=o&&h.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var h=this.getFoldLine(o);h&&h.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,s):this.$updateRowLengthCache(o,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var r,o,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,h=e;for(n=Math.min(n,s.length-1);h<=n;)o=this.getFoldLine(h,o),o?(r=[],o.walk(function(e,n,o,a){var l;if(null!=e){l=this.$getDisplayTokens(e,r.length),l[0]=t;for(var c=1;cn-v;){var w=d+n-v;if(e[w-1]>=a&&e[w]>=a)s(w);else if(e[w]!=t&&e[w]!=i){for(var y=Math.max(w-(n-(n>>2)),d-1);w>y&&e[w]y&&e[w]y&&9==e[w];)w--}else for(;w>y&&e[w]y?s(++w):(w=d+n,2==e[w]&&w--,s(w-v))}else{for(w;w!=d-1&&e[w]!=t;w--);if(w>d){s(w);continue}for(w=d+n;w39&&s<48||s>57&&s<64?r.push(9):s>=4352&&e(s)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var r,o;for(o=0;o=4352&&e(r)?n+=2:n+=1,!(n>i));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var s=l[c],r=this.$docRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getLength()-1,f=this.getNextFoldLine(r),p=f?f.start.row:1/0;s<=e&&(a=this.getRowLength(r),!(s+a>e||r>=u));)s+=a,++r>p&&(r=f.end.row+1,f=this.getNextFoldLine(r,f),p=f?f.start.row:1/0),d&&(this.$docRowCache.push(r),this.$screenRowCache.push(s));if(f&&f.start.row<=r)i=this.getFoldDisplayLine(f),r=f.start.row;else{if(s+a<=e||r>u)return{row:u,column:this.getLine(u).length};i=this.getLine(r),f=null}var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){var v=Math.floor(e-s);n=g[v],v>0&&g.length&&(m=g.indent,o=g[v-1]||g[g.length-1],i=i.substring(o))}}return o+=this.$getStringScreenWidth(i,t-m)[1],this.$useWrapMode&&o>=n&&(o=n-1),f?f.idxToPosition(o):{row:r,column:o}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,r=null,o=null;(o=this.getFoldAt(e,t,1))&&(e=o.start.row,t=o.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),h=l.length;if(h&&c>=0)var a=l[c],n=this.$screenRowCache[c],d=e>l[h-1];else var d=!h;for(var u=this.getNextFoldLine(a),f=u?u.start.row:1/0;a=f){if((s=u.end.row+1)>e)break;u=this.getNextFoldLine(s,u),f=u?u.start.row:1/0}else s=a+1;n+=this.getRowLength(a),a=s,d&&(this.$docRowCache.push(a),this.$screenRowCache.push(n))}var p="";u&&a>=f?(p=this.getFoldDisplayLine(u,e,t),r=u.start.row):(p=this.getLine(e).substring(0,t),r=e);var m=0;if(this.$useWrapMode){var g=this.$wrapData[r];if(g){for(var v=0;p.length>=g[v];)n++,v++;p=p.substring(g[v-1]||0,p.length),m=v>0?g.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(p)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=0,t=this.$foldData[r++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,r=0;ri));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),o.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=f}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var r=e("./lib/lang"),o=e("./lib/oop"),s=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,r){if(e.start)n=e;else{var o=e.offset+(r||0);if(n=new s(i,o,i,o+e.length),!e.length&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))return n=null,!1}return!0}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,h=n.length-c;e:for(var d=a.offset||0;d<=h;d++){for(var u=0;um||(o.push(l=new s(d,m,d+c-1,g)),c>2&&(d=d+c-2))}}else for(var v=0;vE&&o[u].end.row==i.end.row;)u--;for(o=o.slice(v,u+1),v=0,u=o.length;v=0;a--)if(n(s[a],t,o))return!0};else var a=function(e,t,o){for(var s=r.getMatchOffsets(e,i),a=0;a=s;n--)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=a,s=o.row;n>=s;n--)if(i(e.getLine(n),n))return}}:function(i){var n=o.row;if(!i(e.getLine(n).substr(o.column),n,o.column)){for(n+=1;n<=a;n++)if(i(e.getLine(n),n))return;if(0!=t.wrap)for(n=s,a=o.row;n<=a;n++)if(i(e.getLine(n),n))return}}}}}).call(a.prototype),t.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function r(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),s=e("../lib/useragent"),a=o.KEY_MODS;r.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var s=o.indexOf(e);-1!=s&&(o.splice(s,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),s=a[o.hashId]+o.key;this._addCommandToBinding(n+s,t,i)},this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=n||i.isDefault?-100:e(i));var s=o[t];for(r=0;rn)break}s.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var r=0,s=t.length;s--;){var a=o.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;r|=a}return{key:i,hashId:r}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=a[t]+i,o=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:o}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=r}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,s=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(s,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map(function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(s.prototype),t.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),o=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),h=i.row+1;h<=n.row+1;h++){var d=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(h)));0!==d.length&&(d=" "+d),c+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;v.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new f(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new w(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,s=0,a=n.stepBackward();if("<"==a.value)do{a=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"=0);else{do{r=a,a=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===a.value?s++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new f(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,s=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(s)||n<=o&&/[\w\d]$/.test(s))&&(s=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(s))){return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s})}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()){var s=new f.fromPoints(r,r);s.end.column+=e.length,this.session.remove(s)}}else{var s=this.getSelectionRange();r=this.session.remove(s),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(r.row);if(r.column>a.search(/\S|$/)){var l=a.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+l)}}this.clearSelection();var c=r.column,h=i.getState(r.row),a=i.getLine(r.row),d=n.checkOutdent(h,a,e);i.insert(r,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new f(r.row,c+o.selection[0],r.row,c+o.selection[1])):this.selection.setSelectionRange(new f(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var u=n.getNextLineIndent(h,a.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},u)}d&&n.autoOutdent(h,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var n=new f(0,0,0,0),r=e.first;r<=e.last;r++){var o=t.getLine(r);n.start.row=r,n.end.row=r,n.end.column=o.length,t.replace(n,i[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){return{value:r[0],start:r.index,end:r.index+r[0].length}}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new f(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var s=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-s,l=parseFloat(o.value);l*=Math.pow(10,a),s!==o.end&&if+1)break;f=p.last}for(h--,a=this.session.$moveLines(u,f,t?0:e),t&&-1==e&&(d=h+1);d<=h;)s[d].moveBy(a,0),d++;t||(a=0),l+=a}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection(function(){ +this.moveCursorBy(r,0)}):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new w(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var s,a,l=!1,c={},h=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;h=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),s=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=o.top-s.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(r.style.top=a+"px",r.style.left=o.left+"px",r.style.height=s.lineHeight+"px",r.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}).call(y.prototype),v.defineOptions(y.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=y}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),s=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,s),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ts&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),s=o?o.start.row:1/0),m>r){for(;this.$cells.length>p+1;)f=this.$cells.pop(),this.element.removeChild(f.element);break}f=this.$cells[++p],f||(f={element:null,textNode:null,foldWidget:null},f.element=n.createElement("div"),f.textNode=document.createTextNode(""),f.element.appendChild(f.textNode),this.element.appendChild(f.element),this.$cells[p]=f);var g="ace_gutter-cell ";l[m]&&(g+=l[m]),c[m]&&(g+=c[m]),this.$annotations[m]&&(g+=this.$annotations[m].className),f.element.className!=g&&(f.element.className=g);var v=t.getRowLength(m)*e.lineHeight+"px";if(v!=f.element.style.height&&(f.element.style.height=v),a){var w=a[m];null==w&&(w=a[m]=t.getFoldWidget(m))}if(w){f.foldWidget||(f.foldWidget=n.createElement("span"),f.element.appendChild(f.foldWidget));var g="ace_fold-widget ace_"+w;"start"==w&&m==s&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),s=this.$padding+r.start.column*e.characterWidth;n.renderer(t,r,s,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,r,o,s){for(var a=this.session,l=i.start.row,c=i.end.row,h=l,d=0,u=0,f=a.getScreenLastRowColumn(h),p=new n(h,i.start.column,h,u);h<=c;h++)p.start.row=p.end.row=h,p.start.column=h==l?i.start.column:a.getRowWrapIndent(h),p.end.column=f,d=u,u=f,f=h+1f,h==c),o,h==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,r){var o=this.$padding,s=n.lineHeight,a=this.$getTop(t.start.row,n),l=o+t.start.column*n.characterWidth;r=r||"",e.push("
"),a=this.$getTop(t.end.row,n);var c=t.end.column*n.characterWidth;if(e.push("
"),!((s=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var h=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var s=n.lineHeight,a=(t.end.column+(r||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),s=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,s),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",s="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",s=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,s=0,a=e.firstRow;ac&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),c=l?l.start.row:1/0),a>r)break;var h=o[s++];if(h){var d=[];this.$renderLine(d,a,!this.$useLineGroups(),a==c&&l),h.style.height=e.lineHeight*this.session.getRowLength(a)+"px",h.innerHTML=d.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,s=this.session.getNextFoldLine(o),a=s?s.start.row:1/0;;){if(o>a&&(o=s.end.row+1,s=this.session.getNextFoldLine(o,s),a=s?s.start.row:1/0),o>i)break;var l=r.createElement("div"),c=[];if(this.$renderLine(c,o,!1,o==a&&s),l.innerHTML=c.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),s=o?o.start.row:1/0;;){if(r>s&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),s=o?o.start.row:1/0),r>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,r,!1,r==s&&o),this.$useLineGroups()&&t.push("
"),r++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,s=function(e,i,n,s,a){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=r.session.getScreenTabSize(t+s);return t+=l-1,r.$tabStrings[l]}if(" "==e){var c=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",h=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+h+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")},a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,s);if(this.$textToken[i.type])e.push(a);else{var l="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,s=0,a=i[0],l=0,c=0;c=a;)l=this.$renderToken(e,l,h,d.substring(0,a-r)),d=d.substring(a-r),r=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),s++,l=0,a=i[s]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,l=this.$renderToken(e,l,h,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(s=s.substring(0,i-t)),r.push({type:e[n].type,value:s}),o=t+s.length,n+=1}for(;oi?r.push({type:e[n].type,value:s.substring(0,i-o)}):r.push(e[n]),o+=s.length,n+=1}}var n=this.session,r=[],o=n.getTokens(e);return t.walk(function(e,t,s,a,l){null!=e?r.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,s))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+i.column*this.config.characterWidth,top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var s=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(s,o,e,t[i],this.session):(s.left=o.left+"px",s.top=o.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var l=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};n.inherits(l,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>32768?(this.coeff=32768/e,e=32768):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var c=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(c.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(r.prototype),t.RenderLoop=r}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),s=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,c=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",s.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var t={height:e.height,width:e.width/l}}else var t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,l),this.$main.getBoundingClientRect().width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(c.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),s=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,c=e("./layer/text").Text,h=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,f=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {\tposition: relative;\toverflow: hidden;\tfont: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\tdirection: ltr;\ttext-align: left;\t}\t.ace_scroller {\tposition: absolute;\toverflow: hidden;\ttop: 0;\tbottom: 0;\tbackground-color: inherit;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\tcursor: text;\t}\t.ace_content {\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmin-width: 100%;\t}\t.ace_dragging .ace_scroller:before{\tposition: absolute;\ttop: 0;\tleft: 0;\tright: 0;\tbottom: 0;\tcontent: \'\';\tbackground: rgba(250, 250, 250, 0.01);\tz-index: 1000;\t}\t.ace_dragging.ace_dark .ace_scroller:before{\tbackground: rgba(0, 0, 0, 0.01);\t}\t.ace_selecting, .ace_selecting * {\tcursor: text !important;\t}\t.ace_gutter {\tposition: absolute;\toverflow : hidden;\twidth: auto;\ttop: 0;\tbottom: 0;\tleft: 0;\tcursor: default;\tz-index: 4;\t-ms-user-select: none;\t-moz-user-select: none;\t-webkit-user-select: none;\tuser-select: none;\t}\t.ace_gutter-active-line {\tposition: absolute;\tleft: 0;\tright: 0;\t}\t.ace_scroller.ace_scroll-left {\tbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\t}\t.ace_gutter-cell {\tpadding-left: 19px;\tpadding-right: 6px;\tbackground-repeat: no-repeat;\t}\t.ace_gutter-cell.ace_error {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_warning {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\tbackground-position: 2px center;\t}\t.ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\tbackground-position: 2px center;\t}\t.ace_dark .ace_gutter-cell.ace_info {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\t}\t.ace_scrollbar {\tposition: absolute;\tright: 0;\tbottom: 0;\tz-index: 6;\t}\t.ace_scrollbar-inner {\tposition: absolute;\tcursor: text;\tleft: 0;\ttop: 0;\t}\t.ace_scrollbar-v{\toverflow-x: hidden;\toverflow-y: scroll;\ttop: 0;\t}\t.ace_scrollbar-h {\toverflow-x: scroll;\toverflow-y: hidden;\tleft: 0;\t}\t.ace_print-margin {\tposition: absolute;\theight: 100%;\t}\t.ace_text-input {\tposition: absolute;\tz-index: 0;\twidth: 0.5em;\theight: 1em;\topacity: 0;\tbackground: transparent;\t-moz-appearance: none;\tappearance: none;\tborder: none;\tresize: none;\toutline: none;\toverflow: hidden;\tfont: inherit;\tpadding: 0 1px;\tmargin: 0 -1px;\ttext-indent: -1em;\t-ms-user-select: text;\t-moz-user-select: text;\t-webkit-user-select: text;\tuser-select: text;\twhite-space: pre!important;\t}\t.ace_text-input.ace_composition {\tbackground: inherit;\tcolor: inherit;\tz-index: 1000;\topacity: 1;\ttext-indent: 0;\t}\t.ace_layer {\tz-index: 1;\tposition: absolute;\toverflow: hidden;\tword-wrap: normal;\twhite-space: pre;\theight: 100%;\twidth: 100%;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tpointer-events: none;\t}\t.ace_gutter-layer {\tposition: relative;\twidth: auto;\ttext-align: right;\tpointer-events: auto;\t}\t.ace_text-layer {\tfont: inherit !important;\t}\t.ace_cjk {\tdisplay: inline-block;\ttext-align: center;\t}\t.ace_cursor-layer {\tz-index: 4;\t}\t.ace_cursor {\tz-index: 4;\tposition: absolute;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tborder-left: 2px solid;\ttransform: translatez(0);\t}\t.ace_slim-cursors .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_overwrite-cursors .ace_cursor {\tborder-left-width: 0;\tborder-bottom: 1px solid;\t}\t.ace_hidden-cursors .ace_cursor {\topacity: 0.2;\t}\t.ace_smooth-blinking .ace_cursor {\t-webkit-transition: opacity 0.18s;\ttransition: opacity 0.18s;\t}\t.ace_editor.ace_multiselect .ace_cursor {\tborder-left-width: 1px;\t}\t.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\tposition: absolute;\tz-index: 3;\t}\t.ace_marker-layer .ace_selection {\tposition: absolute;\tz-index: 5;\t}\t.ace_marker-layer .ace_bracket {\tposition: absolute;\tz-index: 6;\t}\t.ace_marker-layer .ace_active-line {\tposition: absolute;\tz-index: 2;\t}\t.ace_marker-layer .ace_selected-word {\tposition: absolute;\tz-index: 4;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\t}\t.ace_line .ace_fold {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tdisplay: inline-block;\theight: 11px;\tmargin-top: -2px;\tvertical-align: middle;\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\tbackground-repeat: no-repeat, repeat-x;\tbackground-position: center center, top left;\tcolor: transparent;\tborder: 1px solid black;\tborder-radius: 2px;\tcursor: pointer;\tpointer-events: auto;\t}\t.ace_dark .ace_fold {\t}\t.ace_fold:hover{\tbackground-image:\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\turl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\t}\t.ace_tooltip {\tbackground-color: #FFF;\tbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\tbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\tborder: 1px solid gray;\tborder-radius: 1px;\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\tcolor: black;\tmax-width: 100%;\tpadding: 3px 4px;\tposition: fixed;\tz-index: 999999;\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tcursor: default;\twhite-space: pre;\tword-wrap: break-word;\tline-height: normal;\tfont-style: normal;\tfont-weight: normal;\tletter-spacing: normal;\tpointer-events: none;\t}\t.ace_folding-enabled > .ace_gutter-cell {\tpadding-right: 13px;\t}\t.ace_fold-widget {\t-moz-box-sizing: border-box;\t-webkit-box-sizing: border-box;\tbox-sizing: border-box;\tmargin: 0 -12px 0 1px;\tdisplay: none;\twidth: 11px;\tvertical-align: top;\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\tbackground-repeat: no-repeat;\tbackground-position: center;\tborder-radius: 3px;\tborder: 1px solid transparent;\tcursor: pointer;\t}\t.ace_folding-enabled .ace_fold-widget {\tdisplay: inline-block; \t}\t.ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\t}\t.ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\t}\t.ace_fold-widget:hover {\tborder: 1px solid rgba(0, 0, 0, 0.3);\tbackground-color: rgba(255, 255, 255, 0.2);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\t}\t.ace_fold-widget:active {\tborder: 1px solid rgba(0, 0, 0, 0.4);\tbackground-color: rgba(0, 0, 0, 0.05);\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\t}\t.ace_dark .ace_fold-widget {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\t}\t.ace_dark .ace_fold-widget.ace_end {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget.ace_closed {\tbackground-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\t}\t.ace_dark .ace_fold-widget:hover {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\tbackground-color: rgba(255, 255, 255, 0.1);\t}\t.ace_dark .ace_fold-widget:active {\tbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\t}\t.ace_fold-widget.ace_invalid {\tbackground-color: #FFB4B4;\tborder-color: #DE5555;\t}\t.ace_fade-fold-widgets .ace_fold-widget {\t-webkit-transition: opacity 0.4s ease 0.05s;\ttransition: opacity 0.4s ease 0.05s;\topacity: 0;\t}\t.ace_fade-fold-widgets:hover .ace_fold-widget {\t-webkit-transition: opacity 0.05s ease 0.05s;\ttransition: opacity 0.05s ease 0.05s;\topacity:1;\t}\t.ace_underline {\ttext-decoration: underline;\t}\t.ace_bold {\tfont-weight: bold;\t}\t.ace_nobold .ace_bold {\tfont-weight: normal;\t}\t.ace_italic {\tfont-style: italic;\t}\t.ace_error-marker {\tbackground-color: rgba(255, 0, 0,0.2);\tposition: absolute;\tz-index: 9;\t}\t.ace_highlight-marker {\tbackground-color: rgba(255, 255, 0,0.2);\tposition: absolute;\tz-index: 8;\t}\t.ace_br1 {border-top-left-radius : 3px;}\t.ace_br2 {border-top-right-radius : 3px;}\t.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\t.ace_br4 {border-bottom-right-radius: 3px;}\t.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\t.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\t.ace_br8 {border-bottom-left-radius : 3px;}\t.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\t.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\t',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!s.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new c(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new h(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new f(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,s={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",s),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var s=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(s)[0]+2,r+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight +;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),r=n*this.lineHeight,o=this.$getLongestLine(),s=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==s;a&&(this.$horizScroll=s,this.scrollBarH.setVisible(s));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,h=t.scrollerHeight+this.lineHeight,d=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;r+=d;var u=this.scrollMargin;this.session.setScrollTop(Math.max(-u.top,Math.min(this.scrollTop,r-t.scrollerHeight+u.bottom))),this.session.setScrollLeft(Math.max(-u.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+u.right)));var f=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-r+d<0||this.scrollTop>u.top),p=l!==f;p&&(this.$vScroll=f,this.scrollBarV.setVisible(f));var m,g,v=Math.ceil(h/this.lineHeight)-1,w=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),y=w+v,A=this.lineHeight;w=e.screenToDocumentRow(w,0);var E=e.getFoldLine(w);E&&(w=E.start.row),m=e.documentToScreenRow(w,0),g=e.getRowLength(w)*A,y=Math.min(e.screenToDocumentRow(y,0),e.getLength()-1),h=t.scrollerHeight+e.getRowLength(y)*A+g,c=this.scrollTop-m*A;var C=0;return this.layerConfig.width!=o&&(C=this.CHANGE_H_SCROLL),(a||p)&&(C=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:w,firstRowScreen:m,lastRow:y,lineHeight:A,characterWidth:this.characterWidth,minHeight:h,maxHeight:r,offset:c,gutterOffset:A?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/A)):0,height:this.$size.scrollerHeight},C},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+s>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-ar?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=(e+this.scrollLeft-i.left-this.$padding)/this.characterWidth,r=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),o=Math.round(n);return{row:r,column:o,side:n-o>0?1:-1}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=Math.round((e+this.scrollLeft-i.left-this.$padding)/this.characterWidth),r=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(r,Math.max(n,0))},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+Math.round(n.column*this.characterWidth),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){function i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&r.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,r.addCssClass(n.container,i.cssClass),r.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var s=e||this.$options.theme.initialValue;o.loadModule(["theme",s],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,a=e("../config"),l=function(t,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)o=o||a.moduleUrl(n.id,"worker");else{var s=this.$normalizePath;o=o||s(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach(function(t){l[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{var c=n.src,h=i(17),d=new h([c],{type:"application/javascript"}),u=(window.URL||window.webkitURL).createObjectURL(d);this.$worker=new Worker(u)}catch(e){if(!(e instanceof window.DOMException))throw e;var d=this.$workerBlob(o),f=window.URL||window.webkitURL,p=f.createObjectURL(d);this.$worker=new Worker(p),f.revokeObjectURL(p)}this.$worker.postMessage({init:!0,tlns:l,module:n.id,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return o.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(e){console.error(e.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))},this.$workerBlob=function(e){var t="importScripts('"+o.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(e){var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,n=new i;return n.append(t),n.getBlob("application/javascript")}}}).call(l.prototype);var c=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,o=Object.create(s),l=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){l.messageBuffer.push(e),n&&(r?setTimeout(c):c())},this.setEmitSync=function(e){r=e};var c=function(){var e=l.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){l.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],function(e){for(n=new e[i](o);l.messageBuffer.length;)c()})};c.prototype=l.prototype,t.UIWorkerClient=c,t.WorkerClient=l}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),s=function(e,t,i,n,r,o){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){s.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var s=this.others.length-1;s>=0;s--){var a=this.others[s],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new a,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),r=i.start.row,o=i.end.row;if(r==o){if(n)var s=i.end,a=i.start;else var s=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(s,s))}var c=[],h=this.getLineRange(r,!0);h.start.column=i.start.column,c.push(h);for(var d=r+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),r=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,r).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)m--;if(m>0)for(var g=0;n[g].isEmpty();)g++;for(var v=m;v>=g;v--)n[v].isEmpty()&&n.splice(v,1)}return n}}.call(c.prototype);var v=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,o=1==i||i&&i.$byLines,s=this.session,a=this.selection,l=a.rangeList,h=(r?a:l).ranges;if(!h.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=a._eventRegistry;a._eventRegistry={};var u=new c(s);this.inVirtualSelectionMode=!0;for(var f=h.length;f--;){if(o)for(;f>0&&h[f].start.row==h[f-1].end.row;)f--;u.fromOrientedRange(h[f]),u.index=f,this.selection=s.selection=u;var p=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===p||(n=p),u.toOrientedRange(h[f])}u.detach(),this.selection=s.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=d,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),rc?e.insert(n,u.stringRepeat(" ",r-c)):e.remove(new l(n.row,n.column,n.row,n.column-r+c)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),h=c.start.row,d=c.end.row,f=h==d;if(f){var p,m=this.session.getLength();do{p=this.session.getLine(d)}while(/[=:]/.test(p)&&++d0);h<0&&(h=0),d>=m&&(d=m-1)}var g=this.session.removeFullLines(h,d);g=this.$reAlignText(g,f),this.session.insert({row:h,column:0},g.join("\n")+"\n"),f||(c.start.column=0,c.end.column=g[g.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return u.stringRepeat(" ",e)}function n(e){return e[2]?i(s)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function r(e){return e[2]?i(s+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(s)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var s,a,l,c=!0,h=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==s?(s=t[1].length,a=t[2].length,l=t[3].length,t):(s+a+l!=t[1].length+t[2].length+t[3].length&&(h=!1),s!=t[1].length&&(c=!1),s>t[1].length&&(s=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:c?h?r:n:o)}}).call(v.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(v.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",h)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",h))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=e.getLine(t),o=r.search(/\S/);if(-1!=o){for(var s=i||r.length,a=e.getLength(),l=t,c=t;++tl){var d=e.getLine(c).length;return new n(l,s,c,d)}}},this.openingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r+1},a=e.$findClosingBracket(t,s,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,r,o){var s={row:i,column:r},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(r.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {\tbackground: #f0f0f0;\tcolor: #333;\t}\t.ace-tm .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8;\t}\t.ace-tm .ace_fold {\tbackground-color: #6B72E6;\t}\t.ace-tm {\tbackground-color: #FFFFFF;\tcolor: black;\t}\t.ace-tm .ace_cursor {\tcolor: black;\t}\t.ace-tm .ace_invisible {\tcolor: rgb(191, 191, 191);\t}\t.ace-tm .ace_storage,\t.ace-tm .ace_keyword {\tcolor: blue;\t}\t.ace-tm .ace_constant {\tcolor: rgb(197, 6, 11);\t}\t.ace-tm .ace_constant.ace_buildin {\tcolor: rgb(88, 72, 246);\t}\t.ace-tm .ace_constant.ace_language {\tcolor: rgb(88, 92, 246);\t}\t.ace-tm .ace_constant.ace_library {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_invalid {\tbackground-color: rgba(255, 0, 0, 0.1);\tcolor: red;\t}\t.ace-tm .ace_support.ace_function {\tcolor: rgb(60, 76, 114);\t}\t.ace-tm .ace_support.ace_constant {\tcolor: rgb(6, 150, 14);\t}\t.ace-tm .ace_support.ace_type,\t.ace-tm .ace_support.ace_class {\tcolor: rgb(109, 121, 222);\t}\t.ace-tm .ace_keyword.ace_operator {\tcolor: rgb(104, 118, 135);\t}\t.ace-tm .ace_string {\tcolor: rgb(3, 106, 7);\t}\t.ace-tm .ace_comment {\tcolor: rgb(76, 136, 107);\t}\t.ace-tm .ace_comment.ace_doc {\tcolor: rgb(0, 102, 255);\t}\t.ace-tm .ace_comment.ace_doc.ace_tag {\tcolor: rgb(128, 159, 191);\t}\t.ace-tm .ace_constant.ace_numeric {\tcolor: rgb(0, 0, 205);\t}\t.ace-tm .ace_variable {\tcolor: rgb(49, 132, 149);\t}\t.ace-tm .ace_xml-pe {\tcolor: rgb(104, 104, 91);\t}\t.ace-tm .ace_entity.ace_name.ace_function {\tcolor: #0000A2;\t}\t.ace-tm .ace_heading {\tcolor: rgb(12, 7, 255);\t}\t.ace-tm .ace_list {\tcolor:rgb(185, 6, 144);\t}\t.ace-tm .ace_meta.ace_tag {\tcolor:rgb(0, 22, 142);\t}\t.ace-tm .ace_string.ace_regex {\tcolor: rgb(255, 0, 0)\t}\t.ace-tm .ace_marker-layer .ace_selection {\tbackground: rgb(181, 213, 255);\t}\t.ace-tm.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px white;\t}\t.ace-tm .ace_marker-layer .ace_step {\tbackground: rgb(252, 255, 0);\t}\t.ace-tm .ace_marker-layer .ace_stack {\tbackground: rgb(164, 229, 101);\t}\t.ace-tm .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid rgb(192, 192, 192);\t}\t.ace-tm .ace_marker-layer .ace_active-line {\tbackground: rgba(0, 0, 0, 0.07);\t}\t.ace-tm .ace_gutter-active-line {\tbackground-color : #dcdcdc;\t}\t.ace-tm .ace_marker-layer .ace_selected-word {\tbackground: rgb(250, 250, 255);\tborder: 1px solid rgb(200, 200, 250);\t}\t.ace-tm .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\t}\t',e("../lib/dom").importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,s="add"==e.action,a=r+1;a0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=r;s<=o;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,s=i(t,e[o]);if(s>0)n=o+1;else{if(!(s<0))return o;r=o-1}}return-(n+1)}function r(e,t,i){var r=e.getAnnotations().sort(a.comparePoints);if(r.length){var o=n(r,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=r.length?o=i>0?0:r.length-1:0===o&&i<0&&(o=r.length-1);var s=r[o];if(s&&i){if(s.row===t){do{s=r[o+=i]}while(s&&s.row===t);if(!s)return r.slice()}var l=[];t=s.row;do{l[i<0?"unshift":"push"](s),s=r[o+=i]}while(s&&s.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,s=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var c,h=r(i,a,t);if(h){var d=h[0];n.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,n.row=d.row,c=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var u={row:n.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},f=u.el.appendChild(s.createElement("div")),p=u.el.appendChild(s.createElement("div"));p.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;p.style.left=m+e.renderer.gutterWidth-5+"px",u.el.className="error_widget_wrapper",f.className="error_widget "+c.className,f.innerHTML=c.text.join("
"),f.appendChild(s.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return u.destroy(),{command:"null"}};u.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(u),e.off("changeSelection",u.destroy),e.off("changeSession",u.destroy),e.off("mouseup",u.destroy),e.off("change",u.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",u.destroy),e.on("changeSession",u.destroy),e.on("mouseup",u.destroy),e.on("change",u.destroy),e.session.widgetManager.addLineWidget(u),u.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:u.el.offsetHeight})},s.importCssString("\t .error_widget_wrapper {\t background: inherit;\t color: inherit;\t border:none\t }\t .error_widget {\t border-top: solid 2px;\t border-bottom: solid 2px;\t margin: 5px 0;\t padding: 10px 40px;\t white-space: pre-wrap;\t }\t .error_widget.ace_error, .error_widget_arrow.ace_error{\t border-color: #ff5a5a\t }\t .error_widget.ace_warning, .error_widget_arrow.ace_warning{\t border-color: #F1D817\t }\t .error_widget.ace_info, .error_widget_arrow.ace_info{\t border-color: #5a5a5a\t }\t .error_widget.ace_ok, .error_widget_arrow.ace_ok{\t border-color: #5aaa5a\t }\t .error_widget_arrow {\t position: absolute;\t border: solid 5px;\t border-top-color: transparent!important;\t border-right-color: transparent!important;\t border-left-color: transparent!important;\t top: -5px;\t }\t","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),o=e("./lib/event"),s=e("./editor").Editor,a=e("./edit_session").EditSession,l=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.define=i(16),t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var n="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;n=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(n=r.getInnerText(e),e.innerHTML="");var l=t.createEditSession(n),h=new s(new c(e));h.setSession(l);var d={document:l,editor:h,onResize:h.resize.bind(h,null)};return a&&(d.textarea=a),o.addListener(window,"resize",d.onResize),h.on("destroy",function(){o.removeListener(window,"resize",d.onResize),d.editor.container.env=null}),h.container.env=h.env=d,h},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new l),i},t.EditSession=a,t.UndoManager=l,t.version="1.2.6"}),function(){ace.acequire(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(),e.exports=window.ace.acequire("ace/ace")},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=function(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var e=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return function(t,i){var n=new e,r=i.endings,o=i.type;if(r)for(var s=0,a=t.length;sc)break;var h=this.getFoldWidgetRange(e,"all",t);if(h){if(h.start.row<=o)break;if(h.isMultiLine())t=h.end.row;else if(n==c)break}a=t}}return new r(o,s,a,e.getLine(a).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),s=i,a=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,l=1;++is)return new r(s,n,h,t.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,l=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,h=e("../worker/worker_client").WorkerClient,d=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=new l,this.foldingRules=new c};r.inherits(d,o),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);if("start"==e){t.match(/^.*[\{\(\[]\s*$/)&&(n+=i)}return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new h(["ace"],i(19),"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(d.prototype),t.Mode=d})},function(e,t){e.exports.id="ace/mode/json_worker", +e.exports.src='"no use strict";(function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}})(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},function(e,t){ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,i){"use strict";var n=e("../lib/dom"),r=e("../lib/lang"),o=e("../lib/event"),s=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");n.importCssString("\t.ace_search {\tbackground-color: #ddd;\tborder: 1px solid #cbcbcb;\tborder-top: 0 none;\tmax-width: 325px;\toverflow: hidden;\tmargin: 0;\tpadding: 4px;\tpadding-right: 6px;\tpadding-bottom: 0;\tposition: absolute;\ttop: 0px;\tz-index: 99;\twhite-space: normal;\t}\t.ace_search.left {\tborder-left: 0 none;\tborder-radius: 0px 0px 5px 0px;\tleft: 0;\t}\t.ace_search.right {\tborder-radius: 0px 0px 0px 5px;\tborder-right: 0 none;\tright: 0;\t}\t.ace_search_form, .ace_replace_form {\tborder-radius: 3px;\tborder: 1px solid #cbcbcb;\tfloat: left;\tmargin-bottom: 4px;\toverflow: hidden;\t}\t.ace_search_form.ace_nomatch {\toutline: 1px solid red;\t}\t.ace_search_field {\tbackground-color: white;\tcolor: black;\tborder-right: 1px solid #cbcbcb;\tborder: 0 none;\t-webkit-box-sizing: border-box;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tfloat: left;\theight: 22px;\toutline: 0;\tpadding: 0 7px;\twidth: 214px;\tmargin: 0;\t}\t.ace_searchbtn,\t.ace_replacebtn {\tbackground: #fff;\tborder: 0 none;\tborder-left: 1px solid #dcdcdc;\tcursor: pointer;\tfloat: left;\theight: 22px;\tmargin: 0;\tposition: relative;\t}\t.ace_searchbtn:last-child,\t.ace_replacebtn:last-child {\tborder-top-right-radius: 3px;\tborder-bottom-right-radius: 3px;\t}\t.ace_searchbtn:disabled {\tbackground: none;\tcursor: default;\t}\t.ace_searchbtn {\tbackground-position: 50% 50%;\tbackground-repeat: no-repeat;\twidth: 27px;\t}\t.ace_searchbtn.prev {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \t}\t.ace_searchbtn.next {\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \t}\t.ace_searchbtn_close {\tbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\tborder-radius: 50%;\tborder: 0 none;\tcolor: #656565;\tcursor: pointer;\tfloat: right;\tfont: 16px/16px Arial;\theight: 14px;\tmargin: 5px 1px 9px 5px;\tpadding: 0;\ttext-align: center;\twidth: 14px;\t}\t.ace_searchbtn_close:hover {\tbackground-color: #656565;\tbackground-position: 50% 100%;\tcolor: white;\t}\t.ace_replacebtn.prev {\twidth: 54px\t}\t.ace_replacebtn.next {\twidth: 27px\t}\t.ace_button {\tmargin-left: 2px;\tcursor: pointer;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\toverflow: hidden;\topacity: 0.7;\tborder: 1px solid rgba(100,100,100,0.23);\tpadding: 1px;\t-moz-box-sizing: border-box;\tbox-sizing: border-box;\tcolor: black;\t}\t.ace_button:hover {\tbackground-color: #eee;\topacity:1;\t}\t.ace_button:active {\tbackground-color: #ddd;\t}\t.ace_button.checked {\tborder-color: #3399ff;\topacity:1;\t}\t.ace_search_options{\tmargin-bottom: 3px;\ttext-align: right;\t-webkit-user-select: none;\t-moz-user-select: none;\t-o-user-select: none;\t-ms-user-select: none;\tuser-select: none;\t}","ace_searchbox");var l=''.replace(/>\s+/g,">"),c=function(e,t,i){var r=n.createElement("div");r.innerHTML=l,this.element=r.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;o.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),o.stopPropagation(e)}),o.addListener(e,"click",function(e){var i=e.target||e.srcElement,n=i.getAttribute("action");n&&t[n]?t[n]():t.$searchBarKb.commands[n]&&t.$searchBarKb.commands[n].exec(t),o.stopPropagation(e)}),o.addCommandKeyListener(e,function(e,i,n){var r=a.keyCodeToString(n),s=t.$searchBarKb.findKeyCommand(i,r);s&&s.exec&&(s.exec(t),o.stopEvent(e))}),this.$onChange=r.delayedCall(function(){t.find(!1,!1)}),o.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),o.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),o.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new s([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new s,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){n.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),n.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),n.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,i){var r=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:i}),o=!r&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",o),this.editor._emit("findSearchBox",{match:!o}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;n.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(c.prototype),t.SearchBox=c,t.Search=function(e,t){(e.searchBox||new c(e)).show(e.session.getTextRange(),t)}}),function(){ace.acequire(["ace/ext/searchbox"],function(){})}()},function(e,t){ace.define("ace/theme/jsoneditor",["require","exports","module","ace/lib/dom"],function(e,t,i){t.isDark=!1,t.cssClass="ace-jsoneditor",t.cssText='.ace-jsoneditor .ace_gutter {\tbackground: #ebebeb;\tcolor: #333\t}\t\t.ace-jsoneditor.ace_editor {\tfont-family: droid sans mono, consolas, monospace, courier new, courier, sans-serif;\tline-height: 1.3;\tbackground-color: #fff;\t}\t.ace-jsoneditor .ace_print-margin {\twidth: 1px;\tbackground: #e8e8e8\t}\t.ace-jsoneditor .ace_scroller {\tbackground-color: #FFFFFF\t}\t.ace-jsoneditor .ace_text-layer {\tcolor: gray\t}\t.ace-jsoneditor .ace_variable {\tcolor: #1a1a1a\t}\t.ace-jsoneditor .ace_cursor {\tborder-left: 2px solid #000000\t}\t.ace-jsoneditor .ace_overwrite-cursors .ace_cursor {\tborder-left: 0px;\tborder-bottom: 1px solid #000000\t}\t.ace-jsoneditor .ace_marker-layer .ace_selection {\tbackground: lightgray\t}\t.ace-jsoneditor.ace_multiselect .ace_selection.ace_start {\tbox-shadow: 0 0 3px 0px #FFFFFF;\tborder-radius: 2px\t}\t.ace-jsoneditor .ace_marker-layer .ace_step {\tbackground: rgb(255, 255, 0)\t}\t.ace-jsoneditor .ace_marker-layer .ace_bracket {\tmargin: -1px 0 0 -1px;\tborder: 1px solid #BFBFBF\t}\t.ace-jsoneditor .ace_marker-layer .ace_active-line {\tbackground: #FFFBD1\t}\t.ace-jsoneditor .ace_gutter-active-line {\tbackground-color : #dcdcdc\t}\t.ace-jsoneditor .ace_marker-layer .ace_selected-word {\tborder: 1px solid lightgray\t}\t.ace-jsoneditor .ace_invisible {\tcolor: #BFBFBF\t}\t.ace-jsoneditor .ace_keyword,\t.ace-jsoneditor .ace_meta,\t.ace-jsoneditor .ace_support.ace_constant.ace_property-value {\tcolor: #AF956F\t}\t.ace-jsoneditor .ace_keyword.ace_operator {\tcolor: #484848\t}\t.ace-jsoneditor .ace_keyword.ace_other.ace_unit {\tcolor: #96DC5F\t}\t.ace-jsoneditor .ace_constant.ace_language {\tcolor: darkorange\t}\t.ace-jsoneditor .ace_constant.ace_numeric {\tcolor: red\t}\t.ace-jsoneditor .ace_constant.ace_character.ace_entity {\tcolor: #BF78CC\t}\t.ace-jsoneditor .ace_invalid {\tcolor: #FFFFFF;\tbackground-color: #FF002A;\t}\t.ace-jsoneditor .ace_fold {\tbackground-color: #AF956F;\tborder-color: #000000\t}\t.ace-jsoneditor .ace_storage,\t.ace-jsoneditor .ace_support.ace_class,\t.ace-jsoneditor .ace_support.ace_function,\t.ace-jsoneditor .ace_support.ace_other,\t.ace-jsoneditor .ace_support.ace_type {\tcolor: #C52727\t}\t.ace-jsoneditor .ace_string {\tcolor: green\t}\t.ace-jsoneditor .ace_comment {\tcolor: #BCC8BA\t}\t.ace-jsoneditor .ace_entity.ace_name.ace_tag,\t.ace-jsoneditor .ace_entity.ace_other.ace_attribute-name {\tcolor: #606060\t}\t.ace-jsoneditor .ace_markup.ace_underline {\ttext-decoration: underline\t}\t.ace-jsoneditor .ace_indent-guide {\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y\t}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})}])}); //# sourceMappingURL=jsoneditor.map \ No newline at end of file diff --git a/examples/06_custom_styling.html b/examples/06_custom_styling.html index b0ee175..37d9add 100644 --- a/examples/06_custom_styling.html +++ b/examples/06_custom_styling.html @@ -1,106 +1,41 @@ - JSONEditor | Custom styling + JSONEditor | Custom styling + + - - - - - + - p { - width: 500px; - font-family: "DejaVu Sans", sans-serif; - } - - - + -

- This example demonstrates how to customize the look of JSONEditor, - the editor below has a dark theme. Note that the example isn't worked - out for the mode code. To do that, you can load and configure - a custom theme for the Ace editor. -

+

+ This example demonstrates how to customize the look of JSONEditor, + the editor below has a dark theme. Note that the example isn't worked + out for the mode code. To do that, you can load and configure + a custom theme for the Ace editor. +

-
+
- + diff --git a/examples/11_autocomplete.html b/examples/11_autocomplete.html new file mode 100644 index 0000000..2ba46ae --- /dev/null +++ b/examples/11_autocomplete.html @@ -0,0 +1,112 @@ + + + + JSONEditor | Auto Complete + + + + + + + + + + + +

+ This example demonstrates how to customize the look of JSONEditor, + the editor below has a dark theme. Note that the example isn't worked + out for the mode code. To do that, you can load and configure + a custom theme for the Ace editor. +

+ +
+ + + + diff --git a/src/js/autocomplete.js b/examples/autocomplete.js similarity index 76% rename from src/js/autocomplete.js rename to examples/autocomplete.js index 728854f..5162aea 100644 --- a/src/js/autocomplete.js +++ b/examples/autocomplete.js @@ -1,6 +1,6 @@ 'use strict'; -function completely(config) { +function autocomplete(config) { config = config || {}; config.fontSize = config.fontSize || '16px'; config.fontFamily = config.fontFamily || 'sans-serif'; @@ -167,11 +167,10 @@ function completely(config) { } var rs = { - onArrowDown: function () { }, // defaults to no action. - onArrowUp: function () { }, // defaults to no action. - onEnter: function () { }, // defaults to no action. - onTab: function () { }, // defaults to no action. - onChange: function () { }, // defaults to repainting. + onArrowDown: function () { }, // defaults to no action. + onArrowUp: function () { }, // defaults to no action. + onEnter: function () { }, // defaults to no action. + onTab: function () { }, // defaults to no action. startFrom: 0, options: [], element: null, @@ -213,11 +212,6 @@ function completely(config) { this.elementHint.style.color = config.hintColor; this.elementHint.onfocus = function () { this.element.focus(); }.bind(this); - /* - registerOnTextChange(this.element, function (text) { // note the function needs to be wrapped as API-users will define their onChange - rs.onChange(text); - });*/ - if (this.element.addEventListener) { this.element.removeEventListener("keydown", keyDownHandler); this.element.addEventListener("keydown", keyDownHandler, false); @@ -243,12 +237,13 @@ function completely(config) { if (this.elementHint) { this.elementHint.remove(); this.elementHint = null; + dropDownController.hide(); + this.element.style.zIndex = this.elementStyle.zIndex; + this.element.style.position = this.elementStyle.position; + this.element.style.backgroundColor = this.elementStyle.backgroundColor; + this.element.style.borderColor = this.elementStyle.borderColor; } - dropDownController.hide(); - this.element.style.zIndex = this.elementStyle.zIndex; - this.element.style.position = this.elementStyle.position; - this.element.style.backgroundColor = this.elementStyle.backgroundColor; - this.element.style.borderColor = this.elementStyle.borderColor; + }, repaint: function (element) { var text = element.innerText; @@ -270,7 +265,6 @@ function completely(config) { break; } } - // moving the dropDown and refreshing it. dropDown.style.left = calculateWidthForText(leftSide) + 'px'; dropDownController.refresh(token, this.options); @@ -284,7 +278,7 @@ function completely(config) { var dropDownController = createDropDownController(dropDown, rs); var keyDownHandler = function (e) { - console.log("Keydown:" + e.keyCode); + //console.log("Keydown:" + e.keyCode); e = e || window.event; var keyCode = e.keyCode; @@ -294,34 +288,30 @@ function completely(config) { if (keyCode == 34) { return; } // page down (do nothing); if (keyCode == 27) { //escape - dropDownController.hide(); - this.elementHint.innerText = this.element.innerText; // ensure that no hint is left. - this.element.focus(); + rs.hideDropDown(); + rs.element.focus(); + e.preventDefault(); + e.stopPropagation(); return; } - if (keyCode == 39 || keyCode == 35 || keyCode == 9) { // right, end, tab (autocomplete triggered) - if (keyCode == 9) { // for tabs we need to ensure that we override the default behaviour: move to the next focusable HTML-element - e.preventDefault(); - e.stopPropagation(); + if (keyCode == 39 || keyCode == 35 || keyCode == 9 || keyCode == 190) { // right, end, tab, '.' (autocomplete triggered) + if (keyCode == 9) { if (this.elementHint.innerText.length == 0) { - rs.onTab(); // tab was called with no action. - // users might want to re-enable its default behaviour or handle the call somehow. + rs.onTab(); } } - if (this.elementHint.innerText.length > 0) { // if there is a hint - dropDownController.hide(); + if (this.elementHint.innerText.length > 0) { // if there is a hint if (this.element.innerText != this.elementHint.innerText) { this.element.innerText = this.elementHint.innerText; + rs.hideDropDown(); setEndOfContenteditable(this.element); - var hasTextChanged = registerOnTextChangeOldValue != this.element.innerText - registerOnTextChangeOldValue = this.element.innerText; // <-- to avoid dropDown to appear again. - // for example imagine the array contains the following words: bee, beef, beetroot - // user has hit enter to get 'bee' it would be prompted with the dropDown again (as beef and beetroot also match) - if (hasTextChanged) { - rs.onChange(this.element.innerText); // <-- forcing it. + if (keyCode == 9) { + rs.element.focus(); + e.preventDefault(); + e.stopPropagation(); } - } + } } return; } @@ -334,24 +324,17 @@ function completely(config) { dropDownController.hide(); if (wasDropDownHidden) { - this.elementHint.innerText = this.element.innerText; // ensure that no hint is left. - this.element.focus(); + rs.hideDropDown(); + rs.element.focus(); rs.onEnter(); return; } this.element.innerText = this.elementHint.innerText; - var hasTextChanged = registerOnTextChangeOldValue != this.element.innerText - registerOnTextChangeOldValue = this.element.innerText; // <-- to avoid dropDown to appear again. - // for example imagine the array contains the following words: bee, beef, beetroot - // user has hit enter to get 'bee' it would be prompted with the dropDown again (as beef and beetroot also match) - if (hasTextChanged) { - rs.onChange(this.element.innerText); // <-- forcing it. - } + rs.hideDropDown(); + setEndOfContenteditable(this.element); e.preventDefault(); e.stopPropagation(); - setEndOfContenteditable(this.element); - } return; } @@ -378,51 +361,18 @@ function completely(config) { var onBlurHandler = function (e) { rs.hideDropDown(); + //console.log("Lost focus."); }.bind(rs); dropDownController.onmouseselection = function (text, rs) { - rs.element.innerText = rs.elementHint.innerText = leftSide + text; - rs.hideDropDown(); + rs.element.innerText = rs.elementHint.innerText = leftSide + text; + rs.hideDropDown(); + window.setTimeout(function () { + rs.element.focus(); + setEndOfContenteditable(rs.element); + }, 1); }; - var registerOnTextChangeOldValue; - - /** - * Register a callback function to detect changes to the content of the input-type-text. - * Those changes are typically followed by user's action: a key-stroke event but sometimes it might be a mouse click. - **/ - var registerOnTextChange = function (txt, callback) { - registerOnTextChangeOldValue = txt.value; - var handler = function () { - var value = txt.value; - if (registerOnTextChangeOldValue !== value) { - registerOnTextChangeOldValue = value; - callback(value); - } - }; - - // - // For user's actions, we listen to both input events and key up events - // It appears that input events are not enough so we defensively listen to key up events too. - // source: http://help.dottoro.com/ljhxklln.php - // - // The cost of listening to three sources should be negligible as the handler will invoke callback function - // only if the text.value was effectively changed. - // - // - if (txt.addEventListener) { - txt.addEventListener("input", handler, false); - txt.addEventListener('keyup', handler, false); - txt.addEventListener('change', handler, false); - } else { // is this a fair assumption: that attachEvent will exist ? - txt.attachEvent('oninput', handler); // IE<9 - txt.attachEvent('onkeyup', handler); // IE<9 - txt.attachEvent('onchange', handler); // IE<9 - } - }; - - - return rs; } diff --git a/src/js/treemode.js b/src/js/treemode.js index 7f51116..299ef7a 100644 --- a/src/js/treemode.js +++ b/src/js/treemode.js @@ -8,7 +8,7 @@ var ContextMenu = require('./ContextMenu'); var Node = require('./Node'); var ModeSwitcher = require('./ModeSwitcher'); var util = require('./util'); -var Autocomplete = require('./autocomplete'); + // create a mixin with the functions for tree mode var treemode = {}; @@ -1102,19 +1102,20 @@ treemode._onKeyDown = function (event) { } if ((this.options.autocomplete) && (!handled)) { - if (!ctrlKey && !altKey && !metaKey) { + if (!ctrlKey && !altKey && !metaKey && (event.key.length == 1 || keynum == 8 || keynum == 46)) { handled = false; - if (event.target.className.indexOf("jsoneditor-field") < 0) { + if ((this.options.autocomplete.ApplyTo.indexOf('values') >= 0 && event.target.className.indexOf("jsoneditor-value") >= 0) || + (this.options.autocomplete.ApplyTo.indexOf('name') >= 0 && event.target.className.indexOf("jsoneditor-field") >= 0)) { var node = Node.getNodeFromTarget(event.target); - //if (event.target.innerText.startsWith('*')) { + if (this.options.autocomplete.ActivationChar == null || event.target.innerText.startsWith(this.options.autocomplete.ActivationChar)) { // Activate autocomplete setTimeout(function (hnode, element) { if (element.innerText.length > 0) - this.options.autocomplete.GetOptions(hnode, element, keynum); + this.options.autocomplete.Show(hnode, element); else this.options.autocomplete.Hide(); }.bind(this, node, event.target), 100); - //} + } } } }