{"version":3,"sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/webpack/bootstrap","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/./node_modules/process/browser.js","webpack://mermaid/(webpack)/buildin/module.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/defaultConfig.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer-v2.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/class/styles.js","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/er/styles.js","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/flowchart/styles.js","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/gantt/styles.js","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/git/styles.js","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/info/styles.js","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/pie/styles.js","webpack://mermaid/./src/diagrams/requirement/parser/requirementDiagram.jison","webpack://mermaid/./src/diagrams/requirement/requirementDb.js","webpack://mermaid/./src/diagrams/requirement/requirementMarkers.js","webpack://mermaid/./src/diagrams/requirement/requirementRenderer.js","webpack://mermaid/./src/diagrams/requirement/styles.js","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/styles.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/state/styles.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/diagrams/user-journey/styles.js","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/styles.js","webpack://mermaid/./src/themes/index.js","webpack://mermaid/./src/themes/theme-base.js","webpack://mermaid/./src/themes/theme-dark.js","webpack://mermaid/./src/themes/theme-default.js","webpack://mermaid/./src/themes/theme-forest.js","webpack://mermaid/./src/themes/theme-helpers.js","webpack://mermaid/./src/themes/theme-neutral.js","webpack://mermaid/./src/utils.js","webpack://mermaid/external \"@braintree/sanitize-url\"","webpack://mermaid/external \"d3\"","webpack://mermaid/external \"dagre\"","webpack://mermaid/external \"dagre-d3\"","webpack://mermaid/external \"dagre-d3/lib/label/add-html-label.js\"","webpack://mermaid/external \"dompurify\"","webpack://mermaid/external \"graphlib\"","webpack://mermaid/external \"khroma\"","webpack://mermaid/external \"moment-mini\"","webpack://mermaid/external \"stylis\""],"names":["defaultConfig","Object","freeze","config","siteConfig","assignWithDepth","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","sumOfDirectives","i","length","d","sanitize","theme","tmpConfigFromInitialize","themeVariables","getThemeVariables","setSiteConfig","conf","saveConfigFromInitilize","updateSiteConfig","getSiteConfig","setConfig","getConfig","options","keys","secure","forEach","key","log","debug","indexOf","addDirective","directive","fontFamily","push","reset","rect","parent","node","trace","id","shapeSvg","insert","attr","class","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","evaluate","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","diff","JSON","stringify","style","rx","ry","x","y","rectBox","intersect","point","intersectRect","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","clear","positionCluster","info","el","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","_vertexText","isTitle","vertexText","replace","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","j","tspan","setAttributeNS","textContent","trim","edgeLabels","terminalLabels","insertEdgeLabel","edge","labelElement","edgeLabel","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","setTerminalWidth","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","value","positionEdgeLabel","paths","path","updatedPath","originalPath","pos","utils","calcLabelPosition","calcTerminalLabelPosition","arrowTypeStart","arrowTypeEnd","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","warn","r","Q","R","q","res","_x","_y","cutPathAtIntersect","_points","boundryNode","points","lastPointOutside","isInside","inter","pointPresent","p","find","e","insertEdge","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","slice","unshift","toCluster","fromCluster","reverse","lineData","filter","Number","isNaN","curve","curveBasis","lineFunction","line","strokeClasses","thickness","pattern","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","recursiveRender","_elem","diagramtype","parentCluster","graphlib","json","write","dir","rankdir","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","o","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","sortNodesByHierarchy","positionNode","n","type","render","markers","insertMarkers","clearNodes","clearEdges","clearClusters","clearGraphlib","adjustClustersAndEdges","circle","ellipse","polygon","intersectCircle","intersectEllipse","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","removeEdge","extractor","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","sorter","result","assign","sorted","question","labelHelper","questionElem","insertPolygonShape","choice","domId","map","join","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","rectWithTitle","innerLine","text2","flat","title","textRows","titleBox","descr","stadium","subroutine","start","forkJoin","end","innerCircle","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","members","str","parsedInfo","parseMember","parsedText","displayText","lbl","cssStyle","classMethods","methods","diffX","note","fork","nodeElems","link","linkTarget","tooltip","haveCallback","_classes","element","themeCSS","maxTextSize","logLevel","securityLevel","startOnLoad","deterministicIds","deterministicIDSeed","diagramPadding","nodeSpacing","rankSpacing","useMaxWidth","defaultRenderer","sequence","activationWidth","diagramMarginX","diagramMarginY","actorMargin","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","forceMenus","bottomMarginAdj","rightAngles","showSequenceNumbers","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","wrap","wrapPadding","labelBoxWidth","labelBoxHeight","messageFont","fontSize","fontWeight","noteFont","actorFont","gantt","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","sectionFontSize","numberSectionStyles","axisFormat","topAxis","useWidth","journey","leftMargin","taskFontSize","taskFontFamily","taskMargin","textPlacement","actorColours","sectionFills","sectionColours","git","dividerMargin","sizeUnit","textHeight","titleShift","forkWidth","forkHeight","miniPadding","fontSizeFactor","labelHeight","edgeLengthFactor","compositTitleSize","radius","er","layoutDirection","minEntityWidth","minEntityHeight","entityPadding","stroke","fill","pie","requirement","rect_fill","text_color","rect_border_size","rect_border_color","rect_min_width","rect_min_height","rect_padding","line_height","keyify","obj","prefix","reduce","configKeys","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","parseDirective","statement","context","mermaidAPI","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","cleanupLabel","substr","setCssClass","ids","match","setTooltip","configApi","common","sanitizeText","setLink","linkStr","target","formatUrl","setClickEvent","functionName","functionArgs","setClickFunc","elemId","argList","item","charAt","querySelector","addEventListener","runFunc","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","transition","duration","scrollX","right","scrollY","body","scrollTop","classed","direction","getDirection","setDirection","parser","yy","classDb","idCache","addClasses","g","vertex","cssClassStr","styles","radious","_shape","addRelations","cnt","defaultStyle","defaultLabelStyle","edgeData","arrowhead","relationTitle1","relationTitle2","getArrowMarker","type1","type2","getStylesFromArray","interpolate","interpolateToCurve","curveLinear","defaultInterpolate","arrowheadStyle","labelpos","labelType","lineBreakRegex","getGraphId","setConf","cnf","drawOld","diagram","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","configureSvgSize","vBox","draw","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","marker","getStyles","nodeBorder","classText","mainBkg","lineColor","edgeCount","getRelationType","l","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","classInfo","isFirst","titleText2","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","rectWidth","childNodes","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","visibility","fieldType","parseGenericTypes","fieldName","classifier","parseClassifier","err","methodName","parameters","returnType","memberText","methodStart","methodEnd","firstChar","textEl","txt","tSpan","cleanedText","getRows","breakToPlaceholder","removeScript","rs","idx","sanitizeMore","level","placeholderToBreak","console","DOMPurify","hasBreaks","test","splitBreaks","getUrl","useAbsolute","val","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","attributes","getEntities","addAttributes","entityName","attribs","entity","attributeName","addRelationship","entA","rolA","entB","rSpec","rel","entityA","roleA","entityB","relSpec","getRelationships","setTitle","getTitle","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","drawAttributes","groupNode","entityTextNode","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","hasKeyType","hasComment","maxTypeWidth","maxNameWidth","maxKeyWidth","maxCommentWidth","cumulativeHeight","attrNum","attrPrefix","nodeWidth","nodeHeight","typeNode","attributeType","nameNode","attributeNode","tn","nn","typeBBox","nameBBox","max","attributeKeyType","keyTypeNode","kn","keyTypeBBox","attributeComment","commentNode","cn","commentNodeBBox","bBox","spareWidth","heightOffset","attribStyle","alignY","typeRect","parseFloat","drawEntities","svgNode","firstOne","textId","textNode","entityWidth","entityHeight","rectNode","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","erParser","directed","edgesep","firstEntity","tertiaryColor","dagreD3","addToRender","addToRenderV2","addShape","vertexCounter","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","version","veritceKeys","addVertex","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","updateLink","isSubstringInArray","textStyles","newStyle1","newStyle2","setClass","setClickFun","getTooltip","getVertices","getEdges","ver","setGen","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","nodeList","stmt","hasOwnProperty","apply","nl","subGraph","makeUniq","getPosForId","secCount","posCrossRef","indexNodes2","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","countChar","char","destructEndLink","dots","destructLink","_startStr","startInfo","exists","allSgs","sg","allSubgraphs","lex","addVertices","vert","svgId","classStr","parentNode","flowDb","addEdges","linkIdCnt","defaultStyles","linkIdBase","linkId","linkNameStart","linkNameEnd","minlen","flow","subG","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","yPos","cluster","te","classList","add","nodeTextColor","textColor","titleColor","arrowheadColor","edgeLabelBackground","clusterBkg","clusterBorder","border2","dateFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","getDateFormat","setExcludes","toLowerCase","getExcludes","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","isoWeekday","format","checkTaskDates","task","manualEndTime","startTime","moment","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","order","addTaskOrg","newTask","description","compileTask","allProcessed","_linkStr","sanitizeUrl","pushFun","open","callbackFunction","matchFound","t","regex","RegExp","shift","ganttDb","getElementById","parentElement","offsetWidth","taskArray","timeScale","scaleTime","domain","rangeRound","categories","catsUnfiltered","checkUnique","taskCompare","b","taskA","taskB","makeGant","pageWidth","pageHeight","gap","colorScale","scaleLinear","range","interpolateHcl","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","bottomXAxis","axisBottom","tickSize","tickFormat","timeFormat","call","topXAxis","axisTop","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","word","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","ganttFontSize","gridColor","todayLineColor","taskTextDarkColor","taskTextClickableColor","taskTextColor","taskBkgColor","taskBorderColor","taskTextOutsideColor","activeTaskBkgColor","activeTaskBorderColor","doneTaskBorderColor","doneTaskBkgColor","critBorderColor","critBkgColor","commits","branches","master","curBranch","seq","getId","random","isfastforwardable","currentCommit","otherCommit","isReachableFrom","currentSeq","otherSeq","uniqBy","fn","recordMap","create","out","setOptions","rawOptString","message","getOptions","commit","msg","branch","merge","otherBranch","checkout","commitRef","ref","parentCount","parseInt","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","c","newCommit","nextCommit","prettyPrint","getCommitsArray","getBranchesAsObjArray","branchArr","getBranches","getCommits","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","branchColors","nodeRadius","nodeLabel","apiConfig","svgCreateDefs","svgDrawLine","colorIdx","color","lineGen","round","getElementCoords","coords","ctm","getCTM","xn","yn","svgDrawLineForCommits","fromId","toId","fromBbox","toBbox","lineStart","lineEnd","cloneNode","selector","renderCommitHistory","commitid","numCommits","size","branchName","renderLines","branchColor","lineDrawn","gitGraphParser","db","setMessage","getMessage","setInfo","inf","getInfo","infoParser","showData","setShowData","toggle","getShowData","cleanupValue","pieParser","pieData","margin","legendRectSize","legendSpacing","sum","myGeneratedColors","pie1","pie2","pie3","pie4","pie5","pie6","pie7","pie8","pie9","pie10","pie11","pie12","scaleOrdinal","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","pieStrokeColor","pieStrokeWidth","pieOpacity","pieTitleTextSize","pieTitleTextColor","pieSectionTextColor","pieSectionTextSize","pieLegendTextColor","pieLegendTextSize","latestRequirement","requirements","latestElement","elements","RequirementType","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","RiskLevel","LOW_RISK","MED_RISK","HIGH_RISK","VerifyType","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","Relationships","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","addRequirement","risk","verifyMethod","getRequirements","setNewReqId","setNewReqText","setNewReqRisk","setNewReqVerifyMethod","addElement","docRef","getElements","setNewElementType","setNewElementDocRef","src","dst","req","ReqMarkers","ARROW","insertLineEndings","containsNode","newRectNode","newTitleNode","txts","textStr","yPadding","linePadding","totalY","titleNode","newBodyNode","yStart","currentRow","charLimit","wrappedTxts","currentTextLen","firstPart","lastStr","addEdgeLabel","elementString","requirementDb","drawReqs","reqs","reqName","titleNodeInfo","bodyNode","drawElements","els","elName","relationColor","requirementBackground","requirementBorderColor","requirementBorderSize","requirementTextColor","relationLabelBackground","relationLabelColor","prevActor","actors","messages","notes","titleWrapped","sequenceNumbersEnabled","wrapEnabled","addActor","old","autoWrap","links","properties","actorCnt","rectData","nextActor","activationCount","part","LINETYPE","ACTIVE_START","from","actor","ACTIVE_END","addMessage","idFrom","idTo","answer","to","addSignal","messageType","Error","token","loc","first_line","last_line","first_column","last_column","expected","getMessages","getActors","getActor","getActorKeys","getTitleWrapped","enableSequenceNumbers","setWrap","wrapSetting","parseMessage","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","SOLID_POINT","DOTTED_POINT","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","addLinks","actorId","insertLinks","addALink","sep","addProperties","insertProperties","addDetails","innerHTML","details","getActorProperty","titleWrap","param","signalType","loopText","optText","altText","parText","sequenceDb","startx","stopx","starty","stopy","sequenceItems","activations","models","getHeight","loops","it","acc","actorModel","addLoop","loopModel","msgModel","noteModel","lastActor","lastLoop","lastMessage","lastNote","init","updateVal","updateBounds","_self","updateFn","updateItemBounds","_startx","_stopx","_starty","_stopy","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","createLoop","newLoop","endLoop","pop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","drawNote","getNoteRect","rectElem","drawRect","textObj","getTextObj","anchor","textMargin","valign","textElem","drawText","curr","drawMessage","sequenceIndex","lines","textDims","calculateTextDimensions","totalOffset","lineStarty","fromBounds","toBounds","drawActors","actorKeys","prevWidth","prevMargin","drawActor","drawActorsPopup","minMenuWidth","getRequiredPopupWidth","menuDimensions","drawPopup","activationBounds","actorObj","adjustLoopHeightForWrap","loopWidths","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","textConf","wrapLabel","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","insertComputerIcon","insertDatabaseIcon","insertClockIcon","calculateLoopBounds","insertArrowHead","insertArrowCrossHead","insertArrowFilledHead","insertSequenceNumber","activeEnd","activationData","drawActivation","drawLoop","drawBackgroundRect","includes","fixLifeLineHeights","requiredBoxSize","box","actorLines","boxHeight","boxWidth","extraVertForTitle","isNote","isMessage","textFont","wrappedMessage","messageDimensions","messageWidth","requiredPopupWidth","labelDimensions","labelWidth","actorToMessageWidth","prop","actDims","actorKey","actorWidth","buildNoteModel","shouldWrap","textDimensions","buildMessageModel","process","fromIdx","toIdx","allBounds","boundedWidth","msgDims","stack","current","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","toAdd","enabled","stk","actorBorder","actorBkg","actorTextColor","actorLineColor","signalColor","sequenceNumberColor","signalTextColor","labelBoxBorderColor","labelBoxBkgColor","labelTextColor","loopTextColor","noteBorderColor","noteBkgColor","noteTextColor","activationBkgColor","activationBorderColor","textAttrs","displayValue","popupMenu","popdownMenu","actorClass","menuWidth","linkY","linkElem","sanitizedLink","_drawMenuItemTextCandidateFunc","drawImage","imageElem","drawEmbeddedImage","popid","textData","prevTextHeight","textElems","yfunc","dominantBaseline","alignmentBaseline","span","drawLabel","txtObject","genPoints","cut","drawActorTypeParticipant","center","boxpluslineGroup","cssclass","iconSrc","_drawTextCandidateFunc","drawActorTypeActor","actElem","drawLoopLine","sectionHeight","lower","defs","byText","content","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","set","get","drawStartState","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleWidth","graphBox","doc","lineY","drawEndState","drawForkJoinState","parentId","tmp","nText","_drawLongText","_text","tHeight","textBounds","drawState","stateInfo","stateBox","stateDb","titleRows","boundstmp","heightAdj","clone","rootDoc","setRootDoc","getRootDoc","docTranslator","first","state1","state2","currentDoc","newNode","generateId","docNode","getRootDocV2","extract","_doc","addState","newDoc","states","documents","root","currentDocument","startCnt","endCnt","addDescription","des","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","getDir","nodeData","noteData","groupData","position","arrowType","setupDoc","startId","endId","defaultDir","transformationLog","renderDoc","svgWidth","getLabelWidth","edgeFreeDoc","ranker","nodeSep","sub","boxBounds","noteDef","nodeCount","svgElem","dividers","pWidth","pShift","getAttribute","transitionColor","stateLabelColor","background","labelBackgroundColor","transitionLabelColor","tertiaryTextColor","specialStateColor","innerEndBackground","compositeBackground","stateBkg","stateBorder","compositeTitleBackground","altBackground","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","faceColor","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","actor0","actor1","actor2","actor3","actor4","actor5","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","labelMargin","taskCount","graphics","LEVELS","fatal","setLogLevel","bind","time","arguments","mermaid","sequenceConfig","callback","Node","ganttConfig","idGeneratior","initIdGeneratior","next","entityDecode","detectInit","svgCode","parseError","initialize","contentLoaded","graphInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","requirementParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","existingSvg","remove","userStyles","altFontFamily","flowRenderer","stylis","serialize","compile","rules","style1","createElement","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","classRendererV2","stateRenderer","stateRendererV2","infoRenderer","pkg","pieRenderer","erRenderer","journeyRenderer","requirementRenderer","errorRenderer","currentDirective","args","handleDirective","directiveSanitizer","updateRendererConfigs","default","globalReset","themes","classDiagram","stateDiagram","calcThemeVariables","userOverRides","calcColors","errorBkgColor","errorTextColor","base","baseThemeVariables","dark","darkThemeVariables","defaultThemeVariables","forest","forestThemeVariables","neutral","neutralThemeVariables","Theme","darkMode","primaryColor","primaryTextColor","secondaryColor","adjust","primaryBorderColor","mkBorder","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","invert","nodeBkg","defaultLinkColor","darken","lighten","taskTextLightColor","compositeBorder","overrides","updateColors","userOverrides","calculate","secondBkg","mainContrastColor","darkTextColor","border1","rgba","labelBackground","labelColor","col","contrast","critical","d3CurveTypes","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","directiveWithoutOpen","anyComment","inits","detectDirective","results","commentWithoutDirectives","source","lastIndex","memoize","resolver","cache","defaultCurve","curveName","toUpperCase","arrPaths","fnName","params","distance","pow","traverseEdge","prevPoint","totalDistance","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos","terminalMarkerSize","makeid","characters","charactersLength","floor","clobber","drawSimpleText","joinWith","words","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","fontFamilies","dims","cheight","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","Map","deterministic","seed","now","decoder","escape","unescape","arg"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;;;;AClFA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;CAGA;;AAEO,IAAMA,aAAa,GAAGC,MAAM,CAACC,MAAP,CAAcC,sDAAd,CAAtB;AAEP,IAAIC,UAAU,GAAGC,8DAAe,CAAC,EAAD,EAAKL,aAAL,CAAhC;AACA,IAAIM,oBAAJ;AACA,IAAIC,UAAU,GAAG,EAAjB;AACA,IAAIC,aAAa,GAAGH,8DAAe,CAAC,EAAD,EAAKL,aAAL,CAAnC;AAEO,IAAMS,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD,EAAUC,WAAV,EAA0B;AAC3D;AACA,MAAIC,GAAG,GAAGP,8DAAe,CAAC,EAAD,EAAKK,OAAL,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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMtK,MAAM,GAAG;AACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEe,OAAK,EAAE,SAfM;AAgBbE,gBAAc,EAAEF,+CAAK,CAAC,SAAD,CAAL,CAAiBG,iBAAjB,EAhBH;AAiBbka,UAAQ,EAAE9X,SAjBG;;AAkBb;AACA+X,aAAW,EAAE,KAnBA;;AAqBb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEjZ,YAAU,EAAE,6CA7BC;;AA+Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEkZ,UAAQ,EAAE,CA7CG;;AA+Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,eAAa,EAAE,QA1DF;;AA4Db;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,aAAW,EAAE,IAnEA;;AAqEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEhO,qBAAmB,EAAE,KAjFR;;AAmFb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEE5L,QAAM,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,aAA5B,EAA2C,aAA3C,CA7FK;;AA+Fb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE6Z,kBAAgB,EAAE,KAzGL;;AA2Gb;AACF;AACA;AACA;AACEC,qBAAmB,EAAEpY,SA/GR;;AAiHb;AACF;AACA;AACEI,WAAS,EAAE;AACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIiY,kBAAc,EAAE,CAZP;;AAcT;AACJ;AACA;AACA;AACA;AACA;AACA;AACIhY,cAAU,EAAE,IArBH;;AAuBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIiY,eAAW,EAAE,EAlCJ;;AAoCT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,eAAW,EAAE,EA/CJ;;AAiDT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI/O,SAAK,EAAE,OA1DE;AA2DT;AACA;AACA3I,WAAO,EAAE,EA7DA;;AA+DT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI2X,eAAW,EAAE,IA3EJ;;AA6ET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE;AA1FR,GApHE;;AAiNb;AACF;AACA;AACEC,UAAQ,EAAE;AACR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,EATT;;AAWR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EAlBR;;AAoBR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EA3BR;;AA6BR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,eAAW,EAAE,EArCL;;AAuCR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACInY,SAAK,EAAE,GA/CC;;AAiDR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,UAAM,EAAE,EAzDA;;AA2DR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACImY,aAAS,EAAE,EAnEH;;AAqER;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,CA7EP;;AA+ER;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,cAAU,EAAE,EAvFJ;;AAyFR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,EAjGP;;AAmGR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,QA3GN;;AA6GR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,IArHN;;AAuHR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,cAAU,EAAE,KAhIJ;;AAkIR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,CA7IT;;AA+IR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACId,eAAW,EAAE,IA1JL;;AA4JR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIe,eAAW,EAAE,KAvKL;;AAyKR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,uBAAmB,EAAE,KAjLb;;AAmLR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,EA3LP;;AA6LR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,2BArMT;;AAuMR;AACJ;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,GA7MT;;AA+MR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,EAvNN;;AAyNR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,4CAjOR;;AAmOR;AACJ;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,GAzOR;;AA2OR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,aAAS,EAAE,QAnPH;;AAqPR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,EA7PT;;AA+PR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,qBAAiB,EAAE,4CAvQX;;AAyQR;AACJ;AACA;AACA;AACA;AACA;AACIC,qBAAiB,EAAE,GA/QX;;AAiRR;AACJ;AACA;AACA;AACA;AACA;AACIC,QAAI,EAAE,KAvRE;;AAyRR;AACJ;AACA;AACA;AACA;AACA;AACIC,eAAW,EAAE,EA/RL;;AAiSR;AACJ;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,EAvSP;;AAySR;AACJ;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EA/SR;AAiTRC,eAAW,EAAE,uBAAY;AACvB,aAAO;AACLzb,kBAAU,EAAE,KAAKmb,iBADZ;AAELO,gBAAQ,EAAE,KAAKR,eAFV;AAGLS,kBAAU,EAAE,KAAKP;AAHZ,OAAP;AAKD,KAvTO;AAwTRQ,YAAQ,EAAE,oBAAY;AACpB,aAAO;AACL5b,kBAAU,EAAE,KAAK+a,cADZ;AAELW,gBAAQ,EAAE,KAAKZ,YAFV;AAGLa,kBAAU,EAAE,KAAKX;AAHZ,OAAP;AAKD,KA9TO;AA+TRa,aAAS,EAAE,qBAAY;AACrB,aAAO;AACL7b,kBAAU,EAAE,KAAK4a,eADZ;AAELc,gBAAQ,EAAE,KAAKf,aAFV;AAGLgB,kBAAU,EAAE,KAAKd;AAHZ,OAAP;AAKD;AArUO,GApNG;;AA4hBb;AACF;AACA;AACEiB,OAAK,EAAE;AACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EAXX;;AAaL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,aAAS,EAAE,EArBN;;AAuBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,UAAM,EAAE,CA/BH;;AAiCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,cAAU,EAAE,EAzCP;;AA2CL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,EAnDT;;AAqDL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,eAAW,EAAE,EA7DR;;AA+DL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,wBAAoB,EAAE,EAvEjB;;AAyEL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIX,YAAQ,EAAE,EAjFL;;AAmFL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIY,mBAAe,EAAE,EA3FZ;;AA6FL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,uBAAmB,EAAE,CArGhB;;AAuGL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,cAAU,EAAE,UAlHP;;AAoHL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI9C,eAAW,EAAE,IAhIR;;AAkIL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI+C,WAAO,EAAE,KA5IJ;AA8ILC,YAAQ,EAAExb;AA9IL,GA/hBM;;AAgrBb;AACF;AACA;AACEyb,SAAO,EAAE;AACP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI7C,kBAAc,EAAE,EATT;;AAWP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EAnBT;;AAqBP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI6C,cAAU,EAAE,GA7BL;;AA+BP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI/a,SAAK,EAAE,GAvCA;;AAyCP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,UAAM,EAAE,EAjDD;;AAmDP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACImY,aAAS,EAAE,EA3DJ;;AA6DP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,CArER;;AAuEP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,cAAU,EAAE,EA/EL;;AAiFP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,EA5FR;;AA8FP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,QAtGP;;AAwGP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIG,mBAAe,EAAE,CAnHV;;AAqHP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACId,eAAW,EAAE,IAjIN;;AAmIP;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIe,eAAW,EAAE,KA9IN;AA+IPoC,gBAAY,EAAE,EA/IP;AAgJPC,kBAAc,EAAE,2BAhJT;AAiJPC,cAAU,EAAE,EAjJL;AAkJP;AACAlD,mBAAe,EAAE,EAnJV;AAqJP;AACAmD,iBAAa,EAAE,IAtJR;AAuJPC,gBAAY,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,SAAvB,EAAkC,SAAlC,EAA6C,SAA7C,EAAwD,SAAxD,CAvJP;AAyJPC,gBAAY,EAAE,CAAC,SAAD,EAAY,SAAZ,EAAuB,SAAvB,EAAkC,SAAlC,EAA6C,SAA7C,EAAwD,SAAxD,EAAmE,SAAnE,CAzJP;AA0JPC,kBAAc,EAAE,CAAC,MAAD;AA1JT,GAnrBI;AA+0Bbxc,OAAK,EAAE;AACLyK,uBAAmB,EAAE,KADhB;;AAGL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIsO,eAAW,EAAE,IAfR;;AAgBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE;AA7BZ,GA/0BM;AA82BbyD,KAAG,EAAE;AACHhS,uBAAmB,EAAE,KADlB;AAGHsR,YAAQ,EAAExb,SAHP;;AAKH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIwY,eAAW,EAAE;AAjBV,GA92BQ;AAi4BbvO,OAAK,EAAE;AACLkS,iBAAa,EAAE,EADV;AAELC,YAAQ,EAAE,CAFL;AAGLvb,WAAO,EAAE,CAHJ;AAILwb,cAAU,EAAE,EAJP;AAKLC,cAAU,EAAE,CAAC,EALR;AAMLrD,cAAU,EAAE,EANP;AAOLsD,aAAS,EAAE,EAPN;AAQLC,cAAU,EAAE,CARP;AASL;AACAC,eAAW,EAAE,CAVR;AAWL;AACA;AACAC,kBAAc,EAAE,IAbX;AAcLlC,YAAQ,EAAE,EAdL;AAeLmC,eAAW,EAAE,EAfR;AAgBLC,oBAAgB,EAAE,IAhBb;AAiBLC,qBAAiB,EAAE,EAjBd;AAkBLC,UAAM,EAAE,CAlBH;;AAmBL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACItE,eAAW,EAAE,IA/BR;;AAgCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE;AA7CZ,GAj4BM;;AAi7Bb;AACF;AACA;AACEsE,IAAE,EAAE;AACF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI1E,kBAAc,EAAE,EAZd;;AAcF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI2E,mBAAe,EAAE,IA3Bf;;AA6BF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,GAtCd;;AAwCF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,EAjDf;;AAmDF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,EA9Db;;AAgEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,UAAM,EAAE,MAxEN;;AA0EF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,QAAI,EAAE,UAlFJ;;AAoFF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI7C,YAAQ,EAAE,EA9FR;;AAgGF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIhC,eAAW,EAAE;AA7GX,GAp7BS;;AAoiCb;AACF;AACA;AACE8E,KAAG,EAAE;AACH9B,YAAQ,EAAExb,SADP;;AAGH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIwY,eAAW,EAAE;AAhBV,GAviCQ;;AA0jCb;AACF;AACA;AACE+E,aAAW,EAAE;AACX/B,YAAQ,EAAExb,SADC;;AAGX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIwY,eAAW,EAAE,IAhBF;AAkBXgF,aAAS,EAAE,SAlBA;AAmBXC,cAAU,EAAE,MAnBD;AAoBXC,oBAAgB,EAAE,OApBP;AAqBXC,qBAAiB,EAAE,MArBR;AAsBXC,kBAAc,EAAE,GAtBL;AAuBXC,mBAAe,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D,EAAUjlB,MAAV,EAAkBD,KAAlB,EAAyB7C,IAAI,CAAC0a,WAA9B,CAAhB,CApFsC,CAsFtC;;AACA,MAAM6N,IAAI,aAAMF,SAAS,CAAC9kB,CAAV,GAAcR,OAApB,cAA+BslB,SAAS,CAAC7kB,CAAV,GAAcT,OAA7C,cAAwDF,KAAxD,cAAiEC,MAAjE,CAAV;AACAnC,6CAAG,CAACC,KAAJ,mBAAqB2nB,IAArB;AACAR,SAAO,CAACrmB,IAAR,CAAa,SAAb,EAAwB6mB,IAAxB;AACD,CA1FM;AA4FQ;AACbX,SAAO,EAAPA,OADa;AAEbY,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACnPA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,4uCAA4uC;AACvvC,aAAa,yvBAAyvB;AACtwB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,iC;AACrB;AACA;AACA,e;AACA;AACA;AACA,wB;AACA;AACA;AACA,4B;AACA;AACA;AACA,wB;AACA;AACA;AACA,2CAA2C,0B;AAC3C;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA,mC;AACA;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW,8F;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW,6F;AACX;AACA;AACA,WAAW,8F;AACX;AACA;AACA,SAAS,+C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,2C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,kEAAkE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,mEAAmE,EAAE,QAAQ,sDAAsD,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,uBAAuB,oBAAoB,sMAAsM,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,kHAAkH,gFAAgF,GAAG,8CAA8C,8BAA8B,2BAA2B,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,UAAU,eAAe,wDAAwD,gBAAgB,UAAU,mHAAmH,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,gNAAgN,gBAAgB,wDAAwD,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,2BAA2B,4CAA4C,UAAU,EAAE,UAAU,gBAAgB,8CAA8C,EAAE,wDAAwD,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,8CAA8C,eAAe,UAAU,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,sBAAsB,2DAA2D,+CAA+C,6BAA6B,WAAW,GAAG,WAAW,EAAE,wBAAwB,yDAAyD,WAAW,8BAA8B,WAAW,8BAA8B,WAAW,iBAAiB,cAAc,gBAAgB,UAAU,4CAA4C,WAAW;AACh1F,iBAAiB,8FAA8F;AAC/G;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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CA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,kqBAAkqB;AAC7qB,aAAa,oWAAoW;AACjX;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;;AAEvE;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA,wB;AACA;AACA;AACA,sB;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB,e;AACvB;AACA;AACA,WAAW,kD;AACX;AACA;AACA,WAAW,8E;AACX;AACA;AACA,WAAW,8E;AACX;AACA;AACA,WAAW,0G;AACX;AACA;AACA,e;AACA;AACA;;AAEA,kBAAkB;AAClB,kEAAkE;;AAElE;AACA;AACA,qC;AACA;AACA;AACA,sC;AACA;AACA;AACA,qC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4C;AACA;AACA;AACA,wC;AACA;AACA;AACA,mC;AACA;AACA;AACA,iB;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,8B;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,qEAAqE,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,oCAAoC,uDAAuD,kDAAkD,8CAA8C,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,uEAAuE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,mCAAmC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,8BAA8B,UAAU,EAAE,0BAA0B,gBAAgB,UAAU,eAAe,0BAA0B,2BAA2B,UAAU,uEAAuE,UAAU;AAClkC,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,W;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,W;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,gGAAgG,2GAA2G,mCAAmC,cAAc,uCAAuC,aAAa;AACpb,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,UAAU,iDAAiD,YAAY;AACzO,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACjwBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAC3oB,OAAD;AAAA,+CAGNA,OAAO,CAAC8oB,OAHF,4BAIJ9oB,OAAO,CAAC4oB,UAJJ,6EASJ5oB,OAAO,CAAC4oB,UATJ,8EAcJ5oB,OAAO,CAAC4oB,UAdJ,4DAkBN5oB,OAAO,CAACm0B,aAlBF,yDAoBMn0B,OAAO,CAACm0B,aApBd,4GA2BFn0B,OAAO,CAAC+oB,SA3BN;AAAA,CAAlB;;AA+BeJ,wEAAf,E;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA,SAASzT,QAAT,CAAkBpU,MAAlB,EAA0Be,IAA1B,EAAgCd,IAAhC,EAAsC;AACpC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAM8C,CAAC,GAAG,CAACqD,CAAC,GAAGC,CAAL,IAAU,GAApB;AACA,MAAMe,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAEqC,CAAC,GAAG,CAAT;AAAYpC,KAAC,EAAE;AAAf,GADa,EAEb;AAAED,KAAC,EAAEqC,CAAL;AAAQpC,KAAC,EAAE,CAACoC,CAAD,GAAK;AAAhB,GAFa,EAGb;AAAErC,KAAC,EAAEqC,CAAC,GAAG,CAAT;AAAYpC,KAAC,EAAE,CAACoC;AAAhB,GAHa,EAIb;AAAErC,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE,CAACoC,CAAD,GAAK;AAAhB,GAJa,CAAf;AAMA,MAAMpE,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAASwE,CAAT,EAAYA,CAAZ,EAAeqE,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAASwU,OAAT,CAAiB5U,MAAjB,EAAyBe,IAAzB,EAA+Bd,IAA/B,EAAqC;AACnC,MAAM4U,CAAC,GAAG,CAAV;AACA,MAAM/M,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMoT,CAAC,GAAGhN,CAAC,GAAG+M,CAAd;AACA,MAAMhN,CAAC,GAAG9G,IAAI,CAACU,KAAL,GAAa,IAAIqT,CAA3B;AACA,MAAMjM,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAE2S,CAAL;AAAQ1S,KAAC,EAAE;AAAX,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAC,GAAGiN,CAAT;AAAY1S,KAAC,EAAE;AAAf,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAL;AAAQzF,KAAC,EAAE,CAAC0F,CAAD,GAAK;AAAhB,GAHa,EAIb;AAAE3F,KAAC,EAAE0F,CAAC,GAAGiN,CAAT;AAAY1S,KAAC,EAAE,CAAC0F;AAAhB,GAJa,EAKb;AAAE3F,KAAC,EAAE2S,CAAL;AAAQ1S,KAAC,EAAE,CAAC0F;AAAZ,GALa,EAMb;AAAE3F,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE,CAAC0F,CAAD,GAAK;AAAhB,GANa,CAAf;AAQA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAAS4U,mBAAT,CAA6BhV,MAA7B,EAAqCe,IAArC,EAA2Cd,IAA3C,EAAiD;AAC/C,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAE,CAAC2F,CAAD,GAAK,CAAV;AAAa1F,KAAC,EAAE;AAAhB,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAL;AAAQzF,KAAC,EAAE;AAAX,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAL;AAAQzF,KAAC,EAAE,CAAC0F;AAAZ,GAHa,EAIb;AAAE3F,KAAC,EAAE,CAAC2F,CAAD,GAAK,CAAV;AAAa1F,KAAC,EAAE,CAAC0F;AAAjB,GAJa,EAKb;AAAE3F,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE,CAAC0F,CAAD,GAAK;AAAhB,GALa,CAAf;AAOA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAAS6U,UAAT,CAAoBjV,MAApB,EAA4Be,IAA5B,EAAkCd,IAAlC,EAAwC;AACtC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAG,CAAC,CAAD,GAAK2F,CAAN,GAAW,CAAhB;AAAmB1F,KAAC,EAAE;AAAtB,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAC,GAAGC,CAAC,GAAG,CAAb;AAAgB1F,KAAC,EAAE;AAAnB,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAC,GAAI,IAAIC,CAAL,GAAU,CAAnB;AAAsB1F,KAAC,EAAE,CAAC0F;AAA1B,GAHa,EAIb;AAAE3F,KAAC,EAAE2F,CAAC,GAAG,CAAT;AAAY1F,KAAC,EAAE,CAAC0F;AAAhB,GAJa,CAAf;AAMA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAAS8U,SAAT,CAAmBlV,MAAnB,EAA2Be,IAA3B,EAAiCd,IAAjC,EAAuC;AACrC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAG,IAAI2F,CAAL,GAAU,CAAf;AAAkB1F,KAAC,EAAE;AAArB,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAC,GAAGC,CAAC,GAAG,CAAb;AAAgB1F,KAAC,EAAE;AAAnB,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAC,GAAI,IAAIC,CAAL,GAAU,CAAnB;AAAsB1F,KAAC,EAAE,CAAC0F;AAA1B,GAHa,EAIb;AAAE3F,KAAC,EAAE,CAAC2F,CAAD,GAAK,CAAV;AAAa1F,KAAC,EAAE,CAAC0F;AAAjB,GAJa,CAAf;AAMA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAAS+U,SAAT,CAAmBnV,MAAnB,EAA2Be,IAA3B,EAAiCd,IAAjC,EAAuC;AACrC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAG,CAAC,CAAD,GAAK2F,CAAN,GAAW,CAAhB;AAAmB1F,KAAC,EAAE;AAAtB,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAC,GAAI,IAAIC,CAAL,GAAU,CAAnB;AAAsB1F,KAAC,EAAE;AAAzB,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAC,GAAGC,CAAC,GAAG,CAAb;AAAgB1F,KAAC,EAAE,CAAC0F;AAApB,GAHa,EAIb;AAAE3F,KAAC,EAAE2F,CAAC,GAAG,CAAT;AAAY1F,KAAC,EAAE,CAAC0F;AAAhB,GAJa,CAAf;AAMA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAASgV,aAAT,CAAuBpV,MAAvB,EAA+Be,IAA/B,EAAqCd,IAArC,EAA2C;AACzC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAE2F,CAAC,GAAG,CAAT;AAAY1F,KAAC,EAAE;AAAf,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAC,GAAGC,CAAC,GAAG,CAAb;AAAgB1F,KAAC,EAAE;AAAnB,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAC,GAAI,IAAIC,CAAL,GAAU,CAAnB;AAAsB1F,KAAC,EAAE,CAAC0F;AAA1B,GAHa,EAIb;AAAE3F,KAAC,EAAG,CAAC,CAAD,GAAK2F,CAAN,GAAW,CAAhB;AAAmB1F,KAAC,EAAE,CAAC0F;AAAvB,GAJa,CAAf;AAMA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAASiV,oBAAT,CAA8BrV,MAA9B,EAAsCe,IAAtC,EAA4Cd,IAA5C,EAAkD;AAChD,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE;AAAX,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAC,GAAGC,CAAC,GAAG,CAAb;AAAgB1F,KAAC,EAAE;AAAnB,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAL;AAAQzF,KAAC,EAAE,CAAC0F,CAAD,GAAK;AAAhB,GAHa,EAIb;AAAE3F,KAAC,EAAE0F,CAAC,GAAGC,CAAC,GAAG,CAAb;AAAgB1F,KAAC,EAAE,CAAC0F;AAApB,GAJa,EAKb;AAAE3F,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE,CAAC0F;AAAZ,GALa,CAAf;AAOA,MAAM1H,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAAS2V,OAAT,CAAiB/V,MAAjB,EAAyBe,IAAzB,EAA+Bd,IAA/B,EAAqC;AACnC,MAAM6H,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmG,CAAC,GAAG9G,IAAI,CAACU,KAAL,GAAaqG,CAAC,GAAG,CAA3B;AAEA,MAAM1H,QAAQ,GAAGJ,MAAM,CACpBK,MADc,CACP,MADO,EACC,cADD,EAEdC,IAFc,CAET,IAFS,EAEHwH,CAAC,GAAG,CAFD,EAGdxH,IAHc,CAGT,IAHS,EAGHwH,CAAC,GAAG,CAHD,EAIdxH,IAJc,CAIT,GAJS,EAIJ,CAACuH,CAAD,GAAK,CAJD,EAKdvH,IALc,CAKT,GALS,EAKJ,CAACwH,CAAD,GAAK,CALD,EAMdxH,IANc,CAMT,OANS,EAMAuH,CANA,EAOdvH,IAPc,CAOT,QAPS,EAOCwH,CAPD,CAAjB;;AASA7H,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkBvC,IAAlB,CAAuBE,IAAvB,EAA6BsC,KAA7B,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAAS4V,UAAT,CAAoBhW,MAApB,EAA4Be,IAA5B,EAAkCd,IAAlC,EAAwC;AACtC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMqG,CAAC,GAAG/G,IAAI,CAACW,MAAf;AACA,MAAMmH,MAAM,GAAG,CACb;AAAE1G,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE;AAAX,GADa,EAEb;AAAED,KAAC,EAAE0F,CAAL;AAAQzF,KAAC,EAAE;AAAX,GAFa,EAGb;AAAED,KAAC,EAAE0F,CAAL;AAAQzF,KAAC,EAAE,CAAC0F;AAAZ,GAHa,EAIb;AAAE3F,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE,CAAC0F;AAAZ,GAJa,EAKb;AAAE3F,KAAC,EAAE,CAAL;AAAQC,KAAC,EAAE;AAAX,GALa,EAMb;AAAED,KAAC,EAAE,CAAC,CAAN;AAASC,KAAC,EAAE;AAAZ,GANa,EAOb;AAAED,KAAC,EAAE0F,CAAC,GAAG,CAAT;AAAYzF,KAAC,EAAE;AAAf,GAPa,EAQb;AAAED,KAAC,EAAE0F,CAAC,GAAG,CAAT;AAAYzF,KAAC,EAAE,CAAC0F;AAAhB,GARa,EASb;AAAE3F,KAAC,EAAE,CAAC,CAAN;AAASC,KAAC,EAAE,CAAC0F;AAAb,GATa,EAUb;AAAE3F,KAAC,EAAE,CAAC,CAAN;AAASC,KAAC,EAAE;AAAZ,GAVa,CAAf;AAYA,MAAMhC,QAAQ,GAAGmU,kBAAkB,CAACvU,MAAD,EAAS6H,CAAT,EAAYC,CAAZ,EAAee,MAAf,CAAnC;;AACA5I,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,WAAO+wB,+CAAO,CAAChxB,SAAR,CAAkB2L,OAAlB,CAA0BhO,IAA1B,EAAgC4I,MAAhC,EAAwCtG,KAAxC,CAAP;AACD,GAFD;;AAGA,SAAOnC,QAAP;AACD;;AAED,SAASkV,QAAT,CAAkBtV,MAAlB,EAA0Be,IAA1B,EAAgCd,IAAhC,EAAsC;AACpC,MAAM4H,CAAC,GAAG9G,IAAI,CAACU,KAAf;AACA,MAAMQ,EAAE,GAAG4F,CAAC,GAAG,CAAf;AACA,MAAM3F,EAAE,GAAGD,EAAE,IAAI,MAAM4F,CAAC,GAAG,EAAd,CAAb;AACA,MAAMC,CAAC,GAAG/G,IAAI,CAACW,MAAL,GAAcQ,EAAxB;AAEA,MAAMiB,KAAK,GACT,SACAjB,EADA,GAEA,KAFA,GAGAD,EAHA,GAIA,GAJA,GAKAC,EALA,GAMA,SANA,GAOA2F,CAPA,GAQA,OARA,GASA5F,EATA,GAUA,GAVA,GAWAC,EAXA,GAYA,SAZA,GAaA,CAAC2F,CAbD,GAcA,SAdA,GAeAC,CAfA,GAgBA,KAhBA,GAiBA7F,EAjBA,GAkBA,GAlBA,GAmBAC,EAnBA,GAoBA,SApBA,GAqBA2F,CArBA,GAsBA,SAtBA,GAuBA,CAACC,CAxBH;AA0BA,MAAM1H,QAAQ,GAAGJ,MAAM,CACpBM,IADc,CACT,gBADS,EACS4B,EADT,EAEd7B,MAFc,CAEP,MAFO,EAEC,cAFD,EAGdC,IAHc,CAGT,GAHS,EAGJ6C,KAHI,EAId7C,IAJc,CAIT,WAJS,EAII,eAAe,CAACuH,CAAD,GAAK,CAApB,GAAwB,GAAxB,GAA8B,EAAEC,CAAC,GAAG,CAAJ,GAAQ5F,EAAV,CAA9B,GAA8C,GAJlD,CAAjB;;AAMAjC,MAAI,CAACqC,SAAL,GAAiB,UAAUC,KAAV,EAAiB;AAChC,QAAM2E,GAAG,GAAGosB,+CAAO,CAAChxB,SAAR,CAAkBvC,IAAlB,CAAuBE,IAAvB,EAA6BsC,KAA7B,CAAZ;AACA,QAAMJ,CAAC,GAAG+E,GAAG,CAAC/E,CAAJ,GAAQlC,IAAI,CAACkC,CAAvB;;AAEA,QACEF,EAAE,IAAI,CAAN,KACCyF,IAAI,CAACC,GAAL,CAASxF,CAAT,IAAclC,IAAI,CAACwB,KAAL,GAAa,CAA3B,IACEiG,IAAI,CAACC,GAAL,CAASxF,CAAT,KAAelC,IAAI,CAACwB,KAAL,GAAa,CAA5B,IAAiCiG,IAAI,CAACC,GAAL,CAAST,GAAG,CAAC9E,CAAJ,GAAQnC,IAAI,CAACmC,CAAtB,IAA2BnC,IAAI,CAACyB,MAAL,GAAc,CAAd,GAAkBQ,EAFjF,CADF,EAIE;AACA;AACA;AACA,UAAIE,CAAC,GAAGF,EAAE,GAAGA,EAAL,IAAW,IAAKC,CAAC,GAAGA,CAAL,IAAWF,EAAE,GAAGA,EAAhB,CAAf,CAAR;AACA,UAAIG,CAAC,IAAI,CAAT,EAAYA,CAAC,GAAGsF,IAAI,CAAC+G,IAAL,CAAUrM,CAAV,CAAJ;AACZA,OAAC,GAAGF,EAAE,GAAGE,CAAT;AACA,UAAIG,KAAK,CAACH,CAAN,GAAUnC,IAAI,CAACmC,CAAf,GAAmB,CAAvB,EAA0BA,CAAC,GAAG,CAACA,CAAL;AAE1B8E,SAAG,CAAC9E,CAAJ,IAASA,CAAT;AACD;;AAED,WAAO8E,GAAP;AACD,GApBD;;AAsBA,SAAO9G,QAAP;AACD;;AAEM,SAASmzB,WAAT,CAAqBhmB,MAArB,EAA6B;AAClCA,QAAM,CAACxK,MAAP,GAAgBqR,QAAhB,GAA2BA,QAA3B;AACA7G,QAAM,CAACxK,MAAP,GAAgB6R,OAAhB,GAA0BA,OAA1B;AACArH,QAAM,CAACxK,MAAP,GAAgBgT,OAAhB,GAA0BA,OAA1B;AACAxI,QAAM,CAACxK,MAAP,GAAgBiT,UAAhB,GAA6BA,UAA7B;AACAzI,QAAM,CAACxK,MAAP,GAAgBuS,QAAhB,GAA2BA,QAA3B,CALkC,CAOlC;;AACA/H,QAAM,CAACxK,MAAP,GAAgBiS,mBAAhB,GAAsCA,mBAAtC,CARkC,CAUlC;;AACAzH,QAAM,CAACxK,MAAP,GAAgBkS,UAAhB,GAA6BA,UAA7B,CAXkC,CAalC;;AACA1H,QAAM,CAACxK,MAAP,GAAgBmS,SAAhB,GAA4BA,SAA5B,CAdkC,CAgBlC;;AACA3H,QAAM,CAACxK,MAAP,GAAgBoS,SAAhB,GAA4BA,SAA5B,CAjBkC,CAmBlC;;AACA5H,QAAM,CAACxK,MAAP,GAAgBqS,aAAhB,GAAgCA,aAAhC,CApBkC,CAsBlC;;AACA7H,QAAM,CAACxK,MAAP,GAAgBsS,oBAAhB,GAAuCA,oBAAvC;AACD;AAEM,SAASme,aAAT,CAAuBC,QAAvB,EAAiC;AACtCA,UAAQ,CAAC;AAAErf,YAAQ,EAARA;AAAF,GAAD,CAAR;AACAqf,UAAQ,CAAC;AAAE7e,WAAO,EAAPA;AAAF,GAAD,CAAR;AACA6e,UAAQ,CAAC;AAAE1d,WAAO,EAAPA;AAAF,GAAD,CAAR;AACA0d,UAAQ,CAAC;AAAEzd,cAAU,EAAVA;AAAF,GAAD,CAAR;AACAyd,UAAQ,CAAC;AAAEne,YAAQ,EAARA;AAAF,GAAD,CAAR,CALsC,CAOtC;;AACAme,UAAQ,CAAC;AAAEze,uBAAmB,EAAnBA;AAAF,GAAD,CAAR,CARsC,CAUtC;;AACAye,UAAQ,CAAC;AAAExe,cAAU,EAAVA;AAAF,GAAD,CAAR,CAXsC,CAatC;;AACAwe,UAAQ,CAAC;AAAEve,aAAS,EAATA;AAAF,GAAD,CAAR,CAdsC,CAgBtC;;AACAue,UAAQ,CAAC;AAAEte,aAAS,EAATA;AAAF,GAAD,CAAR,CAjBsC,CAmBtC;;AACAse,UAAQ,CAAC;AAAEre,iBAAa,EAAbA;AAAF,GAAD,CAAR,CApBsC,CAsBtC;;AACAqe,UAAQ,CAAC;AAAEpe,wBAAoB,EAApBA;AAAF,GAAD,CAAR;AACD;;AAED,SAASd,kBAAT,CAA4BvU,MAA5B,EAAoC6H,CAApC,EAAuCC,CAAvC,EAA0Ce,MAA1C,EAAkD;AAChD,SAAO7I,MAAM,CACVK,MADI,CACG,SADH,EACc,cADd,EAEJC,IAFI,CAGH,QAHG,EAIHuI,MAAM,CACH6L,GADH,CACO,UAAUrW,CAAV,EAAa;AAChB,WAAOA,CAAC,CAAC8D,CAAF,GAAM,GAAN,GAAY9D,CAAC,CAAC+D,CAArB;AACD,GAHH,EAIGuS,IAJH,CAIQ,GAJR,CAJG,EAUJrU,IAVI,CAUC,WAVD,EAUc,eAAe,CAACuH,CAAD,GAAK,CAApB,GAAwB,GAAxB,GAA8BC,CAAC,GAAG,CAAlC,GAAsC,GAVpD,CAAP;AAWD;;AAEc;AACbyrB,aAAW,EAAXA,WADa;AAEbC,eAAa,EAAbA;AAFa,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnTA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMrU,qBAAqB,GAAG,YAA9B;AACA,IAAIuU,aAAa,GAAG,CAApB;AACA,IAAIl2B,MAAM,GAAGokB,iDAAA,EAAb;AACA,IAAI+R,QAAQ,GAAG,EAAf;AACA,IAAI1nB,KAAK,GAAG,EAAZ;AACA,IAAItJ,OAAO,GAAG,EAAd;AACA,IAAIixB,SAAS,GAAG,EAAhB;AACA,IAAIC,cAAc,GAAG,EAArB;AACA,IAAIC,QAAQ,GAAG,EAAf;AACA,IAAIC,QAAQ,GAAG,CAAf;AACA,IAAIC,cAAc,GAAG,IAArB;AACA,IAAI3P,SAAJ;AAEA,IAAI4P,OAAJ,C,CAAa;AAEb;;AACA,IAAI3U,IAAI,GAAG,EAAX;AAEO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAUC,SAAV,EAAqBC,OAArB,EAA8BnS,IAA9B,EAAoC;AAChEoS,qDAAU,CAACH,cAAX,CAA0B,IAA1B,EAAgCC,SAAhC,EAA2CC,OAA3C,EAAoDnS,IAApD;AACD,CAFM;AAIP;AACA;AACA;AACA;AACA;;AACO,IAAM2S,WAAW,GAAG,SAAdA,WAAc,CAAU9f,EAAV,EAAc;AACvC,MAAM+zB,WAAW,GAAG52B,MAAM,CAAC6B,IAAP,CAAYw0B,QAAZ,CAApB;;AACA,OAAK,IAAIx1B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+1B,WAAW,CAAC91B,MAAhC,EAAwCD,CAAC,EAAzC,EAA6C;AAC3C,QAAIw1B,QAAQ,CAACO,WAAW,CAAC/1B,CAAD,CAAZ,CAAR,CAAyBgC,EAAzB,KAAgCA,EAApC,EAAwC;AACtC,aAAOwzB,QAAQ,CAACO,WAAW,CAAC/1B,CAAD,CAAZ,CAAR,CAAyBsW,KAAhC;AACD;AACF;;AACD,SAAOtU,EAAP;AACD,CARM;AAUP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,IAAMg0B,SAAS,GAAG,SAAZA,SAAY,CAAUvhB,GAAV,EAAenS,IAAf,EAAqB6M,IAArB,EAA2BtL,KAA3B,EAAkCW,OAAlC,EAA2CmJ,GAA3C,EAAgD;AACvE,MAAImf,GAAJ;AACA,MAAI9qB,EAAE,GAAGyS,GAAT;;AACA,MAAI,OAAOzS,EAAP,KAAc,WAAlB,EAA+B;AAC7B;AACD;;AACD,MAAIA,EAAE,CAACiF,IAAH,GAAUhH,MAAV,KAAqB,CAAzB,EAA4B;AAC1B;AACD,GARsE,CAUvE;;;AAEA,MAAI,OAAOu1B,QAAQ,CAACxzB,EAAD,CAAf,KAAwB,WAA5B,EAAyC;AACvCwzB,YAAQ,CAACxzB,EAAD,CAAR,GAAe;AACbA,QAAE,EAAEA,EADS;AAEbsU,WAAK,EAAE0K,qBAAqB,GAAGhf,EAAxB,GAA6B,GAA7B,GAAmCuzB,aAF7B;AAGb1O,YAAM,EAAE,EAHK;AAIbriB,aAAO,EAAE;AAJI,KAAf;AAMD;;AACD+wB,eAAa;;AACb,MAAI,OAAOjzB,IAAP,KAAgB,WAApB,EAAiC;AAC/BjD,UAAM,GAAGokB,iDAAA,EAAT;AACAqJ,OAAG,GAAGpJ,sDAAM,CAACC,YAAP,CAAoBrhB,IAAI,CAAC2E,IAAL,EAApB,EAAiC5H,MAAjC,CAAN,CAF+B,CAI/B;;AACA,QAAIytB,GAAG,CAAC,CAAD,CAAH,KAAW,GAAX,IAAkBA,GAAG,CAACA,GAAG,CAAC7sB,MAAJ,GAAa,CAAd,CAAH,KAAwB,GAA9C,EAAmD;AACjD6sB,SAAG,GAAGA,GAAG,CAAC7J,SAAJ,CAAc,CAAd,EAAiB6J,GAAG,CAAC7sB,MAAJ,GAAa,CAA9B,CAAN;AACD;;AAEDu1B,YAAQ,CAACxzB,EAAD,CAAR,CAAaM,IAAb,GAAoBwqB,GAApB;AACD,GAVD,MAUO;AACL,QAAI,OAAO0I,QAAQ,CAACxzB,EAAD,CAAR,CAAaM,IAApB,KAA6B,WAAjC,EAA8C;AAC5CkzB,cAAQ,CAACxzB,EAAD,CAAR,CAAaM,IAAb,GAAoBmS,GAApB;AACD;AACF;;AACD,MAAI,OAAOtF,IAAP,KAAgB,WAApB,EAAiC;AAC/BqmB,YAAQ,CAACxzB,EAAD,CAAR,CAAamN,IAAb,GAAoBA,IAApB;AACD;;AACD,MAAI,OAAOtL,KAAP,KAAiB,WAArB,EAAkC;AAChC,QAAIA,KAAK,KAAK,IAAd,EAAoB;AAClBA,WAAK,CAAC3C,OAAN,CAAc,UAAUmF,CAAV,EAAa;AACzBmvB,gBAAQ,CAACxzB,EAAD,CAAR,CAAa6kB,MAAb,CAAoBnlB,IAApB,CAAyB2E,CAAzB;AACD,OAFD;AAGD;AACF;;AACD,MAAI,OAAO7B,OAAP,KAAmB,WAAvB,EAAoC;AAClC,QAAIA,OAAO,KAAK,IAAhB,EAAsB;AACpBA,aAAO,CAACtD,OAAR,CAAgB,UAAUmF,CAAV,EAAa;AAC3BmvB,gBAAQ,CAACxzB,EAAD,CAAR,CAAawC,OAAb,CAAqB9C,IAArB,CAA0B2E,CAA1B;AACD,OAFD;AAGD;AACF;;AACD,MAAI,OAAOsH,GAAP,KAAe,WAAnB,EAAgC;AAC9B6nB,YAAQ,CAACxzB,EAAD,CAAR,CAAa2L,GAAb,GAAmBA,GAAnB;AACD;AACF,CAxDM;AA0DP;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,IAAMsoB,aAAa,GAAG,SAAhBA,aAAgB,CAAUC,MAAV,EAAkBC,IAAlB,EAAwBhnB,IAAxB,EAA8BinB,QAA9B,EAAwC;AACnE,MAAIte,KAAK,GAAGoe,MAAZ;AACA,MAAIle,GAAG,GAAGme,IAAV,CAFmE,CAGnE;AACA;AACA;;AAEA,MAAM9uB,IAAI,GAAG;AAAEyQ,SAAK,EAAEA,KAAT;AAAgBE,OAAG,EAAEA,GAArB;AAA0B7I,QAAI,EAAExM,SAAhC;AAA2CL,QAAI,EAAE;AAAjD,GAAb;AACA8zB,UAAQ,GAAGjnB,IAAI,CAAC7M,IAAhB;;AAEA,MAAI,OAAO8zB,QAAP,KAAoB,WAAxB,EAAqC;AACnC/uB,QAAI,CAAC/E,IAAL,GAAYohB,sDAAM,CAACC,YAAP,CAAoByS,QAAQ,CAACnvB,IAAT,EAApB,EAAqC5H,MAArC,CAAZ,CADmC,CAGnC;;AACA,QAAIgI,IAAI,CAAC/E,IAAL,CAAU,CAAV,MAAiB,GAAjB,IAAwB+E,IAAI,CAAC/E,IAAL,CAAU+E,IAAI,CAAC/E,IAAL,CAAUrC,MAAV,GAAmB,CAA7B,MAAoC,GAAhE,EAAqE;AACnEoH,UAAI,CAAC/E,IAAL,GAAY+E,IAAI,CAAC/E,IAAL,CAAU2gB,SAAV,CAAoB,CAApB,EAAuB5b,IAAI,CAAC/E,IAAL,CAAUrC,MAAV,GAAmB,CAA1C,CAAZ;AACD;AACF;;AAED,MAAI,OAAOkP,IAAP,KAAgB,WAApB,EAAiC;AAC/B9H,QAAI,CAAC8H,IAAL,GAAYA,IAAI,CAACA,IAAjB;AACA9H,QAAI,CAAC0Y,MAAL,GAAc5Q,IAAI,CAAC4Q,MAAnB;AACA1Y,QAAI,CAACpH,MAAL,GAAckP,IAAI,CAAClP,MAAnB;AACD;;AACD6N,OAAK,CAACpM,IAAN,CAAW2F,IAAX;AACD,CAzBM;AA0BA,IAAMgvB,OAAO,GAAG,SAAVA,OAAU,CAAUH,MAAV,EAAkBC,IAAlB,EAAwBhnB,IAAxB,EAA8BinB,QAA9B,EAAwC;AAC7D,MAAIp2B,CAAJ,EAAO6G,CAAP;;AACA,OAAK7G,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGk2B,MAAM,CAACj2B,MAAvB,EAA+BD,CAAC,EAAhC,EAAoC;AAClC,SAAK6G,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGsvB,IAAI,CAACl2B,MAArB,EAA6B4G,CAAC,EAA9B,EAAkC;AAChCovB,mBAAa,CAACC,MAAM,CAACl2B,CAAD,CAAP,EAAYm2B,IAAI,CAACtvB,CAAD,CAAhB,EAAqBsI,IAArB,EAA2BinB,QAA3B,CAAb;AACD;AACF;AACF,CAPM;AASP;AACA;AACA;AACA;AACA;;AACO,IAAME,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAUC,SAAV,EAAqBC,MAArB,EAA6B;AAChED,WAAS,CAACr1B,OAAV,CAAkB,UAAU6H,GAAV,EAAe;AAC/B,QAAIA,GAAG,KAAK,SAAZ,EAAuB;AACrB+E,WAAK,CAACia,kBAAN,GAA2ByO,MAA3B;AACD,KAFD,MAEO;AACL1oB,WAAK,CAAC/E,GAAD,CAAL,CAAW6e,WAAX,GAAyB4O,MAAzB;AACD;AACF,GAND;AAOD,CARM;AAUP;AACA;AACA;AACA;AACA;;AACO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAUF,SAAV,EAAqB1yB,KAArB,EAA4B;AACpD0yB,WAAS,CAACr1B,OAAV,CAAkB,UAAU6H,GAAV,EAAe;AAC/B,QAAIA,GAAG,KAAK,SAAZ,EAAuB;AACrB+E,WAAK,CAACoZ,YAAN,GAAqBrjB,KAArB;AACD,KAFD,MAEO;AACL,UAAImF,8CAAK,CAAC0tB,kBAAN,CAAyB,MAAzB,EAAiC7yB,KAAjC,MAA4C,CAAC,CAAjD,EAAoD;AAClDA,aAAK,CAACnC,IAAN,CAAW,WAAX;AACD;;AACDoM,WAAK,CAAC/E,GAAD,CAAL,CAAWlF,KAAX,GAAmBA,KAAnB;AACD;AACF,GATD;AAUD,CAXM;AAaA,IAAM8d,QAAQ,GAAG,SAAXA,QAAW,CAAU3f,EAAV,EAAc6B,KAAd,EAAqB;AAC3C,MAAI,OAAOW,OAAO,CAACxC,EAAD,CAAd,KAAuB,WAA3B,EAAwC;AACtCwC,WAAO,CAACxC,EAAD,CAAP,GAAc;AAAEA,QAAE,EAAEA,EAAN;AAAU6kB,YAAM,EAAE,EAAlB;AAAsB8P,gBAAU,EAAE;AAAlC,KAAd;AACD;;AAED,MAAI,OAAO9yB,KAAP,KAAiB,WAArB,EAAkC;AAChC,QAAIA,KAAK,KAAK,IAAd,EAAoB;AAClBA,WAAK,CAAC3C,OAAN,CAAc,UAAUmF,CAAV,EAAa;AACzB,YAAIA,CAAC,CAACkd,KAAF,CAAQ,OAAR,CAAJ,EAAsB;AACpB,cAAMqT,SAAS,GAAGvwB,CAAC,CAACD,OAAF,CAAU,MAAV,EAAkB,QAAlB,CAAlB;AACA,cAAMywB,SAAS,GAAGD,SAAS,CAACxwB,OAAV,CAAkB,OAAlB,EAA2B,MAA3B,CAAlB;AACA5B,iBAAO,CAACxC,EAAD,CAAP,CAAY20B,UAAZ,CAAuBj1B,IAAvB,CAA4Bm1B,SAA5B;AACD;;AACDryB,eAAO,CAACxC,EAAD,CAAP,CAAY6kB,MAAZ,CAAmBnlB,IAAnB,CAAwB2E,CAAxB;AACD,OAPD;AAQD;AACF;AACF,CAjBM;AAmBP;AACA;AACA;AACA;;AACO,IAAM+f,YAAY,GAAG,SAAfA,YAAe,CAAUzY,GAAV,EAAe;AACzCuY,WAAS,GAAGvY,GAAZ;;AACA,MAAIuY,SAAS,CAAC3C,KAAV,CAAgB,KAAhB,CAAJ,EAA4B;AAC1B2C,aAAS,GAAG,IAAZ;AACD;;AACD,MAAIA,SAAS,CAAC3C,KAAV,CAAgB,MAAhB,CAAJ,EAA6B;AAC3B2C,aAAS,GAAG,IAAZ;AACD;;AACD,MAAIA,SAAS,CAAC3C,KAAV,CAAgB,KAAhB,CAAJ,EAA4B;AAC1B2C,aAAS,GAAG,IAAZ;AACD;;AACD,MAAIA,SAAS,CAAC3C,KAAV,CAAgB,KAAhB,CAAJ,EAA4B;AAC1B2C,aAAS,GAAG,IAAZ;AACD;AACF,CAdM;AAgBP;AACA;AACA;AACA;AACA;;AACO,IAAM4Q,QAAQ,GAAG,SAAXA,QAAW,CAAUxT,GAAV,EAAe5B,SAAf,EAA0B;AAChD4B,KAAG,CAAC5c,KAAJ,CAAU,GAAV,EAAexF,OAAf,CAAuB,UAAUuT,GAAV,EAAe;AACpC;AACA,QAAIzS,EAAE,GAAGyS,GAAT,CAFoC,CAGpC;;AACA,QAAI,OAAO+gB,QAAQ,CAACxzB,EAAD,CAAf,KAAwB,WAA5B,EAAyC;AACvCwzB,cAAQ,CAACxzB,EAAD,CAAR,CAAawC,OAAb,CAAqB9C,IAArB,CAA0BggB,SAA1B;AACD;;AAED,QAAI,OAAOgU,cAAc,CAAC1zB,EAAD,CAArB,KAA8B,WAAlC,EAA+C;AAC7C0zB,oBAAc,CAAC1zB,EAAD,CAAd,CAAmBwC,OAAnB,CAA2B9C,IAA3B,CAAgCggB,SAAhC;AACD;AACF,GAXD;AAYD,CAbM;;AAeP,IAAM8B,UAAU,GAAG,SAAbA,UAAa,CAAUF,GAAV,EAAejJ,OAAf,EAAwB;AACzCiJ,KAAG,CAAC5c,KAAJ,CAAU,GAAV,EAAexF,OAAf,CAAuB,UAAUc,EAAV,EAAc;AACnC,QAAI,OAAOqY,OAAP,KAAmB,WAAvB,EAAoC;AAClCsb,cAAQ,CAACG,OAAO,KAAK,OAAZ,GAAsBhU,WAAW,CAAC9f,EAAD,CAAjC,GAAwCA,EAAzC,CAAR,GAAuD0hB,sDAAM,CAACC,YAAP,CAAoBtJ,OAApB,EAA6Bhb,MAA7B,CAAvD;AACD;AACF,GAJD;AAKD,CAND;;AAQA,IAAM03B,WAAW,GAAG,SAAdA,WAAc,CAAU/0B,EAAV,EAAciiB,YAAd,EAA4BC,YAA5B,EAA0C;AAC5D,MAAI5N,KAAK,GAAGwL,WAAW,CAAC9f,EAAD,CAAvB,CAD4D,CAE5D;;AACA,MAAIyhB,iDAAA,GAAsB7I,aAAtB,KAAwC,OAA5C,EAAqD;AACnD;AACD;;AACD,MAAI,OAAOqJ,YAAP,KAAwB,WAA5B,EAAyC;AACvC;AACD;;AACD,MAAII,OAAO,GAAG,EAAd;;AACA,MAAI,OAAOH,YAAP,KAAwB,QAA5B,EAAsC;AACpC;AACAG,WAAO,GAAGH,YAAY,CAACxd,KAAb,CAAmB,+BAAnB,CAAV;;AACA,SAAK,IAAI1G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqkB,OAAO,CAACpkB,MAA5B,EAAoCD,CAAC,EAArC,EAAyC;AACvC,UAAIskB,IAAI,GAAGD,OAAO,CAACrkB,CAAD,CAAP,CAAWiH,IAAX,EAAX;AACA;;AACA;;AACA,UAAIqd,IAAI,CAACC,MAAL,CAAY,CAAZ,MAAmB,GAAnB,IAA0BD,IAAI,CAACC,MAAL,CAAYD,IAAI,CAACrkB,MAAL,GAAc,CAA1B,MAAiC,GAA/D,EAAoE;AAClEqkB,YAAI,GAAGA,IAAI,CAAClB,MAAL,CAAY,CAAZ,EAAekB,IAAI,CAACrkB,MAAL,GAAc,CAA7B,CAAP;AACD;;AACDokB,aAAO,CAACrkB,CAAD,CAAP,GAAaskB,IAAb;AACD;AACF;AAED;;;AACA,MAAID,OAAO,CAACpkB,MAAR,KAAmB,CAAvB,EAA0B;AACxBokB,WAAO,CAAC3iB,IAAR,CAAaM,EAAb;AACD;;AAED,MAAI,OAAOwzB,QAAQ,CAACxzB,EAAD,CAAf,KAAwB,WAA5B,EAAyC;AACvCwzB,YAAQ,CAACxzB,EAAD,CAAR,CAAasY,YAAb,GAA4B,IAA5B;AACA6G,QAAI,CAACzf,IAAL,CAAU,YAAY;AACpB,UAAMqD,IAAI,GAAGa,QAAQ,CAAC4e,aAAT,iBAA+BlO,KAA/B,SAAb;;AACA,UAAIvR,IAAI,KAAK,IAAb,EAAmB;AACjBA,YAAI,CAAC0f,gBAAL,CACE,OADF,EAEE,YAAY;AACVzb,wDAAK,CAAC0b,OAAN,OAAA1b,8CAAK,GAASib,YAAT,4BAA0BI,OAA1B,GAAL;AACD,SAJH,EAKE,KALF;AAOD;AACF,KAXD;AAYD;AACF,CA5CD;AA8CA;AACA;AACA;AACA;AACA;;;AACO,IAAMT,OAAO,GAAG,SAAVA,OAAU,CAAUN,GAAV,EAAeO,OAAf,EAAwBC,MAAxB,EAAgC;AACrDR,KAAG,CAAC5c,KAAJ,CAAU,GAAV,EAAexF,OAAf,CAAuB,UAAUc,EAAV,EAAc;AACnC,QAAI,OAAOwzB,QAAQ,CAACxzB,EAAD,CAAf,KAAwB,WAA5B,EAAyC;AACvCwzB,cAAQ,CAACxzB,EAAD,CAAR,CAAamY,IAAb,GAAoBnR,8CAAK,CAAC+a,SAAN,CAAgBF,OAAhB,EAAyBxkB,MAAzB,CAApB;AACAm2B,cAAQ,CAACxzB,EAAD,CAAR,CAAaoY,UAAb,GAA0B0J,MAA1B;AACD;AACF,GALD;AAMAgT,UAAQ,CAACxT,GAAD,EAAM,WAAN,CAAR;AACD,CARM;AASA,IAAM0T,UAAU,GAAG,SAAbA,UAAa,CAAUh1B,EAAV,EAAc;AACtC,SAAO2zB,QAAQ,CAAC3zB,EAAD,CAAf;AACD,CAFM;AAIP;AACA;AACA;AACA;AACA;AACA;;AACO,IAAMgiB,aAAa,GAAG,SAAhBA,aAAgB,CAAUV,GAAV,EAAeW,YAAf,EAA6BC,YAA7B,EAA2C;AACtEZ,KAAG,CAAC5c,KAAJ,CAAU,GAAV,EAAexF,OAAf,CAAuB,UAAUc,EAAV,EAAc;AACnC+0B,eAAW,CAAC/0B,EAAD,EAAKiiB,YAAL,EAAmBC,YAAnB,CAAX;AACD,GAFD;AAGA4S,UAAQ,CAACxT,GAAD,EAAM,WAAN,CAAR;AACD,CALM;AAOA,IAAMqB,aAAa,GAAG,SAAhBA,aAAgB,CAAUnK,OAAV,EAAmB;AAC9C2G,MAAI,CAACjgB,OAAL,CAAa,UAAU0jB,GAAV,EAAe;AAC1BA,OAAG,CAACpK,OAAD,CAAH;AACD,GAFD;AAGD,CAJM;AAKA,IAAM2L,YAAY,GAAG,SAAfA,YAAe,GAAY;AACtC,SAAOD,SAAS,CAACjf,IAAV,EAAP;AACD,CAFM;AAGP;AACA;AACA;AACA;;AACO,IAAMgwB,WAAW,GAAG,SAAdA,WAAc,GAAY;AACrC,SAAOzB,QAAP;AACD,CAFM;AAIP;AACA;AACA;AACA;;AACO,IAAM0B,QAAQ,GAAG,SAAXA,QAAW,GAAY;AAClC,SAAOppB,KAAP;AACD,CAFM;AAIP;AACA;AACA;AACA;;AACO,IAAMoU,UAAU,GAAG,SAAbA,UAAa,GAAY;AACpC,SAAO1d,OAAP;AACD,CAFM;;AAIP,IAAMwd,aAAa,GAAG,SAAhBA,aAAgB,CAAUxH,OAAV,EAAmB;AACvC,MAAI6K,WAAW,GAAGjiB,iDAAM,CAAC,iBAAD,CAAxB;;AACA,MAAI,CAACiiB,WAAW,CAACC,OAAZ,IAAuBD,WAAxB,EAAqC,CAArC,EAAwC,CAAxC,MAA+C,IAAnD,EAAyD;AACvDA,eAAW,GAAGjiB,iDAAM,CAAC,MAAD,CAAN,CAAesB,MAAf,CAAsB,KAAtB,EAA6BvC,IAA7B,CAAkC,OAAlC,EAA2C,gBAA3C,EAA6D0B,KAA7D,CAAmE,SAAnE,EAA8E,CAA9E,CAAd;AACD;;AAED,MAAM0hB,GAAG,GAAGniB,iDAAM,CAACoX,OAAD,CAAN,CAAgBpX,MAAhB,CAAuB,KAAvB,CAAZ;AAEA,MAAMyK,KAAK,GAAG0X,GAAG,CAACC,SAAJ,CAAc,QAAd,CAAd;AACA3X,OAAK,CACF4X,EADH,CACM,WADN,EACmB,YAAY;AAC3B,QAAMngB,EAAE,GAAGlC,iDAAM,CAAC,IAAD,CAAjB;AACA,QAAMoU,KAAK,GAAGlS,EAAE,CAACnD,IAAH,CAAQ,OAAR,CAAd,CAF2B,CAI3B;;AACA,QAAIqV,KAAK,KAAK,IAAd,EAAoB;AAClB;AACD;;AACD,QAAM5V,IAAI,GAAG,KAAKyB,qBAAL,EAAb;AAEAgiB,eAAW,CAACK,UAAZ,GAAyBC,QAAzB,CAAkC,GAAlC,EAAuC9hB,KAAvC,CAA6C,SAA7C,EAAwD,IAAxD;AACAwhB,eAAW,CACRrf,IADH,CACQV,EAAE,CAACnD,IAAH,CAAQ,OAAR,CADR,EAEG0B,KAFH,CAES,MAFT,EAEiBiJ,MAAM,CAAC8Y,OAAP,GAAiBhkB,IAAI,CAAC2Q,IAAtB,GAA6B,CAAC3Q,IAAI,CAACikB,KAAL,GAAajkB,IAAI,CAAC2Q,IAAnB,IAA2B,CAAxD,GAA4D,IAF7E,EAGG1O,KAHH,CAGS,KAHT,EAGgBiJ,MAAM,CAACgZ,OAAP,GAAiBlkB,IAAI,CAAC4Q,GAAtB,GAA4B,EAA5B,GAAiC5M,QAAQ,CAACmgB,IAAT,CAAcC,SAA/C,GAA2D,IAH3E;AAIA1gB,MAAE,CAAC2gB,OAAH,CAAW,OAAX,EAAoB,IAApB;AACD,GAjBH,EAkBGR,EAlBH,CAkBM,UAlBN,EAkBkB,YAAY;AAC1BJ,eAAW,CAACK,UAAZ,GAAyBC,QAAzB,CAAkC,GAAlC,EAAuC9hB,KAAvC,CAA6C,SAA7C,EAAwD,CAAxD;AACA,QAAMyB,EAAE,GAAGlC,iDAAM,CAAC,IAAD,CAAjB;AACAkC,MAAE,CAAC2gB,OAAH,CAAW,OAAX,EAAoB,KAApB;AACD,GAtBH;AAuBD,CAhCD;;AAiCA9E,IAAI,CAACzf,IAAL,CAAUsgB,aAAV;AAEA;AACA;AACA;;AACO,IAAM7c,KAAK,GAAG,SAARA,KAAQ,CAAUgyB,GAAV,EAAe;AAClC3B,UAAQ,GAAG,EAAX;AACAhxB,SAAO,GAAG,EAAV;AACAsJ,OAAK,GAAG,EAAR;AACAqT,MAAI,GAAG,EAAP;AACAA,MAAI,CAACzf,IAAL,CAAUsgB,aAAV;AACAyT,WAAS,GAAG,EAAZ;AACAC,gBAAc,GAAG,EAAjB;AACAE,UAAQ,GAAG,CAAX;AACAD,UAAQ,GAAG,EAAX;AACAE,gBAAc,GAAG,IAAjB;AACAC,SAAO,GAAGqB,GAAG,IAAI,OAAjB;AACD,CAZM;AAaA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACD,GAAD,EAAS;AAC7BrB,SAAO,GAAGqB,GAAG,IAAI,OAAjB;AACD,CAFM;AAGP;AACA;AACA;AACA;;AACO,IAAMjQ,YAAY,GAAG,SAAfA,YAAe,GAAY;AACtC,SAAO,2FAAP;AACD,CAFM;AAIP;AACA;AACA;;AACO,IAAMmQ,WAAW,GAAG,SAAdA,WAAc,CAAU5iB,GAAV,EAAe6iB,IAAf,EAAqBC,MAArB,EAA6B;AACtD;AACA,MAAIv1B,EAAE,GAAGyS,GAAG,CAACxN,IAAJ,EAAT;;AACA,MAAIuQ,KAAK,GAAG+f,MAAZ;;AACA,MAAI9iB,GAAG,KAAK8iB,MAAR,IAAkBA,MAAM,CAAChU,KAAP,CAAa,IAAb,CAAtB,EAA0C;AACxCvhB,MAAE,GAAGW,SAAL;AACD;;AACD,WAAS60B,IAAT,CAAcC,CAAd,EAAiB;AACf,QAAMC,KAAK,GAAG;AAAEC,aAAO,EAAE,EAAX;AAAeC,YAAM,EAAE,EAAvB;AAA2BC,YAAM,EAAE;AAAnC,KAAd;AACA,QAAMC,IAAI,GAAG,EAAb;AAEA,QAAInqB,GAAJ,CAJe,CAIN;;AACT,QAAMoqB,QAAQ,GAAGN,CAAC,CAACzrB,MAAF,CAAS,UAAUsY,IAAV,EAAgB;AACxC,UAAMnV,IAAI,WAAUmV,IAAV,CAAV;;AACA,UAAIA,IAAI,CAAC0T,IAAL,IAAa1T,IAAI,CAAC0T,IAAL,KAAc,KAA/B,EAAsC;AACpCrqB,WAAG,GAAG2W,IAAI,CAAC7b,KAAX;AACA,eAAO,KAAP;AACD;;AACD,UAAI6b,IAAI,CAACrd,IAAL,OAAgB,EAApB,EAAwB;AACtB,eAAO,KAAP;AACD;;AACD,UAAIkI,IAAI,IAAIuoB,KAAZ,EAAmB;AACjB,eAAOA,KAAK,CAACvoB,IAAD,CAAL,CAAY8oB,cAAZ,CAA2B3T,IAA3B,IAAmC,KAAnC,GAA4CoT,KAAK,CAACvoB,IAAD,CAAL,CAAYmV,IAAZ,IAAoB,IAAvE,CADiB,CAC6D;AAC/E,OAFD,MAEO;AACL,eAAOwT,IAAI,CAACx2B,OAAL,CAAagjB,IAAb,KAAsB,CAAtB,GAA0B,KAA1B,GAAkCwT,IAAI,CAACp2B,IAAL,CAAU4iB,IAAV,CAAzC;AACD;AACF,KAdgB,CAAjB;AAeA,WAAO;AAAEyT,cAAQ,EAARA,QAAF;AAAYpqB,SAAG,EAAHA;AAAZ,KAAP;AACD;;AAED,MAAIoqB,QAAQ,GAAG,EAAf;;AAEA,cAA8BP,IAAI,CAACO,QAAQ,CAACxjB,MAAT,CAAgB2jB,KAAhB,CAAsBH,QAAtB,EAAgCT,IAAhC,CAAD,CAAlC;AAAA,MAAkBa,EAAlB,SAAQJ,QAAR;AAAA,MAAsBpqB,GAAtB,SAAsBA,GAAtB;;AACAoqB,UAAQ,GAAGI,EAAX;;AACA,MAAIrC,OAAO,KAAK,OAAhB,EAAyB;AACvB10B,+CAAG,CAAC2I,IAAJ,CAAS,YAAT;;AACA,SAAK,IAAI/J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+3B,QAAQ,CAAC93B,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;AACxC+3B,cAAQ,CAAC/3B,CAAD,CAAR,GAAc8hB,WAAW,CAACiW,QAAQ,CAAC/3B,CAAD,CAAT,CAAzB;AACD;AACF;;AAEDgC,IAAE,GAAGA,EAAE,IAAI,aAAa4zB,QAAxB,CAzCsD,CA0CtD;;AACApe,OAAK,GAAGA,KAAK,IAAI,EAAjB;AACAA,OAAK,GAAGkM,sDAAM,CAACC,YAAP,CAAoBnM,KAApB,EAA2BnY,MAA3B,CAAR;AACAu2B,UAAQ,GAAGA,QAAQ,GAAG,CAAtB;AACA,MAAMwC,QAAQ,GAAG;AAAEp2B,MAAE,EAAEA,EAAN;AAAU6L,SAAK,EAAEkqB,QAAjB;AAA2BvgB,SAAK,EAAEA,KAAK,CAACvQ,IAAN,EAAlC;AAAgDzC,WAAO,EAAE,EAAzD;AAA6DmJ,OAAG,EAAHA;AAA7D,GAAjB;AAEAvM,6CAAG,CAACiE,IAAJ,CAAS,QAAT,EAAmB+yB,QAAQ,CAACp2B,EAA5B,EAAgCo2B,QAAQ,CAACvqB,KAAzC,EAAgDuqB,QAAQ,CAACzqB,GAAzD;AAEA;AACF;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;;AACAyqB,UAAQ,CAACvqB,KAAT,GAAiBwqB,QAAQ,CAACD,QAAD,EAAW3C,SAAX,CAAR,CAA8B5nB,KAA/C;AACA4nB,WAAS,CAAC/zB,IAAV,CAAe02B,QAAf;AACA1C,gBAAc,CAAC1zB,EAAD,CAAd,GAAqBo2B,QAArB;AACA,SAAOp2B,EAAP;AACD,CAtEM;;AAwEP,IAAMs2B,WAAW,GAAG,SAAdA,WAAc,CAAUt2B,EAAV,EAAc;AAChC,OAAK,IAAIhC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy1B,SAAS,CAACx1B,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AACzC,QAAIy1B,SAAS,CAACz1B,CAAD,CAAT,CAAagC,EAAb,KAAoBA,EAAxB,EAA4B;AAC1B,aAAOhC,CAAP;AACD;AACF;;AACD,SAAO,CAAC,CAAR;AACD,CAPD;;AAQA,IAAIu4B,QAAQ,GAAG,CAAC,CAAhB;AACA,IAAMC,WAAW,GAAG,EAApB;;AACA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAUz2B,EAAV,EAAc+G,GAAd,EAAmB;AACrC,MAAM8E,KAAK,GAAG4nB,SAAS,CAAC1sB,GAAD,CAAT,CAAe8E,KAA7B;AACA0qB,UAAQ,GAAGA,QAAQ,GAAG,CAAtB;;AACA,MAAIA,QAAQ,GAAG,IAAf,EAAqB;AACnB;AACD;;AACDC,aAAW,CAACD,QAAD,CAAX,GAAwBxvB,GAAxB,CANqC,CAOrC;;AACA,MAAI0sB,SAAS,CAAC1sB,GAAD,CAAT,CAAe/G,EAAf,KAAsBA,EAA1B,EAA8B;AAC5B,WAAO;AACL8T,YAAM,EAAE,IADH;AAEL4iB,WAAK,EAAE;AAFF,KAAP;AAID;;AAED,MAAIA,KAAK,GAAG,CAAZ;AACA,MAAIC,QAAQ,GAAG,CAAf;;AACA,SAAOD,KAAK,GAAG7qB,KAAK,CAAC5N,MAArB,EAA6B;AAC3B,QAAM24B,QAAQ,GAAGN,WAAW,CAACzqB,KAAK,CAAC6qB,KAAD,CAAN,CAA5B,CAD2B,CAE3B;;AACA,QAAIE,QAAQ,IAAI,CAAhB,EAAmB;AACjB,UAAMxuB,GAAG,GAAGquB,WAAW,CAACz2B,EAAD,EAAK42B,QAAL,CAAvB;;AACA,UAAIxuB,GAAG,CAAC0L,MAAR,EAAgB;AACd,eAAO;AACLA,gBAAM,EAAE,IADH;AAEL4iB,eAAK,EAAEC,QAAQ,GAAGvuB,GAAG,CAACsuB;AAFjB,SAAP;AAID,OALD,MAKO;AACLC,gBAAQ,GAAGA,QAAQ,GAAGvuB,GAAG,CAACsuB,KAA1B;AACD;AACF;;AACDA,SAAK,GAAGA,KAAK,GAAG,CAAhB;AACD;;AAED,SAAO;AACL5iB,UAAM,EAAE,KADH;AAEL4iB,SAAK,EAAEC;AAFF,GAAP;AAID,CAtCD;;AAwCO,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAU9vB,GAAV,EAAe;AAC7C,SAAOyvB,WAAW,CAACzvB,GAAD,CAAlB;AACD,CAFM;AAGA,IAAM+vB,UAAU,GAAG,SAAbA,UAAa,GAAY;AACpCP,UAAQ,GAAG,CAAC,CAAZ;;AACA,MAAI9C,SAAS,CAACx1B,MAAV,GAAmB,CAAvB,EAA0B;AACxBw4B,eAAW,CAAC,MAAD,EAAShD,SAAS,CAACx1B,MAAV,GAAmB,CAA5B,EAA+B,CAA/B,CAAX;AACD;AACF,CALM;AAOA,IAAM84B,YAAY,GAAG,SAAfA,YAAe,GAAY;AACtC,SAAOtD,SAAP;AACD,CAFM;AAIA,IAAMuD,UAAU,GAAG,SAAbA,UAAa,GAAM;AAC9B,MAAInD,cAAJ,EAAoB;AAClBA,kBAAc,GAAG,KAAjB;AACA,WAAO,IAAP;AACD;;AACD,SAAO,KAAP;AACD,CANM;;AAQP,IAAMoD,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAU;AAClC,MAAI5f,GAAG,GAAG4f,IAAI,CAACjyB,IAAL,EAAV;;AACA,MAAIkI,IAAI,GAAG,YAAX;;AAEA,UAAQmK,GAAG,CAAC,CAAD,CAAX;AACE,SAAK,GAAL;AACEnK,UAAI,GAAG,aAAP;AACAmK,SAAG,GAAGA,GAAG,CAAC5N,KAAJ,CAAU,CAAV,CAAN;AACA;;AACF,SAAK,GAAL;AACEyD,UAAI,GAAG,aAAP;AACAmK,SAAG,GAAGA,GAAG,CAAC5N,KAAJ,CAAU,CAAV,CAAN;AACA;;AACF,SAAK,GAAL;AACEyD,UAAI,GAAG,cAAP;AACAmK,SAAG,GAAGA,GAAG,CAAC5N,KAAJ,CAAU,CAAV,CAAN;AACA;AAZJ;;AAeA,MAAIqU,MAAM,GAAG,QAAb;;AAEA,MAAIzG,GAAG,CAAChY,OAAJ,CAAY,GAAZ,MAAqB,CAAC,CAA1B,EAA6B;AAC3Bye,UAAM,GAAG,OAAT;AACD;;AAED,MAAIzG,GAAG,CAAChY,OAAJ,CAAY,GAAZ,MAAqB,CAAC,CAA1B,EAA6B;AAC3Bye,UAAM,GAAG,QAAT;AACD;;AAED,SAAO;AAAE5Q,QAAI,EAAJA,IAAF;AAAQ4Q,UAAM,EAANA;AAAR,GAAP;AACD,CA9BD;;AAgCA,IAAMoZ,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAO9f,GAAP,EAAe;AAC/B,MAAMrZ,MAAM,GAAGqZ,GAAG,CAACrZ,MAAnB;AACA,MAAIy4B,KAAK,GAAG,CAAZ;;AACA,OAAK,IAAI14B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,MAApB,EAA4B,EAAED,CAA9B,EAAiC;AAC/B,QAAIsZ,GAAG,CAACtZ,CAAD,CAAH,KAAWo5B,IAAf,EAAqB;AACnB,QAAEV,KAAF;AACD;AACF;;AACD,SAAOA,KAAP;AACD,CATD;;AAWA,IAAMW,eAAe,GAAG,SAAlBA,eAAkB,CAACH,IAAD,EAAU;AAChC,MAAM5f,GAAG,GAAG4f,IAAI,CAACjyB,IAAL,EAAZ;;AACA,MAAIqF,IAAI,GAAGgN,GAAG,CAAC5N,KAAJ,CAAU,CAAV,EAAa,CAAC,CAAd,CAAX;AACA,MAAIyD,IAAI,GAAG,YAAX;;AAEA,UAAQmK,GAAG,CAAC5N,KAAJ,CAAU,CAAC,CAAX,CAAR;AACE,SAAK,GAAL;AACEyD,UAAI,GAAG,aAAP;;AACA,UAAImK,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;AAClBnK,YAAI,GAAG,YAAYA,IAAnB;AACA7C,YAAI,GAAGA,IAAI,CAACZ,KAAL,CAAW,CAAX,CAAP;AACD;;AACD;;AACF,SAAK,GAAL;AACEyD,UAAI,GAAG,aAAP;;AACA,UAAImK,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;AAClBnK,YAAI,GAAG,YAAYA,IAAnB;AACA7C,YAAI,GAAGA,IAAI,CAACZ,KAAL,CAAW,CAAX,CAAP;AACD;;AACD;;AACF,SAAK,GAAL;AACEyD,UAAI,GAAG,cAAP;;AACA,UAAImK,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;AAClBnK,YAAI,GAAG,YAAYA,IAAnB;AACA7C,YAAI,GAAGA,IAAI,CAACZ,KAAL,CAAW,CAAX,CAAP;AACD;;AACD;AArBJ;;AAwBA,MAAIqU,MAAM,GAAG,QAAb;AACA,MAAI9f,MAAM,GAAGqM,IAAI,CAACrM,MAAL,GAAc,CAA3B;;AAEA,MAAIqM,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;AACnByT,UAAM,GAAG,OAAT;AACD;;AAED,MAAIuZ,IAAI,GAAGH,SAAS,CAAC,GAAD,EAAM7sB,IAAN,CAApB;;AAEA,MAAIgtB,IAAJ,EAAU;AACRvZ,UAAM,GAAG,QAAT;AACA9f,UAAM,GAAGq5B,IAAT;AACD;;AAED,SAAO;AAAEnqB,QAAI,EAAJA,IAAF;AAAQ4Q,UAAM,EAANA,MAAR;AAAgB9f,UAAM,EAANA;AAAhB,GAAP;AACD,CA5CD;;AA8CA,IAAMs5B,YAAY,GAAG,SAAfA,YAAe,CAACL,IAAD,EAAOM,SAAP,EAAqB;AACxC,MAAMn0B,IAAI,GAAGg0B,eAAe,CAACH,IAAD,CAA5B;AACA,MAAIO,SAAJ;;AACA,MAAID,SAAJ,EAAe;AACbC,aAAS,GAAGR,iBAAiB,CAACO,SAAD,CAA7B;;AAEA,QAAIC,SAAS,CAAC1Z,MAAV,KAAqB1a,IAAI,CAAC0a,MAA9B,EAAsC;AACpC,aAAO;AAAE5Q,YAAI,EAAE,SAAR;AAAmB4Q,cAAM,EAAE;AAA3B,OAAP;AACD;;AAED,QAAI0Z,SAAS,CAACtqB,IAAV,KAAmB,YAAvB,EAAqC;AACnC;AACAsqB,eAAS,CAACtqB,IAAV,GAAiB9J,IAAI,CAAC8J,IAAtB;AACD,KAHD,MAGO;AACL;AACA,UAAIsqB,SAAS,CAACtqB,IAAV,KAAmB9J,IAAI,CAAC8J,IAA5B,EAAkC,OAAO;AAAEA,YAAI,EAAE,SAAR;AAAmB4Q,cAAM,EAAE;AAA3B,OAAP;AAElC0Z,eAAS,CAACtqB,IAAV,GAAiB,YAAYsqB,SAAS,CAACtqB,IAAvC;AACD;;AAED,QAAIsqB,SAAS,CAACtqB,IAAV,KAAmB,cAAvB,EAAuC;AACrCsqB,eAAS,CAACtqB,IAAV,GAAiB,oBAAjB;AACD;;AAEDsqB,aAAS,CAACx5B,MAAV,GAAmBoF,IAAI,CAACpF,MAAxB;AACA,WAAOw5B,SAAP;AACD;;AAED,SAAOp0B,IAAP;AACD,CA7BD,C,CA+BA;;;AACA,IAAMq0B,MAAM,GAAG,SAATA,MAAS,CAACC,MAAD,EAASllB,GAAT,EAAiB;AAC9B,MAAIrK,GAAG,GAAG,KAAV;AACAuvB,QAAM,CAACz4B,OAAP,CAAe,UAAC04B,EAAD,EAAQ;AACrB,QAAM7wB,GAAG,GAAG6wB,EAAE,CAAC/rB,KAAH,CAASvM,OAAT,CAAiBmT,GAAjB,CAAZ;;AACA,QAAI1L,GAAG,IAAI,CAAX,EAAc;AACZqB,SAAG,GAAG,IAAN;AACD;AACF,GALD;AAMA,SAAOA,GAAP;AACD,CATD;AAUA;AACA;AACA;;;AACA,IAAMiuB,QAAQ,GAAG,SAAXA,QAAW,CAACuB,EAAD,EAAKC,YAAL,EAAsB;AACrC,MAAMzvB,GAAG,GAAG,EAAZ;AACAwvB,IAAE,CAAC/rB,KAAH,CAAS3M,OAAT,CAAiB,UAACuT,GAAD,EAAM1L,GAAN,EAAc;AAC7B,QAAI,CAAC2wB,MAAM,CAACG,YAAD,EAAeplB,GAAf,CAAX,EAAgC;AAC9BrK,SAAG,CAAC1I,IAAJ,CAASk4B,EAAE,CAAC/rB,KAAH,CAAS9E,GAAT,CAAT;AACD;AACF,GAJD;AAKA,SAAO;AAAE8E,SAAK,EAAEzD;AAAT,GAAP;AACD,CARD;;AAUe;AACbgX,gBAAc,EAAdA,cADa;AAEbliB,eAAa,EAAE;AAAA,WAAMukB,qDAAA,CAAwB1gB,SAA9B;AAAA,GAFF;AAGbizB,WAAS,EAATA,SAHa;AAIblU,aAAW,EAAXA,WAJa;AAKbuU,SAAO,EAAPA,OALa;AAMbC,uBAAqB,EAArBA,qBANa;AAObG,YAAU,EAAVA,UAPa;AAQb9U,UAAQ,EAARA,QARa;AASbyE,cAAY,EAAZA,YATa;AAUb0Q,UAAQ,EAARA,QAVa;AAWbtT,YAAU,EAAVA,UAXa;AAYbwT,YAAU,EAAVA,UAZa;AAabhT,eAAa,EAAbA,aAba;AAcbJ,SAAO,EAAPA,OAda;AAebe,eAAa,EAAbA,aAfa;AAgBbwB,cAAY,EAAZA,YAhBa;AAiBb8Q,aAAW,EAAXA,WAjBa;AAkBbC,UAAQ,EAARA,QAlBa;AAmBbhV,YAAU,EAAVA,UAnBa;AAoBb/c,OAAK,EAALA,KApBa;AAqBbiyB,QAAM,EAANA,MArBa;AAsBblQ,cAAY,EAAZA,YAtBa;AAuBbmQ,aAAW,EAAXA,WAvBa;AAwBbwB,kBAAgB,EAAhBA,gBAxBa;AAyBbC,YAAU,EAAVA,UAzBa;AA0BbC,cAAY,EAAZA,YA1Ba;AA2BbQ,cAAY,EAAZA,YA3Ba;AA4BbO,KAAG,EAAE;AACHd,cAAU,EAAVA;AADG,GA5BQ;AA+BbU,QAAM,EAANA,MA/Ba;AAgCbrB,UAAQ,EAARA;AAhCa,CAAf,E;;;;;;;;;;;;AC1sBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA,IAAM53B,IAAI,GAAG,EAAb;AACO,IAAM4nB,OAAO,GAAG,SAAVA,OAAU,CAAUC,GAAV,EAAe;AACpC,MAAMtnB,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYsnB,GAAZ,CAAb;;AACA,OAAK,IAAItoB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgB,IAAI,CAACf,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpCS,QAAI,CAACO,IAAI,CAAChB,CAAD,CAAL,CAAJ,GAAgBsoB,GAAG,CAACtnB,IAAI,CAAChB,CAAD,CAAL,CAAnB;AACD;AACF,CALM;AAOP;AACA;AACA;AACA;AACA;;AACO,IAAM+5B,WAAW,GAAG,SAAdA,WAAc,CAAUC,IAAV,EAAgBtT,CAAhB,EAAmBuT,KAAnB,EAA0B;AACnD,MAAM1U,GAAG,GAAGniB,iDAAM,iBAAS62B,KAAT,SAAlB;AACA,MAAMj5B,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYg5B,IAAZ,CAAb,CAFmD,CAInD;;AACAh5B,MAAI,CAACE,OAAL,CAAa,UAAUc,EAAV,EAAc;AACzB,QAAM2kB,MAAM,GAAGqT,IAAI,CAACh4B,EAAD,CAAnB;AAEA;AACJ;AACA;AACA;;AACI,QAAIk4B,QAAQ,GAAG,SAAf;;AACA,QAAIvT,MAAM,CAACniB,OAAP,CAAevE,MAAf,GAAwB,CAA5B,EAA+B;AAC7Bi6B,cAAQ,GAAGvT,MAAM,CAACniB,OAAP,CAAegS,IAAf,CAAoB,GAApB,CAAX;AACD;;AAED,QAAMqQ,MAAM,GAAGc,iEAAkB,CAAChB,MAAM,CAACE,MAAR,CAAjC,CAZyB,CAczB;;AACA,QAAI1gB,UAAU,GAAGwgB,MAAM,CAACrkB,IAAP,KAAgBK,SAAhB,GAA4BgkB,MAAM,CAACrkB,IAAnC,GAA0CqkB,MAAM,CAAC3kB,EAAlE,CAfyB,CAiBzB;;AACA,QAAIsE,UAAJ;;AACA,QAAIxD,+DAAQ,CAAChC,yDAAS,GAAGiC,SAAZ,CAAsBC,UAAvB,CAAZ,EAAgD;AAC9C;AACA,UAAMlB,IAAI,GAAG;AACXO,aAAK,EAAE8D,UAAU,CAACC,OAAX,CACL,sBADK,EAEL,UAACC,CAAD;AAAA,qCAAoBA,CAAC,CAACD,OAAF,CAAU,GAAV,EAAe,GAAf,CAApB;AAAA,SAFK;AADI,OAAb;AAMAE,gBAAU,GAAGZ,2EAAY,CAAC6f,GAAD,EAAMzjB,IAAN,CAAZ,CAAwBA,IAAxB,EAAb;AACAwE,gBAAU,CAAC6zB,UAAX,CAAsBj1B,WAAtB,CAAkCoB,UAAlC;AACD,KAVD,MAUO;AACL,UAAMC,QAAQ,GAAGX,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,MAAvD,CAAjB;AACAU,cAAQ,CAACC,YAAT,CAAsB,OAAtB,EAA+BqgB,MAAM,CAACnkB,UAAP,CAAkB0D,OAAlB,CAA0B,QAA1B,EAAoC,OAApC,CAA/B;AAEA,UAAMK,IAAI,GAAGN,UAAU,CAACO,KAAX,CAAiBgd,sDAAM,CAACyE,cAAxB,CAAb;;AAEA,WAAK,IAAIthB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,IAAI,CAACxG,MAAzB,EAAiC4G,CAAC,EAAlC,EAAsC;AACpC,YAAMC,KAAK,GAAGlB,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,OAAvD,CAAd;AACAiB,aAAK,CAACC,cAAN,CAAqB,sCAArB,EAA6D,WAA7D,EAA0E,UAA1E;AACAD,aAAK,CAACN,YAAN,CAAmB,IAAnB,EAAyB,KAAzB;AACAM,aAAK,CAACN,YAAN,CAAmB,GAAnB,EAAwB,GAAxB;AACAM,aAAK,CAACE,WAAN,GAAoBP,IAAI,CAACI,CAAD,CAAxB;AACAN,gBAAQ,CAAChE,WAAT,CAAqBuE,KAArB;AACD;;AACDR,gBAAU,GAAGC,QAAb;AACD;;AAED,QAAIugB,OAAO,GAAG,CAAd;AACA,QAAIC,MAAM,GAAG,EAAb,CA/CyB,CAgDzB;;AACA,YAAQJ,MAAM,CAACxX,IAAf;AACE,WAAK,OAAL;AACE2X,eAAO,GAAG,CAAV;AACAC,cAAM,GAAG,MAAT;AACA;;AACF,WAAK,QAAL;AACEA,cAAM,GAAG,MAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,UAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,SAAT;AACA;;AACF,WAAK,KAAL;AACEA,cAAM,GAAG,qBAAT;AACA;;AACF,WAAK,YAAL;AACEA,cAAM,GAAG,YAAT;AACA;;AACF,WAAK,WAAL;AACEA,cAAM,GAAG,WAAT;AACA;;AACF,WAAK,WAAL;AACEA,cAAM,GAAG,WAAT;AACA;;AACF,WAAK,eAAL;AACEA,cAAM,GAAG,eAAT;AACA;;AACF,WAAK,WAAL;AACEA,cAAM,GAAG,qBAAT;AACA;;AACF,WAAK,QAAL;AACEA,cAAM,GAAG,QAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,SAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,SAAT;AACA;;AACF,WAAK,YAAL;AACEA,cAAM,GAAG,YAAT;AACA;;AACF,WAAK,UAAL;AACEA,cAAM,GAAG,UAAT;AACA;;AACF,WAAK,OAAL;AACEA,cAAM,GAAG,MAAT;AACA;;AACF;AACEA,cAAM,GAAG,MAAT;AAnDJ,KAjDyB,CAsGzB;;;AACAL,KAAC,CAACtY,OAAF,CAAUuY,MAAM,CAAC3kB,EAAjB,EAAqB;AACnBU,gBAAU,EAAEmkB,MAAM,CAACnkB,UADA;AAEnBsC,WAAK,EAAE+hB,MAFY;AAGnBtkB,eAAS,EAAE0D,UAHQ;AAInBrC,QAAE,EAAEgjB,OAJe;AAKnB/iB,QAAE,EAAE+iB,OALe;AAMnB1kB,WAAK,EAAE83B,QANY;AAOnBr2B,WAAK,EAAEgjB,MAAM,CAAChjB,KAPK;AAQnB7B,QAAE,EAAE2kB,MAAM,CAAC3kB,EARQ;AASnBmY,UAAI,EAAEwM,MAAM,CAACxM,IATM;AAUnBC,gBAAU,EAAEuM,MAAM,CAACvM,UAVA;AAWnBC,aAAO,EAAE+f,+CAAM,CAACpD,UAAP,CAAkBrQ,MAAM,CAAC3kB,EAAzB,KAAgC,EAXtB;AAYnBsU,WAAK,EAAE8jB,+CAAM,CAACtY,WAAP,CAAmB6E,MAAM,CAAC3kB,EAA1B,CAZY;AAanBsY,kBAAY,EAAEqM,MAAM,CAACrM,YAbF;AAcnBhX,WAAK,EAAEqjB,MAAM,CAACxX,IAAP,KAAgB,OAAhB,GAA0B,GAA1B,GAAgCxM,SAdpB;AAenBgL,SAAG,EAAEgZ,MAAM,CAAChZ,GAfO;AAgBnBwB,UAAI,EAAEwX,MAAM,CAACxX,IAhBM;AAiBnB3L,aAAO,EAAE1C,yDAAS,GAAGiC,SAAZ,CAAsBS;AAjBZ,KAArB;AAoBApC,+CAAG,CAACiE,IAAJ,CAAS,SAAT,EAAoB;AAClB3C,gBAAU,EAAEmkB,MAAM,CAACnkB,UADD;AAElBsC,WAAK,EAAE+hB,MAFW;AAGlBtkB,eAAS,EAAE0D,UAHO;AAIlBrC,QAAE,EAAEgjB,OAJc;AAKlB/iB,QAAE,EAAE+iB,OALc;AAMlB1kB,WAAK,EAAE83B,QANW;AAOlBr2B,WAAK,EAAEgjB,MAAM,CAAChjB,KAPI;AAQlB7B,QAAE,EAAE2kB,MAAM,CAAC3kB,EARO;AASlBsU,WAAK,EAAE8jB,+CAAM,CAACtY,WAAP,CAAmB6E,MAAM,CAAC3kB,EAA1B,CATW;AAUlBsB,WAAK,EAAEqjB,MAAM,CAACxX,IAAP,KAAgB,OAAhB,GAA0B,GAA1B,GAAgCxM,SAVrB;AAWlBwM,UAAI,EAAEwX,MAAM,CAACxX,IAXK;AAYlBxB,SAAG,EAAEgZ,MAAM,CAAChZ,GAZM;AAalBnK,aAAO,EAAE1C,yDAAS,GAAGiC,SAAZ,CAAsBS;AAbb,KAApB;AAeD,GA1ID;AA2ID,CAhJM;AAkJP;AACA;AACA;AACA;AACA;;AACO,IAAM62B,QAAQ,GAAG,SAAXA,QAAW,CAAUvsB,KAAV,EAAiB4Y,CAAjB,EAAoB;AAC1CtlB,6CAAG,CAACiE,IAAJ,CAAS,gBAAT,EAA2ByI,KAA3B;AACA,MAAImZ,GAAG,GAAG,CAAV;AACA,MAAIqT,SAAS,GAAG,EAAhB;AAEA,MAAIpT,YAAJ;AACA,MAAIC,iBAAJ;;AAEA,MAAI,OAAOrZ,KAAK,CAACoZ,YAAb,KAA8B,WAAlC,EAA+C;AAC7C,QAAMqT,aAAa,GAAG5S,iEAAkB,CAAC7Z,KAAK,CAACoZ,YAAP,CAAxC;AACAA,gBAAY,GAAGqT,aAAa,CAAC12B,KAA7B;AACAsjB,qBAAiB,GAAGoT,aAAa,CAAC73B,UAAlC;AACD;;AAEDoL,OAAK,CAAC5M,OAAN,CAAc,UAAUmG,IAAV,EAAgB;AAC5B4f,OAAG,GADyB,CAG5B;;AACA,QAAIuT,UAAU,GAAG,OAAOnzB,IAAI,CAACyQ,KAAZ,GAAoB,GAApB,GAA0BzQ,IAAI,CAAC2Q,GAAhD,CAJ4B,CAK5B;;AACA,QAAI,OAAOsiB,SAAS,CAACE,UAAD,CAAhB,KAAiC,WAArC,EAAkD;AAChDF,eAAS,CAACE,UAAD,CAAT,GAAwB,CAAxB;AACAp5B,iDAAG,CAACiE,IAAJ,CAAS,iBAAT,EAA4Bm1B,UAA5B,EAAwCF,SAAS,CAACE,UAAD,CAAjD;AACD,KAHD,MAGO;AACLF,eAAS,CAACE,UAAD,CAAT;AACAp5B,iDAAG,CAACiE,IAAJ,CAAS,iBAAT,EAA4Bm1B,UAA5B,EAAwCF,SAAS,CAACE,UAAD,CAAjD;AACD;;AACD,QAAIC,MAAM,GAAGD,UAAU,GAAG,GAAb,GAAmBF,SAAS,CAACE,UAAD,CAAzC;AACAp5B,+CAAG,CAACiE,IAAJ,CAAS,iCAAT,EAA4Cm1B,UAA5C,EAAwDC,MAAxD,EAAgEH,SAAS,CAACE,UAAD,CAAzE;AACA,QAAIE,aAAa,GAAG,QAAQrzB,IAAI,CAACyQ,KAAjC;AACA,QAAI6iB,WAAW,GAAG,QAAQtzB,IAAI,CAAC2Q,GAA/B;AAEA,QAAMoP,QAAQ,GAAG;AAAEvjB,WAAK,EAAE,EAAT;AAAanB,gBAAU,EAAE;AAAzB,KAAjB;AACA0kB,YAAQ,CAACwT,MAAT,GAAkBvzB,IAAI,CAACpH,MAAL,IAAe,CAAjC,CAnB4B,CAoB5B;AAEA;;AACA,QAAIoH,IAAI,CAAC8H,IAAL,KAAc,YAAlB,EAAgC;AAC9BiY,cAAQ,CAACC,SAAT,GAAqB,MAArB;AACD,KAFD,MAEO;AACLD,cAAQ,CAACC,SAAT,GAAqB,QAArB;AACD,KA3B2B,CA6B5B;;;AACAD,YAAQ,CAACje,cAAT,GAA0B,YAA1B;AACAie,YAAQ,CAAChe,YAAT,GAAwB,YAAxB;AAEA;;AACA,YAAQ/B,IAAI,CAAC8H,IAAb;AACE,WAAK,oBAAL;AACEiY,gBAAQ,CAACje,cAAT,GAA0B,aAA1B;;AACF,WAAK,aAAL;AACEie,gBAAQ,CAAChe,YAAT,GAAwB,aAAxB;AACA;;AACF,WAAK,oBAAL;AACEge,gBAAQ,CAACje,cAAT,GAA0B,aAA1B;;AACF,WAAK,aAAL;AACEie,gBAAQ,CAAChe,YAAT,GAAwB,aAAxB;AACA;;AACF,WAAK,qBAAL;AACEge,gBAAQ,CAACje,cAAT,GAA0B,cAA1B;;AACF,WAAK,cAAL;AACEie,gBAAQ,CAAChe,YAAT,GAAwB,cAAxB;AACA;AAfJ;;AAkBA,QAAIvF,KAAK,GAAG,EAAZ;AACA,QAAInB,UAAU,GAAG,EAAjB;;AAEA,YAAQ2E,IAAI,CAAC0Y,MAAb;AACE,WAAK,QAAL;AACElc,aAAK,GAAG,YAAR;;AACA,YAAI,OAAOqjB,YAAP,KAAwB,WAA5B,EAAyC;AACvCrjB,eAAK,GAAGqjB,YAAR;AACD;;AACD,YAAI,OAAOC,iBAAP,KAA6B,WAAjC,EAA8C;AAC5CzkB,oBAAU,GAAGykB,iBAAb;AACD;;AACDC,gBAAQ,CAAC5a,SAAT,GAAqB,QAArB;AACA4a,gBAAQ,CAAC3a,OAAT,GAAmB,OAAnB;AACA;;AACF,WAAK,QAAL;AACE2a,gBAAQ,CAAC5a,SAAT,GAAqB,QAArB;AACA4a,gBAAQ,CAAC3a,OAAT,GAAmB,QAAnB;AACA2a,gBAAQ,CAACvjB,KAAT,GAAiB,gDAAjB;AACA;;AACF,WAAK,OAAL;AACEujB,gBAAQ,CAAC5a,SAAT,GAAqB,OAArB;AACA4a,gBAAQ,CAAC3a,OAAT,GAAmB,OAAnB;AACA2a,gBAAQ,CAACvjB,KAAT,GAAiB,gCAAjB;AACA;AArBJ;;AAuBA,QAAI,OAAOwD,IAAI,CAACxD,KAAZ,KAAsB,WAA1B,EAAuC;AACrC,UAAMgjB,MAAM,GAAGc,iEAAkB,CAACtgB,IAAI,CAACxD,KAAN,CAAjC;AACAA,WAAK,GAAGgjB,MAAM,CAAChjB,KAAf;AACAnB,gBAAU,GAAGmkB,MAAM,CAACnkB,UAApB;AACD;;AAED0kB,YAAQ,CAACvjB,KAAT,GAAiBujB,QAAQ,CAACvjB,KAAT,IAAkBA,KAAnC;AACAujB,YAAQ,CAAC1kB,UAAT,GAAsB0kB,QAAQ,CAAC1kB,UAAT,IAAuBA,UAA7C;;AAEA,QAAI,OAAO2E,IAAI,CAACugB,WAAZ,KAA4B,WAAhC,EAA6C;AAC3CR,cAAQ,CAACjb,KAAT,GAAiB0b,iEAAkB,CAACxgB,IAAI,CAACugB,WAAN,EAAmBE,8CAAnB,CAAnC;AACD,KAFD,MAEO,IAAI,OAAOha,KAAK,CAACia,kBAAb,KAAoC,WAAxC,EAAqD;AAC1DX,cAAQ,CAACjb,KAAT,GAAiB0b,iEAAkB,CAAC/Z,KAAK,CAACia,kBAAP,EAA2BD,8CAA3B,CAAnC;AACD,KAFM,MAEA;AACLV,cAAQ,CAACjb,KAAT,GAAiB0b,iEAAkB,CAACpnB,IAAI,CAAC0L,KAAN,EAAa2b,8CAAb,CAAnC;AACD;;AAED,QAAI,OAAOzgB,IAAI,CAAC/E,IAAZ,KAAqB,WAAzB,EAAsC;AACpC,UAAI,OAAO+E,IAAI,CAACxD,KAAZ,KAAsB,WAA1B,EAAuC;AACrCujB,gBAAQ,CAACY,cAAT,GAA0B,YAA1B;AACD;AACF,KAJD,MAIO;AACLZ,cAAQ,CAACY,cAAT,GAA0B,YAA1B;AACAZ,cAAQ,CAACa,QAAT,GAAoB,GAApB;AACD,KAtG2B,CAuG5B;AACA;AACA;AACA;AACA;;;AACAb,YAAQ,CAACc,SAAT,GAAqB,MAArB;AACAd,YAAQ,CAAC/kB,KAAT,GAAiBgF,IAAI,CAAC/E,IAAL,CAAU8D,OAAV,CAAkBsd,sDAAM,CAACyE,cAAzB,EAAyC,IAAzC,CAAjB;;AAEA,QAAI,OAAO9gB,IAAI,CAACxD,KAAZ,KAAsB,WAA1B,EAAuC;AACrCujB,cAAQ,CAACvjB,KAAT,GAAiBujB,QAAQ,CAACvjB,KAAT,IAAkB,8CAAnC;AACD;;AAEDujB,YAAQ,CAAC1kB,UAAT,GAAsB0kB,QAAQ,CAAC1kB,UAAT,CAAoB0D,OAApB,CAA4B,QAA5B,EAAsC,OAAtC,CAAtB,CAnH4B,CAoH5B;;AAEAghB,YAAQ,CAACplB,EAAT,GAAcy4B,MAAd;AACArT,YAAQ,CAAC5iB,OAAT,GAAmB,oBAAoBk2B,aAApB,GAAoC,GAApC,GAA0CC,WAA7D,CAvH4B,CAyH5B;;AACAjU,KAAC,CAACvS,OAAF,CAAU9M,IAAI,CAACyQ,KAAf,EAAsBzQ,IAAI,CAAC2Q,GAA3B,EAAgCoP,QAAhC,EAA0CH,GAA1C;AACD,GA3HD;AA4HD,CA1IM;AA4IP;AACA;AACA;AACA;;AACO,IAAM/E,UAAU,GAAG,SAAbA,UAAa,CAAU5f,IAAV,EAAgB;AACxClB,6CAAG,CAACiE,IAAJ,CAAS,oBAAT;AACA+0B,iDAAM,CAACj1B,KAAP;AACA,MAAMkhB,MAAM,GAAGwU,mDAAI,CAACxU,MAApB;AACAA,QAAM,CAACC,EAAP,GAAY8T,+CAAZ;;AAEA,MAAI;AACF;AACA/T,UAAM,CAACnY,KAAP,CAAa5L,IAAb;AACD,GAHD,CAGE,OAAO2I,CAAP,EAAU;AACV;AACD;;AAED,SAAOmvB,+CAAM,CAAClY,UAAP,EAAP;AACD,CAdM;AAgBP;AACA;AACA;AACA;AACA;;AAEO,IAAM+G,IAAI,GAAG,SAAPA,IAAO,CAAU3mB,IAAV,EAAgBN,EAAhB,EAAoB;AACtCZ,6CAAG,CAACiE,IAAJ,CAAS,mBAAT;AACA+0B,iDAAM,CAACj1B,KAAP;AACAi1B,iDAAM,CAAChD,MAAP,CAAc,OAAd;AACA,MAAM/Q,MAAM,GAAGwU,mDAAI,CAACxU,MAApB;AACAA,QAAM,CAACC,EAAP,GAAY8T,+CAAZ,CALsC,CAOtC;AACA;;AACA/T,QAAM,CAACnY,KAAP,CAAa5L,IAAb,EATsC,CAUtC;AACA;AACA;AAEA;;AACA,MAAIqL,GAAG,GAAGysB,+CAAM,CAACjU,YAAP,EAAV;;AACA,MAAI,OAAOxY,GAAP,KAAe,WAAnB,EAAgC;AAC9BA,OAAG,GAAG,IAAN;AACD;;AAED,MAAMlN,IAAI,GAAGK,yDAAS,GAAGiC,SAAzB;AACA,MAAMkY,WAAW,GAAGxa,IAAI,CAACwa,WAAL,IAAoB,EAAxC;AACA,MAAMC,WAAW,GAAGza,IAAI,CAACya,WAAL,IAAoB,EAAxC,CAtBsC,CAwBtC;;AACA,MAAMwL,CAAC,GAAG,IAAIlZ,+CAAQ,CAAC4H,KAAb,CAAmB;AAC3BC,cAAU,EAAE,IADe;AAE3BC,YAAQ,EAAE;AAFiB,GAAnB,EAIPC,QAJO,CAIE;AACR3H,WAAO,EAAED,GADD;AAER6H,WAAO,EAAEyF,WAFD;AAGRxF,WAAO,EAAEyF,WAHD;AAIRxF,WAAO,EAAE,CAJD;AAKRC,WAAO,EAAE;AALD,GAJF,EAWPC,mBAXO,CAWa,YAAY;AAC/B,WAAO,EAAP;AACD,GAbO,CAAV;AAeA,MAAIklB,IAAJ;AACA,MAAMrF,SAAS,GAAG2E,+CAAM,CAACrB,YAAP,EAAlB;AACA33B,6CAAG,CAACiE,IAAJ,CAAS,cAAT,EAAyBowB,SAAzB;;AACA,OAAK,IAAIz1B,EAAC,GAAGy1B,SAAS,CAACx1B,MAAV,GAAmB,CAAhC,EAAmCD,EAAC,IAAI,CAAxC,EAA2CA,EAAC,EAA5C,EAAgD;AAC9C86B,QAAI,GAAGrF,SAAS,CAACz1B,EAAD,CAAhB;AACAoB,+CAAG,CAACiE,IAAJ,CAAS,aAAT,EAAwBy1B,IAAxB;AACAV,mDAAM,CAACpE,SAAP,CAAiB8E,IAAI,CAAC94B,EAAtB,EAA0B84B,IAAI,CAACtjB,KAA/B,EAAsC,OAAtC,EAA+C7U,SAA/C,EAA0Dm4B,IAAI,CAACt2B,OAA/D,EAAwEs2B,IAAI,CAACntB,GAA7E;AACD,GA/CqC,CAiDtC;;;AACA,MAAMqsB,IAAI,GAAGI,+CAAM,CAACnD,WAAP,EAAb;AAEA,MAAMnpB,KAAK,GAAGssB,+CAAM,CAAClD,QAAP,EAAd;AAEA91B,6CAAG,CAACiE,IAAJ,CAASyI,KAAT;AACA,MAAI9N,CAAC,GAAG,CAAR;;AACA,OAAKA,CAAC,GAAGy1B,SAAS,CAACx1B,MAAV,GAAmB,CAA5B,EAA+BD,CAAC,IAAI,CAApC,EAAuCA,CAAC,EAAxC,EAA4C;AAC1C;AACA86B,QAAI,GAAGrF,SAAS,CAACz1B,CAAD,CAAhB;AAEAwlB,wDAAS,CAAC,SAAD,CAAT,CAAqB9gB,MAArB,CAA4B,MAA5B;;AAEA,SAAK,IAAImC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi0B,IAAI,CAACjtB,KAAL,CAAW5N,MAA/B,EAAuC4G,CAAC,EAAxC,EAA4C;AAC1CzF,iDAAG,CAACiE,IAAJ,CAAS,sBAAT,EAAiCy1B,IAAI,CAACjtB,KAAL,CAAWhH,CAAX,CAAjC,EAAgDi0B,IAAI,CAAC94B,EAArD;AACA0kB,OAAC,CAACrY,SAAF,CAAYysB,IAAI,CAACjtB,KAAL,CAAWhH,CAAX,CAAZ,EAA2Bi0B,IAAI,CAAC94B,EAAhC;AACD;AACF;;AACD+3B,aAAW,CAACC,IAAD,EAAOtT,CAAP,EAAU1kB,EAAV,CAAX;AACAq4B,UAAQ,CAACvsB,KAAD,EAAQ4Y,CAAR,CAAR,CApEsC,CAsEtC;AACA;AAEA;;AACA,MAAMnB,GAAG,GAAGniB,iDAAM,iBAASpB,EAAT,SAAlB;AACAujB,KAAG,CAACpjB,IAAJ,CAAS,aAAT,EAAwB,8BAAxB,EA3EsC,CA6EtC;;AACA,MAAMqY,OAAO,GAAGpX,iDAAM,CAAC,MAAMpB,EAAN,GAAW,IAAZ,CAAtB;AACAoN,wEAAM,CAACoL,OAAD,EAAUkM,CAAV,EAAa,CAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,CAAb,EAA2C,WAA3C,EAAwD1kB,EAAxD,CAAN;AAEA,MAAMwB,OAAO,GAAG/C,IAAI,CAACua,cAArB;AACA,MAAM8N,SAAS,GAAGvD,GAAG,CAACzjB,IAAJ,GAAWe,OAAX,EAAlB;AACA,MAAMS,KAAK,GAAGwlB,SAAS,CAACxlB,KAAV,GAAkBE,OAAO,GAAG,CAA1C;AACA,MAAMD,MAAM,GAAGulB,SAAS,CAACvlB,MAAV,GAAmBC,OAAO,GAAG,CAA5C;AACApC,6CAAG,CAACC,KAAJ,2BACqBiC,KADrB,cAC8BC,MAD9B,uBAEeC,OAAO,GAAGkjB,CAAC,CAACwC,MAAF,CAASxT,OAFlC,eAE8ClS,OAAO,GAAGkjB,CAAC,CAACwC,MAAF,CAASvT,OAFjE;AAKAoT,iEAAgB,CAACxD,GAAD,EAAMhiB,MAAN,EAAcD,KAAd,EAAqB7C,IAAI,CAAC0a,WAA1B,CAAhB;AAEAoK,KAAG,CAACpjB,IAAJ,CAAS,SAAT,gBAA2BmB,KAA3B,cAAoCC,MAApC;AACAgiB,KAAG,CACAniB,MADH,CACU,GADV,EAEGjB,IAFH,CAEQ,WAFR,sBAEkCqB,OAAO,GAAGkjB,CAAC,CAACwC,MAAF,CAASxT,OAFrD,eAEiElS,OAAO,GAAGslB,SAAS,CAAC7kB,CAFrF,QA7FsC,CAiGtC;;AACAm2B,iDAAM,CAACtB,UAAP,CAAkB,aAAa94B,CAA/B,EAlGsC,CAoGtC;;AACA,MAAI,CAACS,IAAI,CAACuC,UAAV,EAAsB;AACpB,QAAMmmB,MAAM,GAAGvjB,QAAQ,CAACwjB,gBAAT,CAA0B,UAAUpnB,EAAV,GAAe,sBAAzC,CAAf;;AACA,SAAK,IAAIqnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,MAAM,CAAClpB,MAA3B,EAAmCopB,CAAC,EAApC,EAAwC;AACtC,UAAMhnB,KAAK,GAAG8mB,MAAM,CAACE,CAAD,CAApB,CADsC,CAGtC;;AACA,UAAMC,GAAG,GAAGjnB,KAAK,CAACQ,OAAN,EAAZ;AAEA,UAAMjB,IAAI,GAAGgE,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,MAAvD,CAAb;AACAjE,UAAI,CAAC4E,YAAL,CAAkB,IAAlB,EAAwB,CAAxB;AACA5E,UAAI,CAAC4E,YAAL,CAAkB,IAAlB,EAAwB,CAAxB;AACA5E,UAAI,CAAC4E,YAAL,CAAkB,OAAlB,EAA2B8iB,GAAG,CAAChmB,KAA/B;AACA1B,UAAI,CAAC4E,YAAL,CAAkB,QAAlB,EAA4B8iB,GAAG,CAAC/lB,MAAhC,EAVsC,CAWtC;;AAEAlB,WAAK,CAACknB,YAAN,CAAmB3nB,IAAnB,EAAyBS,KAAK,CAACmnB,UAA/B;AACD;AACF,GAtHqC,CAwHtC;;;AACA,MAAMxoB,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYg5B,IAAZ,CAAb;AACAh5B,MAAI,CAACE,OAAL,CAAa,UAAUC,GAAV,EAAe;AAC1B,QAAMwlB,MAAM,GAAGqT,IAAI,CAAC74B,GAAD,CAAnB;;AAEA,QAAIwlB,MAAM,CAACxM,IAAX,EAAiB;AACf,UAAMrY,IAAI,GAAGsB,iDAAM,CAAC,MAAMpB,EAAN,GAAW,QAAX,GAAsBb,GAAtB,GAA4B,IAA7B,CAAnB;;AACA,UAAIW,IAAJ,EAAU;AACR,YAAMqY,IAAI,GAAGvU,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,GAAvD,CAAb;AACAsU,YAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,OAAlD,EAA2D4f,MAAM,CAACniB,OAAP,CAAegS,IAAf,CAAoB,GAApB,CAA3D;AACA2D,YAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,MAAlD,EAA0D4f,MAAM,CAACxM,IAAjE;AACAA,YAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,KAAlD,EAAyD,UAAzD;;AACA,YAAI4f,MAAM,CAACvM,UAAX,EAAuB;AACrBD,cAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,QAAlD,EAA4D4f,MAAM,CAACvM,UAAnE;AACD;;AAED,YAAM2gB,QAAQ,GAAGj5B,IAAI,CAACI,MAAL,CAAY,YAAY;AACvC,iBAAOiY,IAAP;AACD,SAFgB,EAEd,cAFc,CAAjB;AAIA,YAAMnV,KAAK,GAAGlD,IAAI,CAACsB,MAAL,CAAY,kBAAZ,CAAd;;AACA,YAAI4B,KAAJ,EAAW;AACT+1B,kBAAQ,CAACr2B,MAAT,CAAgB,YAAY;AAC1B,mBAAOM,KAAK,CAAClD,IAAN,EAAP;AACD,WAFD;AAGD;;AAED,YAAMO,MAAK,GAAGP,IAAI,CAACsB,MAAL,CAAY,QAAZ,CAAd;;AACA,YAAIf,MAAJ,EAAW;AACT04B,kBAAQ,CAACr2B,MAAT,CAAgB,YAAY;AAC1B,mBAAOrC,MAAK,CAACP,IAAN,EAAP;AACD,WAFD;AAGD;AACF;AACF;AACF,GAjCD;AAkCD,CA5JM;AA8JQ;AACbumB,SAAO,EAAPA,OADa;AAEb0R,aAAW,EAAXA,WAFa;AAGbM,UAAQ,EAARA,QAHa;AAIbnY,YAAU,EAAVA,UAJa;AAKb+G,MAAI,EAAJA;AALa,CAAf,E;;;;;;;;;;;;ACrfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMxoB,IAAI,GAAG,EAAb;AACO,IAAM4nB,OAAO,GAAG,SAAVA,OAAU,CAAUC,GAAV,EAAe;AACpC,MAAMtnB,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYsnB,GAAZ,CAAb;;AACA,OAAK,IAAItoB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgB,IAAI,CAACf,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpCS,QAAI,CAACO,IAAI,CAAChB,CAAD,CAAL,CAAJ,GAAgBsoB,GAAG,CAACtnB,IAAI,CAAChB,CAAD,CAAL,CAAnB;AACD;AACF,CALM;AAOP;AACA;AACA;AACA;AACA;;AACO,IAAM+5B,WAAW,GAAG,SAAdA,WAAc,CAAUC,IAAV,EAAgBtT,CAAhB,EAAmBuT,KAAnB,EAA0B;AACnD,MAAM1U,GAAG,GAAGniB,iDAAM,iBAAS62B,KAAT,SAAlB;AACA,MAAMj5B,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYg5B,IAAZ,CAAb,CAFmD,CAInD;;AACAh5B,MAAI,CAACE,OAAL,CAAa,UAAUc,EAAV,EAAc;AACzB,QAAM2kB,MAAM,GAAGqT,IAAI,CAACh4B,EAAD,CAAnB;AAEA;AACJ;AACA;AACA;;AACI,QAAIk4B,QAAQ,GAAG,SAAf;;AACA,QAAIvT,MAAM,CAACniB,OAAP,CAAevE,MAAf,GAAwB,CAA5B,EAA+B;AAC7Bi6B,cAAQ,GAAGvT,MAAM,CAACniB,OAAP,CAAegS,IAAf,CAAoB,GAApB,CAAX;AACD;;AAED,QAAMqQ,MAAM,GAAGc,iEAAkB,CAAChB,MAAM,CAACE,MAAR,CAAjC,CAZyB,CAczB;;AACA,QAAI1gB,UAAU,GAAGwgB,MAAM,CAACrkB,IAAP,KAAgBK,SAAhB,GAA4BgkB,MAAM,CAACrkB,IAAnC,GAA0CqkB,MAAM,CAAC3kB,EAAlE,CAfyB,CAiBzB;;AACA,QAAIsE,UAAJ;;AACA,QAAIxD,+DAAQ,CAAChC,yDAAS,GAAGiC,SAAZ,CAAsBC,UAAvB,CAAZ,EAAgD;AAC9C;AACA,UAAMlB,IAAI,GAAG;AACXO,aAAK,EAAE8D,UAAU,CAACC,OAAX,CACL,sBADK,EAEL,UAACC,CAAD;AAAA,qCAAoBA,CAAC,CAACD,OAAF,CAAU,GAAV,EAAe,GAAf,CAApB;AAAA,SAFK;AADI,OAAb;AAMAE,gBAAU,GAAGZ,2EAAY,CAAC6f,GAAD,EAAMzjB,IAAN,CAAZ,CAAwBA,IAAxB,EAAb;AACAwE,gBAAU,CAAC6zB,UAAX,CAAsBj1B,WAAtB,CAAkCoB,UAAlC;AACD,KAVD,MAUO;AACL,UAAMC,QAAQ,GAAGX,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,MAAvD,CAAjB;AACAU,cAAQ,CAACC,YAAT,CAAsB,OAAtB,EAA+BqgB,MAAM,CAACnkB,UAAP,CAAkB0D,OAAlB,CAA0B,QAA1B,EAAoC,OAApC,CAA/B;AAEA,UAAMK,IAAI,GAAGN,UAAU,CAACO,KAAX,CAAiBgd,sDAAM,CAACyE,cAAxB,CAAb;;AAEA,WAAK,IAAIthB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,IAAI,CAACxG,MAAzB,EAAiC4G,CAAC,EAAlC,EAAsC;AACpC,YAAMC,KAAK,GAAGlB,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,OAAvD,CAAd;AACAiB,aAAK,CAACC,cAAN,CAAqB,sCAArB,EAA6D,WAA7D,EAA0E,UAA1E;AACAD,aAAK,CAACN,YAAN,CAAmB,IAAnB,EAAyB,KAAzB;AACAM,aAAK,CAACN,YAAN,CAAmB,GAAnB,EAAwB,GAAxB;AACAM,aAAK,CAACE,WAAN,GAAoBP,IAAI,CAACI,CAAD,CAAxB;AACAN,gBAAQ,CAAChE,WAAT,CAAqBuE,KAArB;AACD;;AACDR,gBAAU,GAAGC,QAAb;AACD;;AAED,QAAIugB,OAAO,GAAG,CAAd;AACA,QAAIC,MAAM,GAAG,EAAb,CA/CyB,CAgDzB;;AACA,YAAQJ,MAAM,CAACxX,IAAf;AACE,WAAK,OAAL;AACE2X,eAAO,GAAG,CAAV;AACAC,cAAM,GAAG,MAAT;AACA;;AACF,WAAK,QAAL;AACEA,cAAM,GAAG,MAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,UAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,SAAT;AACA;;AACF,WAAK,KAAL;AACEA,cAAM,GAAG,qBAAT;AACA;;AACF,WAAK,YAAL;AACEA,cAAM,GAAG,YAAT;AACA;;AACF,WAAK,WAAL;AACEA,cAAM,GAAG,WAAT;AACA;;AACF,WAAK,WAAL;AACEA,cAAM,GAAG,WAAT;AACA;;AACF,WAAK,eAAL;AACEA,cAAM,GAAG,eAAT;AACA;;AACF,WAAK,WAAL;AACEA,cAAM,GAAG,qBAAT;AACA;;AACF,WAAK,QAAL;AACEA,cAAM,GAAG,QAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,SAAT;AACA;;AACF,WAAK,SAAL;AACEA,cAAM,GAAG,SAAT;AACA;;AACF,WAAK,YAAL;AACEA,cAAM,GAAG,YAAT;AACA;;AACF,WAAK,UAAL;AACEA,cAAM,GAAG,UAAT;AACA;;AACF,WAAK,OAAL;AACEA,cAAM,GAAG,MAAT;AACA;;AACF;AACEA,cAAM,GAAG,MAAT;AAnDJ,KAjDyB,CAsGzB;;;AACA3lB,+CAAG,CAAC2I,IAAJ,CAAS,aAAT,EAAwB4c,MAAM,CAAC3kB,EAA/B,EAAmC2kB,MAAM,CAACrQ,KAA1C;AACAoQ,KAAC,CAACtY,OAAF,CAAUgsB,+CAAM,CAACtY,WAAP,CAAmB6E,MAAM,CAAC3kB,EAA1B,CAAV,EAAyC;AACvCkmB,eAAS,EAAE,KAD4B;AAEvCxlB,gBAAU,EAAEmkB,MAAM,CAACnkB,UAFoB;AAGvCsC,WAAK,EAAE+hB,MAHgC;AAIvC1kB,WAAK,EAAEiE,UAJgC;AAKvCxC,QAAE,EAAEgjB,OALmC;AAMvC/iB,QAAE,EAAE+iB,OANmC;AAOvC1kB,WAAK,EAAE83B,QAPgC;AAQvCr2B,WAAK,EAAEgjB,MAAM,CAAChjB,KARyB;AASvC7B,QAAE,EAAEo4B,+CAAM,CAACtY,WAAP,CAAmB6E,MAAM,CAAC3kB,EAA1B;AATmC,KAAzC;AAWD,GAnHD;AAoHD,CAzHM;AA2HP;AACA;AACA;AACA;AACA;;AACO,IAAMq4B,QAAQ,GAAG,SAAXA,QAAW,CAAUvsB,KAAV,EAAiB4Y,CAAjB,EAAoB;AAC1C,MAAIO,GAAG,GAAG,CAAV;AAEA,MAAIC,YAAJ;AACA,MAAIC,iBAAJ;;AAEA,MAAI,OAAOrZ,KAAK,CAACoZ,YAAb,KAA8B,WAAlC,EAA+C;AAC7C,QAAMqT,aAAa,GAAG5S,iEAAkB,CAAC7Z,KAAK,CAACoZ,YAAP,CAAxC;AACAA,gBAAY,GAAGqT,aAAa,CAAC12B,KAA7B;AACAsjB,qBAAiB,GAAGoT,aAAa,CAAC73B,UAAlC;AACD;;AAEDoL,OAAK,CAAC5M,OAAN,CAAc,UAAUmG,IAAV,EAAgB;AAC5B4f,OAAG,GADyB,CAG5B;;AACA,QAAIwT,MAAM,GAAG,OAAOpzB,IAAI,CAACyQ,KAAZ,GAAoB,GAApB,GAA0BzQ,IAAI,CAAC2Q,GAA5C;AACA,QAAI0iB,aAAa,GAAG,QAAQrzB,IAAI,CAACyQ,KAAjC;AACA,QAAI6iB,WAAW,GAAG,QAAQtzB,IAAI,CAAC2Q,GAA/B;AAEA,QAAMoP,QAAQ,GAAG,EAAjB,CAR4B,CAU5B;;AACA,QAAI/f,IAAI,CAAC8H,IAAL,KAAc,YAAlB,EAAgC;AAC9BiY,cAAQ,CAACC,SAAT,GAAqB,MAArB;AACD,KAFD,MAEO;AACLD,cAAQ,CAACC,SAAT,GAAqB,QAArB;AACD;;AAED,QAAIxjB,KAAK,GAAG,EAAZ;AACA,QAAInB,UAAU,GAAG,EAAjB;;AAEA,QAAI,OAAO2E,IAAI,CAACxD,KAAZ,KAAsB,WAA1B,EAAuC;AACrC,UAAMgjB,MAAM,GAAGc,iEAAkB,CAACtgB,IAAI,CAACxD,KAAN,CAAjC;AACAA,WAAK,GAAGgjB,MAAM,CAAChjB,KAAf;AACAnB,gBAAU,GAAGmkB,MAAM,CAACnkB,UAApB;AACD,KAJD,MAIO;AACL,cAAQ2E,IAAI,CAAC0Y,MAAb;AACE,aAAK,QAAL;AACElc,eAAK,GAAG,WAAR;;AACA,cAAI,OAAOqjB,YAAP,KAAwB,WAA5B,EAAyC;AACvCrjB,iBAAK,GAAGqjB,YAAR;AACD;;AACD,cAAI,OAAOC,iBAAP,KAA6B,WAAjC,EAA8C;AAC5CzkB,sBAAU,GAAGykB,iBAAb;AACD;;AACD;;AACF,aAAK,QAAL;AACEtjB,eAAK,GAAG,gDAAR;AACA;;AACF,aAAK,OAAL;AACEA,eAAK,GAAG,gCAAR;AACA;AAfJ;AAiBD;;AAEDujB,YAAQ,CAACvjB,KAAT,GAAiBA,KAAjB;AACAujB,YAAQ,CAAC1kB,UAAT,GAAsBA,UAAtB;;AAEA,QAAI,OAAO2E,IAAI,CAACugB,WAAZ,KAA4B,WAAhC,EAA6C;AAC3CR,cAAQ,CAACjb,KAAT,GAAiB0b,iEAAkB,CAACxgB,IAAI,CAACugB,WAAN,EAAmBE,8CAAnB,CAAnC;AACD,KAFD,MAEO,IAAI,OAAOha,KAAK,CAACia,kBAAb,KAAoC,WAAxC,EAAqD;AAC1DX,cAAQ,CAACjb,KAAT,GAAiB0b,iEAAkB,CAAC/Z,KAAK,CAACia,kBAAP,EAA2BD,8CAA3B,CAAnC;AACD,KAFM,MAEA;AACLV,cAAQ,CAACjb,KAAT,GAAiB0b,iEAAkB,CAACpnB,IAAI,CAAC0L,KAAN,EAAa2b,8CAAb,CAAnC;AACD;;AAED,QAAI,OAAOzgB,IAAI,CAAC/E,IAAZ,KAAqB,WAAzB,EAAsC;AACpC,UAAI,OAAO+E,IAAI,CAACxD,KAAZ,KAAsB,WAA1B,EAAuC;AACrCujB,gBAAQ,CAACY,cAAT,GAA0B,YAA1B;AACD;AACF,KAJD,MAIO;AACLZ,cAAQ,CAACY,cAAT,GAA0B,YAA1B;AACAZ,cAAQ,CAACa,QAAT,GAAoB,GAApB;;AAEA,UAAInlB,+DAAQ,CAAChC,yDAAS,GAAGiC,SAAZ,CAAsBC,UAAvB,CAAZ,EAAgD;AAC9CokB,gBAAQ,CAACc,SAAT,GAAqB,MAArB;AACAd,gBAAQ,CAAC/kB,KAAT,0BAAgCo4B,MAAhC,oCAA8DC,aAA9D,iBAAkFC,WAAlF,gBAAkGtzB,IAAI,CAAC/E,IAAL,CAAU8D,OAAV,CAChG,sBADgG,EAEhG,UAACC,CAAD;AAAA,qCAAoBA,CAAC,CAACD,OAAF,CAAU,GAAV,EAAe,GAAf,CAApB;AAAA,SAFgG,CAAlG;AAID,OAND,MAMO;AACLghB,gBAAQ,CAACc,SAAT,GAAqB,MAArB;AACAd,gBAAQ,CAAC/kB,KAAT,GAAiBgF,IAAI,CAAC/E,IAAL,CAAU8D,OAAV,CAAkBsd,sDAAM,CAACyE,cAAzB,EAAyC,IAAzC,CAAjB;;AAEA,YAAI,OAAO9gB,IAAI,CAACxD,KAAZ,KAAsB,WAA1B,EAAuC;AACrCujB,kBAAQ,CAACvjB,KAAT,GAAiBujB,QAAQ,CAACvjB,KAAT,IAAkB,6CAAnC;AACD;;AAEDujB,gBAAQ,CAAC1kB,UAAT,GAAsB0kB,QAAQ,CAAC1kB,UAAT,CAAoB0D,OAApB,CAA4B,QAA5B,EAAsC,OAAtC,CAAtB;AACD;AACF;;AAEDghB,YAAQ,CAACplB,EAAT,GAAcy4B,MAAd;AACArT,YAAQ,CAAChlB,KAAT,GAAiBs4B,aAAa,GAAG,GAAhB,GAAsBC,WAAvC;AACAvT,YAAQ,CAACwT,MAAT,GAAkBvzB,IAAI,CAACpH,MAAL,IAAe,CAAjC,CAnF4B,CAqF5B;;AACAymB,KAAC,CAACvS,OAAF,CAAUimB,+CAAM,CAACtY,WAAP,CAAmBza,IAAI,CAACyQ,KAAxB,CAAV,EAA0CsiB,+CAAM,CAACtY,WAAP,CAAmBza,IAAI,CAAC2Q,GAAxB,CAA1C,EAAwEoP,QAAxE,EAAkFH,GAAlF;AACD,GAvFD;AAwFD,CApGM;AAsGP;AACA;AACA;AACA;;AACO,IAAM/E,UAAU,GAAG,SAAbA,UAAa,CAAU5f,IAAV,EAAgB;AACxClB,6CAAG,CAACiE,IAAJ,CAAS,oBAAT;AACA+0B,iDAAM,CAACj1B,KAAP;;AACA,MAAI;AACF,QAAMkhB,MAAM,GAAGwU,mDAAI,CAACxU,MAApB;AACAA,UAAM,CAACC,EAAP,GAAY8T,+CAAZ,CAFE,CAIF;;AACA/T,UAAM,CAACnY,KAAP,CAAa5L,IAAb;AACA,WAAO83B,+CAAM,CAAClY,UAAP,EAAP;AACD,GAPD,CAOE,OAAOjX,CAAP,EAAU;AACV;AACD;AACF,CAbM;AAeP;AACA;AACA;AACA;AACA;;AACO,IAAMge,IAAI,GAAG,SAAPA,IAAO,CAAU3mB,IAAV,EAAgBN,EAAhB,EAAoB;AACtCZ,6CAAG,CAACiE,IAAJ,CAAS,mBAAT;AACA+0B,iDAAM,CAACj1B,KAAP;AACAi1B,iDAAM,CAAChD,MAAP,CAAc,OAAd;AACA,MAAM/Q,MAAM,GAAGwU,mDAAI,CAACxU,MAApB;AACAA,QAAM,CAACC,EAAP,GAAY8T,+CAAZ,CALsC,CAOtC;AACA;;AACA/T,QAAM,CAACnY,KAAP,CAAa5L,IAAb,EATsC,CAUtC;AACA;AACA;AAEA;;AACA,MAAIqL,GAAG,GAAGysB,+CAAM,CAACjU,YAAP,EAAV;;AACA,MAAI,OAAOxY,GAAP,KAAe,WAAnB,EAAgC;AAC9BA,OAAG,GAAG,IAAN;AACD;;AAED,MAAMlN,IAAI,GAAGK,yDAAS,GAAGiC,SAAzB;AACA,MAAMkY,WAAW,GAAGxa,IAAI,CAACwa,WAAL,IAAoB,EAAxC;AACA,MAAMC,WAAW,GAAGza,IAAI,CAACya,WAAL,IAAoB,EAAxC,CAtBsC,CAwBtC;;AACA,MAAMwL,CAAC,GAAG,IAAIlZ,+CAAQ,CAAC4H,KAAb,CAAmB;AAC3BC,cAAU,EAAE,IADe;AAE3BC,YAAQ,EAAE;AAFiB,GAAnB,EAIPC,QAJO,CAIE;AACR3H,WAAO,EAAED,GADD;AAER6H,WAAO,EAAEyF,WAFD;AAGRxF,WAAO,EAAEyF,WAHD;AAIRxF,WAAO,EAAE,CAJD;AAKRC,WAAO,EAAE;AALD,GAJF,EAWPC,mBAXO,CAWa,YAAY;AAC/B,WAAO,EAAP;AACD,GAbO,CAAV;AAeA,MAAIklB,IAAJ;AACA,MAAMrF,SAAS,GAAG2E,+CAAM,CAACrB,YAAP,EAAlB;;AACA,OAAK,IAAI/4B,EAAC,GAAGy1B,SAAS,CAACx1B,MAAV,GAAmB,CAAhC,EAAmCD,EAAC,IAAI,CAAxC,EAA2CA,EAAC,EAA5C,EAAgD;AAC9C86B,QAAI,GAAGrF,SAAS,CAACz1B,EAAD,CAAhB;AACAo6B,mDAAM,CAACpE,SAAP,CAAiB8E,IAAI,CAAC94B,EAAtB,EAA0B84B,IAAI,CAACtjB,KAA/B,EAAsC,OAAtC,EAA+C7U,SAA/C,EAA0Dm4B,IAAI,CAACt2B,OAA/D;AACD,GA7CqC,CA+CtC;;;AACA,MAAMw1B,IAAI,GAAGI,+CAAM,CAACnD,WAAP,EAAb;AACA71B,6CAAG,CAAC2I,IAAJ,CAAS,cAAT,EAAyBiwB,IAAzB;AAEA,MAAMlsB,KAAK,GAAGssB,+CAAM,CAAClD,QAAP,EAAd;AAEA,MAAIl3B,CAAC,GAAG,CAAR;;AACA,OAAKA,CAAC,GAAGy1B,SAAS,CAACx1B,MAAV,GAAmB,CAA5B,EAA+BD,CAAC,IAAI,CAApC,EAAuCA,CAAC,EAAxC,EAA4C;AAC1C86B,QAAI,GAAGrF,SAAS,CAACz1B,CAAD,CAAhB;AAEAwlB,wDAAS,CAAC,SAAD,CAAT,CAAqB9gB,MAArB,CAA4B,MAA5B;;AAEA,SAAK,IAAImC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi0B,IAAI,CAACjtB,KAAL,CAAW5N,MAA/B,EAAuC4G,CAAC,EAAxC,EAA4C;AAC1CzF,iDAAG,CAAC2I,IAAJ,CACE,kBADF,EAEE+wB,IAAI,CAACjtB,KAAL,CAAWhH,CAAX,CAFF,EAGEuzB,+CAAM,CAACtY,WAAP,CAAmBgZ,IAAI,CAACjtB,KAAL,CAAWhH,CAAX,CAAnB,CAHF,EAIEuzB,+CAAM,CAACtY,WAAP,CAAmBgZ,IAAI,CAAC94B,EAAxB,CAJF;AAMA0kB,OAAC,CAACrY,SAAF,CAAY+rB,+CAAM,CAACtY,WAAP,CAAmBgZ,IAAI,CAACjtB,KAAL,CAAWhH,CAAX,CAAnB,CAAZ,EAA+CuzB,+CAAM,CAACtY,WAAP,CAAmBgZ,IAAI,CAAC94B,EAAxB,CAA/C;AACD;AACF;;AACD+3B,aAAW,CAACC,IAAD,EAAOtT,CAAP,EAAU1kB,EAAV,CAAX;AACAq4B,UAAQ,CAACvsB,KAAD,EAAQ4Y,CAAR,CAAR,CAtEsC,CAwEtC;;AACA,MAAMsU,MAAM,GAAG7F,+CAAO,CAAC/lB,MAAvB;AACA,MAAMA,MAAM,GAAG,IAAI4rB,MAAJ,EAAf,CA1EsC,CA4EtC;;AACAC,2DAAe,CAAC7F,WAAhB,CAA4BhmB,MAA5B,EA7EsC,CA+EtC;;AACAA,QAAM,CAAC8rB,MAAP,GAAgBC,IAAhB,GAAuB,SAASC,MAAT,CAAgBv5B,MAAhB,EAAwBG,EAAxB,EAA4BqF,IAA5B,EAAkC8H,IAAlC,EAAwC;AAC7D,QAAMsa,MAAM,GAAG5nB,MAAM,CAClB6C,MADY,CACL,QADK,EAEZvC,IAFY,CAEP,IAFO,EAEDH,EAFC,EAGZG,IAHY,CAGP,SAHO,EAGI,WAHJ,EAIZA,IAJY,CAIP,MAJO,EAIC,CAJD,EAKZA,IALY,CAKP,MALO,EAKC,CALD,EAMZA,IANY,CAMP,aANO,EAMQ,aANR,EAOZA,IAPY,CAOP,aAPO,EAOQ,CAPR,EAQZA,IARY,CAQP,cARO,EAQS,CART,EASZA,IATY,CASP,QATO,EASG,MATH,CAAf;AAWA,QAAMyG,IAAI,GAAG6gB,MAAM,CAAC/kB,MAAP,CAAc,MAAd,EAAsBvC,IAAtB,CAA2B,GAA3B,EAAgC,qBAAhC,CAAb;AACAgzB,mDAAO,CAACkG,IAAR,CAAa91B,UAAb,CAAwBqD,IAAxB,EAA8BvB,IAAI,CAAC8H,IAAI,GAAG,OAAR,CAAlC;AACD,GAdD,CAhFsC,CAgGtC;;;AACAC,QAAM,CAAC8rB,MAAP,GAAgBE,MAAhB,GAAyB,SAASA,MAAT,CAAgBv5B,MAAhB,EAAwBG,EAAxB,EAA4B;AACnD,QAAMynB,MAAM,GAAG5nB,MAAM,CAClB6C,MADY,CACL,QADK,EAEZvC,IAFY,CAEP,IAFO,EAEDH,EAFC,EAGZG,IAHY,CAGP,SAHO,EAGI,WAHJ,EAIZA,IAJY,CAIP,MAJO,EAIC,CAJD,EAKZA,IALY,CAKP,MALO,EAKC,CALD,EAMZA,IANY,CAMP,aANO,EAMQ,aANR,EAOZA,IAPY,CAOP,aAPO,EAOQ,CAPR,EAQZA,IARY,CAQP,cARO,EAQS,CART,EASZA,IATY,CASP,QATO,EASG,MATH,CAAf;AAWAsnB,UAAM,CACH/kB,MADH,CACU,MADV,EAEGvC,IAFH,CAEQ,GAFR,EAEa,uBAFb,EAGGA,IAHH,CAGQ,OAHR,EAGiB,eAHjB,EAIG0B,KAJH,CAIS,cAJT,EAIyB,CAJzB,EAKGA,KALH,CAKS,kBALT,EAK6B,KAL7B;AAMD,GAlBD,CAjGsC,CAqHtC;;;AACA,MAAM0hB,GAAG,GAAGniB,iDAAM,iBAASpB,EAAT,SAAlB;AACAujB,KAAG,CAACpjB,IAAJ,CAAS,aAAT,EAAwB,8BAAxB;AAEAf,6CAAG,CAAC2I,IAAJ,CAAS2c,CAAT,EAzHsC,CA2HtC;;AACA,MAAMlM,OAAO,GAAGpX,iDAAM,CAAC,MAAMpB,EAAN,GAAW,IAAZ,CAAtB;AACAoN,QAAM,CAACoL,OAAD,EAAUkM,CAAV,CAAN;AAEAlM,SAAO,CAACgL,SAAR,CAAkB,QAAlB,EAA4BrjB,IAA5B,CAAiC,OAAjC,EAA0C,YAAY;AACpD,WAAOi4B,+CAAM,CAACpD,UAAP,CAAkB,KAAKh1B,EAAvB,CAAP;AACD,GAFD;AAIA,MAAMwB,OAAO,GAAG/C,IAAI,CAACua,cAArB;AACA,MAAM8N,SAAS,GAAGvD,GAAG,CAACzjB,IAAJ,GAAWe,OAAX,EAAlB;AACA,MAAMS,KAAK,GAAGwlB,SAAS,CAACxlB,KAAV,GAAkBE,OAAO,GAAG,CAA1C;AACA,MAAMD,MAAM,GAAGulB,SAAS,CAACvlB,MAAV,GAAmBC,OAAO,GAAG,CAA5C;AAEAulB,iEAAgB,CAACxD,GAAD,EAAMhiB,MAAN,EAAcD,KAAd,EAAqB7C,IAAI,CAAC0a,WAA1B,CAAhB,CAxIsC,CA0ItC;;AACA,MAAM6N,IAAI,aAAMF,SAAS,CAAC9kB,CAAV,GAAcR,OAApB,cAA+BslB,SAAS,CAAC7kB,CAAV,GAAcT,OAA7C,cAAwDF,KAAxD,cAAiEC,MAAjE,CAAV;AACAnC,6CAAG,CAACC,KAAJ,mBAAqB2nB,IAArB;AACAzD,KAAG,CAACpjB,IAAJ,CAAS,SAAT,EAAoB6mB,IAApB,EA7IsC,CA+ItC;;AACAoR,iDAAM,CAACtB,UAAP,CAAkB,aAAa94B,CAA/B,EAhJsC,CAkJtC;;AACA,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGy1B,SAAS,CAACx1B,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC86B,QAAI,GAAGrF,SAAS,CAACz1B,CAAD,CAAhB;;AACA,QAAI86B,IAAI,CAACtjB,KAAL,KAAe,WAAnB,EAAgC;AAC9B,UAAM8jB,YAAY,GAAG11B,QAAQ,CAACwjB,gBAAT,CACnB,MAAMpnB,EAAN,GAAW,QAAX,GAAsBo4B,+CAAM,CAACtY,WAAP,CAAmBgZ,IAAI,CAAC94B,EAAxB,CAAtB,GAAoD,SADjC,CAArB;AAGA,UAAMu5B,SAAS,GAAG31B,QAAQ,CAACwjB,gBAAT,CAChB,MAAMpnB,EAAN,GAAW,QAAX,GAAsBo4B,+CAAM,CAACtY,WAAP,CAAmBgZ,IAAI,CAAC94B,EAAxB,CAAtB,GAAoD,IADpC,CAAlB;AAIA,UAAMw5B,IAAI,GAAGF,YAAY,CAAC,CAAD,CAAZ,CAAgBt3B,CAAhB,CAAkBy3B,OAAlB,CAA0BhzB,KAAvC;AACA,UAAMizB,IAAI,GAAGJ,YAAY,CAAC,CAAD,CAAZ,CAAgBr3B,CAAhB,CAAkBw3B,OAAlB,CAA0BhzB,KAAvC;AACA,UAAMnF,MAAK,GAAGg4B,YAAY,CAAC,CAAD,CAAZ,CAAgBh4B,KAAhB,CAAsBm4B,OAAtB,CAA8BhzB,KAA5C;AACA,UAAMkzB,OAAO,GAAGv4B,iDAAM,CAACm4B,SAAS,CAAC,CAAD,CAAV,CAAtB;AACA,UAAMK,EAAE,GAAGD,OAAO,CAACv4B,MAAR,CAAe,QAAf,CAAX;AACAw4B,QAAE,CAACz5B,IAAH,CAAQ,WAAR,sBAAkCq5B,IAAI,GAAGl4B,MAAK,GAAG,CAAjD,eAAuDo4B,IAAI,GAAG,EAA9D;AACAE,QAAE,CAACz5B,IAAH,CAAQ,IAAR,EAAcH,EAAE,GAAG,MAAnB;;AAEA,WAAK,IAAI6E,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGi0B,IAAI,CAACt2B,OAAL,CAAavE,MAAjC,EAAyC4G,EAAC,EAA1C,EAA8C;AAC5C00B,iBAAS,CAAC,CAAD,CAAT,CAAaM,SAAb,CAAuBC,GAAvB,CAA2BhB,IAAI,CAACt2B,OAAL,CAAaqC,EAAb,CAA3B;AACD;AACF;AACF,GAzKqC,CA2KtC;;;AACA,MAAI,CAAC/D,+DAAQ,CAACrC,IAAI,CAACuC,UAAN,CAAT,IAA8B,IAAlC,EAAwC;AAAE;AACxC,QAAMmmB,MAAM,GAAGvjB,QAAQ,CAACwjB,gBAAT,CAA0B,UAAUpnB,EAAV,GAAe,sBAAzC,CAAf;;AACA,SAAK,IAAIqnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,MAAM,CAAClpB,MAA3B,EAAmCopB,CAAC,EAApC,EAAwC;AACtC,UAAMhnB,KAAK,GAAG8mB,MAAM,CAACE,CAAD,CAApB,CADsC,CAGtC;;AACA,UAAMC,GAAG,GAAGjnB,KAAK,CAACQ,OAAN,EAAZ;AAEA,UAAMjB,IAAI,GAAGgE,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,MAAvD,CAAb;AACAjE,UAAI,CAAC4E,YAAL,CAAkB,IAAlB,EAAwB,CAAxB;AACA5E,UAAI,CAAC4E,YAAL,CAAkB,IAAlB,EAAwB,CAAxB;AACA5E,UAAI,CAAC4E,YAAL,CAAkB,OAAlB,EAA2B8iB,GAAG,CAAChmB,KAA/B;AACA1B,UAAI,CAAC4E,YAAL,CAAkB,QAAlB,EAA4B8iB,GAAG,CAAC/lB,MAAhC,EAVsC,CAWtC;;AAEAlB,WAAK,CAACknB,YAAN,CAAmB3nB,IAAnB,EAAyBS,KAAK,CAACmnB,UAA/B;AACD;AACF,GA7LqC,CA+LtC;;;AACA,MAAMxoB,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYg5B,IAAZ,CAAb;AACAh5B,MAAI,CAACE,OAAL,CAAa,UAAUC,GAAV,EAAe;AAC1B,QAAMwlB,MAAM,GAAGqT,IAAI,CAAC74B,GAAD,CAAnB;;AAEA,QAAIwlB,MAAM,CAACxM,IAAX,EAAiB;AACf,UAAMrY,IAAI,GAAGsB,iDAAM,CAAC,MAAMpB,EAAN,GAAW,QAAX,GAAsBo4B,+CAAM,CAACtY,WAAP,CAAmB3gB,GAAnB,CAAtB,GAAgD,IAAjD,CAAnB;;AACA,UAAIW,IAAJ,EAAU;AACR,YAAMqY,IAAI,GAAGvU,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,GAAvD,CAAb;AACAsU,YAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,OAAlD,EAA2D4f,MAAM,CAACniB,OAAP,CAAegS,IAAf,CAAoB,GAApB,CAA3D;AACA2D,YAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,MAAlD,EAA0D4f,MAAM,CAACxM,IAAjE;AACAA,YAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,KAAlD,EAAyD,UAAzD;;AACA,YAAI4f,MAAM,CAACvM,UAAX,EAAuB;AACrBD,cAAI,CAACpT,cAAL,CAAoB,4BAApB,EAAkD,QAAlD,EAA4D4f,MAAM,CAACvM,UAAnE;AACD;;AAED,YAAM2gB,QAAQ,GAAGj5B,IAAI,CAACI,MAAL,CAAY,YAAY;AACvC,iBAAOiY,IAAP;AACD,SAFgB,EAEd,cAFc,CAAjB;AAIA,YAAMnV,KAAK,GAAGlD,IAAI,CAACsB,MAAL,CAAY,kBAAZ,CAAd;;AACA,YAAI4B,KAAJ,EAAW;AACT+1B,kBAAQ,CAACr2B,MAAT,CAAgB,YAAY;AAC1B,mBAAOM,KAAK,CAAClD,IAAN,EAAP;AACD,WAFD;AAGD;;AAED,YAAMO,MAAK,GAAGP,IAAI,CAACsB,MAAL,CAAY,QAAZ,CAAd;;AACA,YAAIf,MAAJ,EAAW;AACT04B,kBAAQ,CAACr2B,MAAT,CAAgB,YAAY;AAC1B,mBAAOrC,MAAK,CAACP,IAAN,EAAP;AACD,WAFD;AAGD;AACF;AACF;AACF,GAjCD;AAkCD,CAnOM;AAqOQ;AACbumB,SAAO,EAAPA,OADa;AAEb0R,aAAW,EAAXA,WAFa;AAGbM,UAAQ,EAARA,QAHa;AAIbnY,YAAU,EAAVA,UAJa;AAKb+G,MAAI,EAAJA;AALa,CAAf,E;;;;;;;;;;;AC9fA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,qzDAAqzD;AACh0D,aAAa,wkCAAwkC;AACrlC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,qC;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C,WAAW,qD;AACrG;AACA;AACA,8CAA8C,gDAAgD,WAAW,yD;AACzG;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC,qDAAqD;AACvF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,SAAS,iDAAiD,EAAE,MAAM,EAAE,QAAQ,EAAE,kDAAkD,YAAY,MAAM,GAAG,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,gTAAgT,EAAE,sBAAsB,6DAA6D,uCAAuC,sFAAsF,0DAA0D,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oCAAoC,6BAA6B,aAAa,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,4KAA4K,2EAA2E,WAAW,gBAAgB,yOAAyO,mPAAmP,2BAA2B,EAAE,kBAAkB,yDAAyD,WAAW,eAAe,cAAc,iBAAiB,6IAA6I,0DAA0D,6BAA6B,GAAG,mSAAmS,iJAAiJ,mSAAmS,aAAa,OAAO,gBAAgB,QAAQ,GAAG,0JAA0J,EAAE,6BAA6B,EAAE,0JAA0J,EAAE,+IAA+I,eAAe,sBAAsB,iBAAiB,WAAW,iBAAiB,oJAAoJ,iBAAiB,WAAW,mSAAmS,iIAAiI,EAAE,mSAAmS,EAAE,8SAA8S,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,8SAA8S,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,mSAAmS,+BAA+B,aAAa,EAAE,SAAS,2CAA2C,cAAc,iBAAiB,WAAW,GAAG,WAAW,EAAE,mSAAmS,EAAE,+RAA+R,qWAAqW,0TAA0T,EAAE,mTAAmT,EAAE,cAAc,EAAE,oJAAoJ,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,kBAAkB,WAAW,EAAE,oJAAoJ,EAAE,oJAAoJ,EAAE,WAAW,eAAe,WAAW,GAAG,sBAAsB,EAAE,WAAW,kBAAkB,sBAAsB,eAAe,2HAA2H,GAAG,+RAA+R,EAAE,mSAAmS,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,mSAAmS,EAAE,+RAA+R,EAAE,0SAA0S,EAAE,0SAA0S,EAAE,2BAA2B,eAAe,QAAQ,iCAAiC,+RAA+R,gCAAgC,mSAAmS,aAAa,OAAO,iBAAiB,uIAAuI,EAAE,mHAAmH,EAAE,mHAAmH,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,WAAW,EAAE,mHAAmH,EAAE,mHAAmH,EAAE,+IAA+I,gBAAgB,WAAW,gBAAgB,WAAW,+CAA+C,WAAW,gCAAgC,+RAA+R,sFAAsF,+RAA+R,4JAA4J,+RAA+R,EAAE,mTAAmT,8BAA8B,QAAQ,kBAAkB,qGAAqG,iNAAiN,QAAQ,iBAAiB,QAAQ,GAAG,WAAW,gBAAgB,QAAQ,GAAG,WAAW,+BAA+B,QAAQ,gBAAgB,QAAQ,gBAAgB,yIAAyI,iBAAiB,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,gBAAgB,4GAA4G,kBAAkB,+IAA+I,EAAE,+IAA+I,uEAAuE,OAAO,kBAAkB,qGAAqG,iBAAiB,oJAAoJ,iBAAiB,oJAAoJ,GAAG,mTAAmT,EAAE,mHAAmH,EAAE,mHAAmH,8BAA8B,QAAQ,iBAAiB,QAAQ;AACr2kB,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,iC;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,cAAc,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,oIAAoI,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,mGAAmG,yJAAyJ,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AAC33B,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;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AM;AACN,WAAW,uSAAuS;AAClT,aAAa,0JAA0J;AACvK;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,cAAc,gBAAgB,gBAAgB,sBAAsB,EAAE,QAAQ,EAAE,gFAAgF,eAAe,SAAS,eAAe,UAAU,gBAAgB,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,eAAe,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU;AAC1lB,iBAAiB,2GAA2G;AAC5H;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW,kCAAkC,WAAW,kCAAkC,YAAY;AACnH,CAAC;AACD;AA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CzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,W;AACA;AACA;;AAEA;AACA;AACA,kB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;AC7mBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY;AAAA;AAAA,CAAlB;;AAEeA,wEAAf,E;;;;;;;;;;;ACFA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,sPAAsP,mHAAmH;AACpX,aAAa,wGAAwG,2FAA2F;AAChN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;AACA;AACA;AACA,sBAAsB,oB;AACtB;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,+B;AACrB;AACA;AACA,CAAC;AACD,SAAS,mDAAmD,EAAE,MAAM,EAAE,oDAAoD,EAAE,oDAAoD,YAAY,cAAc,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,YAAY,kDAAkD,aAAa,KAAK,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,0BAA0B,kDAAkD,iBAAiB,gBAAgB,wDAAwD,aAAa,EAAE,UAAU;AAClqB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,U;AAC7B;AACA,yBAAyB,sB;AACzB;AACA,8B;AACA;AACA,yB;AACA;AACA,sB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB;AACrI,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,UAAU,+BAA+B,WAAW,kCAAkC,YAAY;AACrT,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;ACppBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIgT,QAAQ,GAAG,EAAf;AACA,IAAIllB,KAAK,GAAG,EAAZ;AACA,IAAIq2B,QAAQ,GAAG,KAAf;AAEO,IAAMzsB,cAAc,GAAG,SAAjBA,cAAiB,CAAUC,SAAV,EAAqBC,OAArB,EAA8BnS,IAA9B,EAAoC;AAChEoS,qDAAU,CAACH,cAAX,CAA0B,IAA1B,EAAgCC,SAAhC,EAA2CC,OAA3C,EAAoDnS,IAApD;AACD,CAFM;;AAIP,IAAM8uB,UAAU,GAAG,SAAbA,UAAa,CAAUj8B,EAAV,EAAcyG,KAAd,EAAqB;AACtC,MAAI,OAAOi0B,QAAQ,CAAC16B,EAAD,CAAf,KAAwB,WAA5B,EAAyC;AACvC06B,YAAQ,CAAC16B,EAAD,CAAR,GAAeyG,KAAf;AACArH,+CAAG,CAACC,KAAJ,CAAU,qBAAV,EAAiCW,EAAjC;AACD;AACF,CALD;;AAMA,IAAMk8B,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAMxB,QAAN;AAAA,CAApB;;AAEA,IAAM5M,QAAQ,GAAG,SAAXA,QAAW,CAAUhD,GAAV,EAAe;AAC9BtV,OAAK,GAAGsV,GAAR;AACD,CAFD;;AAIA,IAAMghB,WAAW,GAAG,SAAdA,WAAc,CAAUC,MAAV,EAAkB;AACpCF,UAAQ,GAAGE,MAAX;AACD,CAFD;;AAIA,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAY;AAC9B,SAAOH,QAAP;AACD,CAFD;;AAIA,IAAM9d,QAAQ,GAAG,SAAXA,QAAW,GAAY;AAC3B,SAAOvY,KAAP;AACD,CAFD;;AAGA,IAAMy2B,YAAY,GAAG,SAAfA,YAAe,CAAUxlC,KAAV,EAAiB;AACpC,MAAIA,KAAK,CAACwa,SAAN,CAAgB,CAAhB,EAAmB,CAAnB,MAA0B,GAA9B,EAAmC;AACjCxa,SAAK,GAAGA,KAAK,CAACwa,SAAN,CAAgB,CAAhB,EAAmBhc,IAAnB,EAAR;AACA,WAAOgF,MAAM,CAACxD,KAAK,CAACxB,IAAN,EAAD,CAAb;AACD,GAHD,MAGO;AACL,WAAOgF,MAAM,CAACxD,KAAK,CAACxB,IAAN,EAAD,CAAb;AACD;AACF,CAPD;;AASA,IAAM9B,KAAK,GAAG,SAARA,KAAQ,GAAY;AACxBu3B,UAAQ,GAAG,EAAX;AACAllB,OAAK,GAAG,EAAR;AACAq2B,UAAQ,GAAG,KAAX;AACD,CAJD,C,CAKA;AACA;AACA;;;AAEe;AACbzsB,gBAAc,EAAdA,cADa;AAEbtgB,WAAS,EAAE;AAAA,WAAM2iB,iDAAA,GAAsBxD,GAA5B;AAAA,GAFE;AAGbge,YAAU,EAAVA,UAHa;AAIbC,aAAW,EAAXA,WAJa;AAKb+P,cAAY,EAAZA,YALa;AAMb9oC,OAAK,EAALA,KANa;AAOb2qB,UAAQ,EAARA,QAPa;AAQbC,UAAQ,EAARA,QARa;AASb+d,aAAW,EAAXA,WATa;AAUbE,aAAW,EAAXA,WAVa,CAWb;;AAXa,CAAf,E;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIvtC,IAAI,GAAGgjB,iDAAA,EAAX;AAEA;AACA;AACA;AACA;AACA;;AACA,IAAIngB,KAAJ;AACA,IAAMC,MAAM,GAAG,GAAf;AACO,IAAM0lB,IAAI,GAAG,SAAPA,IAAO,CAAC6D,GAAD,EAAM9qB,EAAN,EAAa;AAC/B,MAAI;AACFvB,QAAI,GAAGgjB,iDAAA,EAAP;AACA,QAAM4C,MAAM,GAAG6nB,kDAAS,CAAC7nB,MAAzB;AACAA,UAAM,CAACC,EAAP,GAAY6nB,8CAAZ;AACA/sC,+CAAG,CAACC,KAAJ,CAAU,6BAA6ByrB,GAAvC,EAJE,CAKF;;AACAzG,UAAM,CAACC,EAAP,CAAUnhB,KAAV;AACAkhB,UAAM,CAACnY,KAAP,CAAa4e,GAAb;AACA1rB,+CAAG,CAACC,KAAJ,CAAU,qBAAV;AACA,QAAM0D,IAAI,GAAGa,QAAQ,CAACk9B,cAAT,CAAwB9gC,EAAxB,CAAb;AACAsB,SAAK,GAAGyB,IAAI,CAACg+B,aAAL,CAAmBC,WAA3B;;AAEA,QAAI,OAAO1/B,KAAP,KAAiB,WAArB,EAAkC;AAChCA,WAAK,GAAG,IAAR;AACD;;AAED,QAAI,OAAO7C,IAAI,CAAC0d,QAAZ,KAAyB,WAA7B,EAA0C;AACxC7a,WAAK,GAAG7C,IAAI,CAAC0d,QAAb;AACD;;AACD,QAAI,OAAO1d,IAAI,CAACwf,GAAL,CAAS9B,QAAhB,KAA6B,WAAjC,EAA8C;AAC5C7a,WAAK,GAAG7C,IAAI,CAACwf,GAAL,CAAS9B,QAAjB;AACD;;AAED,QAAMqK,OAAO,GAAGplB,iDAAM,CAAC,MAAMpB,EAAP,CAAtB;AACA+mB,mEAAgB,CAACP,OAAD,EAAUjlB,MAAV,EAAkBD,KAAlB,EAAyB7C,IAAI,CAACwf,GAAL,CAAS9E,WAAlC,CAAhB,CAxBE,CA0BF;;AACApW,QAAI,CAACyB,YAAL,CAAkB,SAAlB,EAA6B,SAASlD,KAAT,GAAiB,GAAjB,GAAuBC,MAApD,EA3BE,CA6BF;;AACA,QAAI6qC,MAAM,GAAG,EAAb;AACA,QAAIC,cAAc,GAAG,EAArB;AACA,QAAIC,aAAa,GAAG,CAApB;AAEA,QAAI7uB,MAAM,GAAGlW,IAAI,CAAC+I,GAAL,CAAShP,KAAT,EAAgBC,MAAhB,IAA0B,CAA1B,GAA8B6qC,MAA3C;AAEA,QAAI7oB,GAAG,GAAGiD,OAAO,CACd9jB,MADO,CACA,GADA,EAEPvC,IAFO,CAEF,WAFE,EAEW,eAAemB,KAAK,GAAG,CAAvB,GAA2B,GAA3B,GAAiCC,MAAM,GAAG,CAA1C,GAA8C,GAFzD,CAAV;AAIA,QAAI0K,IAAI,GAAGkgC,8CAAO,CAACjQ,WAAR,EAAX;AACA,QAAIqQ,GAAG,GAAG,CAAV;AACApvC,UAAM,CAAC6B,IAAP,CAAYiN,IAAZ,EAAkB/M,OAAlB,CAA0B,UAAUC,GAAV,EAAe;AACvCotC,SAAG,IAAItgC,IAAI,CAAC9M,GAAD,CAAX;AACD,KAFD;AAIA,QAAMb,cAAc,GAAGG,IAAI,CAACH,cAA5B;AACA,QAAIkuC,iBAAiB,GAAG,CACtBluC,cAAc,CAACmuC,IADO,EAEtBnuC,cAAc,CAACouC,IAFO,EAGtBpuC,cAAc,CAACquC,IAHO,EAItBruC,cAAc,CAACsuC,IAJO,EAKtBtuC,cAAc,CAACuuC,IALO,EAMtBvuC,cAAc,CAACwuC,IANO,EAOtBxuC,cAAc,CAACyuC,IAPO,EAQtBzuC,cAAc,CAAC0uC,IARO,EAStB1uC,cAAc,CAAC2uC,IATO,EAUtB3uC,cAAc,CAAC4uC,KAVO,EAWtB5uC,cAAc,CAAC6uC,KAXO,EAYtB7uC,cAAc,CAAC8uC,KAZO,CAAxB,CA/CE,CA8DF;;AACA,QAAIzD,KAAK,GAAG0D,uDAAY,GAAGlL,KAAf,CAAqBqK,iBAArB,CAAZ,CA/DE,CAiEF;;AACA,QAAIvuB,GAAG,GAAGqvB,8CAAK,GAAG7mC,KAAR,CAAc,UAAUvI,CAAV,EAAa;AACnC,aAAOA,CAAC,CAAC,CAAD,CAAR;AACD,KAFS,CAAV;AAGA,QAAIqvC,SAAS,GAAGtvB,GAAG,CAAC9gB,MAAM,CAACqwC,OAAP,CAAevhC,IAAf,CAAD,CAAnB,CArEE,CAuEF;;AACA,QAAIwhC,YAAY,GAAGC,8CAAG,GAAGC,WAAN,CAAkB,CAAlB,EAAqBC,WAArB,CAAiCnwB,MAAjC,CAAnB,CAxEE,CA0EF;;AACA8F,OAAG,CACAC,SADH,CACa,UADb,EAEGvX,IAFH,CAEQshC,SAFR,EAGGxK,KAHH,GAIGrgC,MAJH,CAIU,MAJV,EAKGvC,IALH,CAKQ,GALR,EAKastC,YALb,EAMGttC,IANH,CAMQ,MANR,EAMgB,UAAUjC,CAAV,EAAa;AACzB,aAAOyrC,KAAK,CAACzrC,CAAC,CAAC+N,IAAF,CAAO,CAAP,CAAD,CAAZ;AACD,KARH,EASG9L,IATH,CASQ,OATR,EASiB,WATjB,EA3EE,CAsFF;AACA;;AACAojB,OAAG,CACAC,SADH,CACa,UADb,EAEGvX,IAFH,CAEQshC,SAFR,EAGGxK,KAHH,GAIGrgC,MAJH,CAIU,MAJV,EAKGpC,IALH,CAKQ,UAAUpC,CAAV,EAAa;AACjB,aAAO,CAAEA,CAAC,CAAC+N,IAAF,CAAO,CAAP,IAAYsgC,GAAb,GAAoB,GAArB,EAA0BsB,OAA1B,CAAkC,CAAlC,IAAuC,GAA9C;AACD,KAPH,EAQG1tC,IARH,CAQQ,WARR,EAQqB,UAAUjC,CAAV,EAAa;AAC9B,aAAO,eAAeuvC,YAAY,CAACK,QAAb,CAAsB5vC,CAAtB,CAAf,GAA0C,GAAjD;AACD,KAVH,EAWG2D,KAXH,CAWS,aAXT,EAWwB,QAXxB,EAYG1B,IAZH,CAYQ,OAZR,EAYiB,OAZjB;AAcAojB,OAAG,CACA7gB,MADH,CACU,MADV,EAEGpC,IAFH,CAEQ+jB,MAAM,CAACC,EAAP,CAAUyJ,QAAV,EAFR,EAGG5tB,IAHH,CAGQ,GAHR,EAGa,CAHb,EAIGA,IAJH,CAIQ,GAJR,EAIa,EAAEoB,MAAM,GAAG,EAAX,IAAiB,CAJ9B,EAKGpB,IALH,CAKQ,OALR,EAKiB,cALjB,EAtGE,CA6GF;;AACA,QAAI4tC,MAAM,GAAGxqB,GAAG,CACbC,SADU,CACA,SADA,EAEVvX,IAFU,CAEL09B,KAAK,CAACvI,MAAN,EAFK,EAGV2B,KAHU,GAIVrgC,MAJU,CAIH,GAJG,EAKVvC,IALU,CAKL,OALK,EAKI,QALJ,EAMVA,IANU,CAML,WANK,EAMQ,UAAUjC,CAAV,EAAaF,CAAb,EAAgB;AACjC,UAAIuD,MAAM,GAAG8qC,cAAc,GAAGC,aAA9B;AACA,UAAI/8B,MAAM,GAAIhO,MAAM,GAAGooC,KAAK,CAACvI,MAAN,GAAenjC,MAAzB,GAAmC,CAAhD;AACA,UAAI+vC,IAAI,GAAG,KAAK3B,cAAhB;AACA,UAAIrU,IAAI,GAAGh6B,CAAC,GAAGuD,MAAJ,GAAagO,MAAxB;AACA,aAAO,eAAey+B,IAAf,GAAsB,GAAtB,GAA4BhW,IAA5B,GAAmC,GAA1C;AACD,KAZU,CAAb;AAcA+V,UAAM,CACHrrC,MADH,CACU,MADV,EAEGvC,IAFH,CAEQ,OAFR,EAEiBksC,cAFjB,EAGGlsC,IAHH,CAGQ,QAHR,EAGkBksC,cAHlB,EAIGxqC,KAJH,CAIS,MAJT,EAIiB8nC,KAJjB,EAKG9nC,KALH,CAKS,QALT,EAKmB8nC,KALnB;AAOAoE,UAAM,CACH9hC,IADH,CACQshC,SADR,EAEG7qC,MAFH,CAEU,MAFV,EAGGvC,IAHH,CAGQ,GAHR,EAGaksC,cAAc,GAAGC,aAH9B,EAIGnsC,IAJH,CAIQ,GAJR,EAIaksC,cAAc,GAAGC,aAJ9B,EAKGhsC,IALH,CAKQ,UAAUpC,CAAV,EAAa;AACjB,UAAImmB,MAAM,CAACC,EAAP,CAAU0nB,WAAV,MAA2BvtC,IAAI,CAACotC,QAAhC,IAA4CptC,IAAI,CAACwf,GAAL,CAAS4tB,QAAzD,EAAmE;AACjE,eAAO3tC,CAAC,CAAC+N,IAAF,CAAO,CAAP,IAAY,IAAZ,GAAmB/N,CAAC,CAAC+N,IAAF,CAAO,CAAP,CAAnB,GAA+B,GAAtC;AACD,OAFD,MAEO;AACL,eAAO/N,CAAC,CAAC+N,IAAF,CAAO,CAAP,CAAP;AACD;AACF,KAXH;AAYD,GA/ID,CA+IE,OAAOhD,CAAP,EAAU;AACV7J,+CAAG,CAACgT,KAAJ,CAAU,oCAAV;AACAhT,+CAAG,CAACgT,KAAJ,CAAUnJ,CAAV;AACD;AACF,CApJM;AAsJQ;AACbge,MAAI,EAAJA;AADa,CAAf,E;;;;;;;;;;;;ACzKA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAC3oB,OAAD;AAAA,gDAGJA,OAAO,CAACkvC,cAHJ,mCAIGlvC,OAAO,CAACmvC,cAJX,8BAKFnvC,OAAO,CAACovC,UALN,iFASDpvC,OAAO,CAACqvC,gBATP,0BAUNrvC,OAAO,CAACsvC,iBAVF,iCAWCtvC,OAAO,CAACU,UAXT,kDAcCV,OAAO,CAACU,UAdT,0BAeNV,OAAO,CAACuvC,mBAfF,8BAgBFvvC,OAAO,CAACwvC,kBAhBN,sEAoBNxvC,OAAO,CAACyvC,kBApBF,iCAqBCzvC,OAAO,CAACU,UArBT,+BAsBDV,OAAO,CAAC0vC,iBAtBP;AAAA,CAAlB;;AA0Be/mB,wEAAf,E;;;;;;;;;;;AC1BA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,6iCAA6iC;AACxjC,aAAa,yrBAAyrB;AACtsB;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,+B;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0B;AACA;AACA;AACA,4B;AACA;AACA;AACA,4B;AACA;AACA;AACA,oC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gC;AACA;AACA;AACA,kC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,yBAAyB,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8HAA8H,EAAE,uBAAuB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,+HAA+H,gBAAgB,eAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,uDAAuD,EAAE,uDAAuD,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,oGAAoG,UAAU,eAAe,+CAA+C,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,oBAAoB,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+CAA+C,8BAA8B,UAAU,EAAE,UAAU,EAAE,iCAAiC,4CAA4C,oBAAoB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,8CAA8C,gBAAgB,4BAA4B,EAAE,6BAA6B,gBAAgB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,kCAAkC,EAAE,kCAAkC;AAC5qF,iBAAiB,2QAA2Q;AAC5R;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8B;AACA;AACA,yB;AACA;AACA,0B;AACA;AACA,wCAAwC;AACxC;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yHAAyH,WAAW,qoBAAqoB;AACh2B,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,cAAc,6BAA6B,UAAU,6BAA6B,WAAW,kCAAkC,YAAY;AAC9V,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;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,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,0DAA0D,WAAW,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,sDAAsD,YAAY,aAAa,YAAY,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACjiH,iBAAiB,wNAAwN;AACzO;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,0BAA0B,W;AAC1B;AACA,wCAAwC,qBAAqB,W;AAC7D;AACA,yBAAyB,iBAAiB,oBAAoB,W;AAC9D;AACA,yBAAyB,iBAAiB,U;AAC1C;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,yBAAyB,W;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,0BAA0B,W;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,W;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD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E,aAAa,EAAE,UAAU,eAAe,UAAU,GAAG,uKAAuK,eAAe,UAAU,GAAG,UAAU,EAAE,UAAU,sDAAsD,KAAK,+BAA+B,uKAAuK;AACvrD,iBAAiB,gEAAgE;AACjF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yCAAyC,a;AAC1E;AACA;AACA;AACA;AACA;AACA,gEAAgE,0B;AAChE;AACA,wBAAwB,yCAAyC,0CAA0C;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,yCAAyC,yCAAyC;AAC1G;AACA,wBAAwB,0CAA0C,yCAAyC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,wBAAwB,2BAA2B;AACnD;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA,wDAAwD;AACxD;AACA,oDAAoD;AACpD;AACA;AACA;AACA,wBAAwB,yBAAyB,2CAA2C;AAC5F;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA,4BAA4B,W;AAC5B;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB,0BAA0B;AACnD;AACA,yBAAyB;AACzB;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,wBAAwB,8CAA8C;AACtE;AACA,yBAAyB,4BAA4B,6CAA6C;AAClG;AACA,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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,8VAA8V;AACzW,aAAa,gMAAgM;AAC7M;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,mC;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,6EAA6E,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,4CAA4C,wDAAwD,UAAU,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,aAAa,EAAE,UAAU,EAAE,UAAU;AACrhB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,2FAA2F,2BAA2B,kBAAkB,kBAAkB;AAC9R,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAA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","file":"mermaid.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { assignWithDepth } from './utils';\nimport { log } from './logger';\nimport theme from './themes';\nimport config from './defaultConfig';\n\n// debugger;\n\nexport const defaultConfig = Object.freeze(config);\n\nlet siteConfig = assignWithDepth({}, defaultConfig);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n // start with config beeing the siteConfig\n let cfg = assignWithDepth({}, siteCfg);\n // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);\n\n // Join directives\n let sumOfDirectives = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n\n // Apply the data from the directive where the the overrides the themeVaraibles\n sumOfDirectives = assignWithDepth(sumOfDirectives, d);\n }\n\n cfg = assignWithDepth(cfg, sumOfDirectives);\n\n if (sumOfDirectives.theme) {\n const tmpConfigFromInitialize = assignWithDepth({}, configFromInitialize);\n const themeVariables = assignWithDepth(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n\n currentConfig = cfg;\n return cfg;\n};\n/**\n *## setSiteConfig\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| setSiteConfig|Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array|\n ***Notes:**\n *Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset\n *the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig\n *to the defaultConfig\n *Note: currentConfig is set in this function\n **Default value: At default, will mirror Global Config**\n * @param conf - the base currentConfig to use as siteConfig\n * @returns {*} - the siteConfig\n */\nexport const setSiteConfig = (conf) => {\n siteConfig = assignWithDepth({}, defaultConfig);\n siteConfig = assignWithDepth(siteConfig, conf);\n\n if (conf.theme) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n\n currentConfig = updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\n\nexport const saveConfigFromInitilize = (conf) => {\n configFromInitialize = assignWithDepth({}, conf);\n};\n\nexport const updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n\n return siteConfig;\n};\n/**\n *## getSiteConfig\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| setSiteConfig|Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig|\n ***Notes**:\n *Returns **any** values in siteConfig.\n * @returns {*}\n */\nexport const getSiteConfig = () => {\n return assignWithDepth({}, siteConfig);\n};\n/**\n *## setConfig\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| setSiteConfig|Sets the siteConfig to desired values | Put Request| Any Values, except ones in secure array|\n ***Notes**:\n *Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any\n *values found in conf with key found in siteConfig.secure will be replaced with the corresponding\n *siteConfig value.\n * @param conf - the potential currentConfig\n * @returns {*} - the currentConfig merged with the sanitized conf\n */\nexport const setConfig = (conf) => {\n // sanitize(conf);\n // Object.keys(conf).forEach(key => {\n // const manipulator = manipulators[key];\n // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];\n // });\n\n assignWithDepth(currentConfig, conf);\n\n return getConfig();\n};\n\n/**\n * ## getConfig\n *| Function | Description | Type | Return Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| getConfig |Obtains the currentConfig | Get Request | Any Values from currentConfig|\n ***Notes**:\n *Returns **any** the currentConfig\n * @returns {*} - the currentConfig\n */\nexport const getConfig = () => {\n return assignWithDepth({}, currentConfig);\n};\n/**\n *## sanitize\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| sanitize |Sets the siteConfig to desired values. | Put Request |None|\n *Ensures options parameter does not attempt to override siteConfig secure keys\n *Note: modifies options in-place\n * @param options - the potential setConfig parameter\n */\nexport const sanitize = (options) => {\n // Checking that options are not in the list of excluded options\n Object.keys(siteConfig.secure).forEach((key) => {\n if (typeof options[siteConfig.secure[key]] !== 'undefined') {\n // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script\n // can exploit the logger's attempt to stringify the value and execute arbitrary code\n log.debug(\n `Denied attempt to modify a secure key ${siteConfig.secure[key]}`,\n options[siteConfig.secure[key]]\n );\n delete options[siteConfig.secure[key]];\n }\n });\n\n // Check that there no attempts of prototype pollution\n Object.keys(options).forEach((key) => {\n if (key.indexOf('__') === 0) {\n delete options[key];\n }\n });\n // Check that there no attempts of xss, there should be no tags at all in the directive\n // blocking data urls as base64 urls can contain svgs with inline script tags\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'string') {\n if (\n options[key].indexOf('<') > -1 ||\n options[key].indexOf('>') > -1 ||\n options[key].indexOf('url(data:') > -1\n ) {\n delete options[key];\n }\n }\n if (typeof options[key] === 'object') {\n sanitize(options[key]);\n }\n });\n};\n\nexport const addDirective = (directive) => {\n if (directive.fontFamily) {\n if (!directive.themeVariables) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n } else {\n if (!directive.themeVariables.fontFamily) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n }\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\n\n/**\n *## reset\n *| Function | Description | Type | Required | Values |\n *| --------- | ------------------- | ------- | -------- | ------------------ |\n *| reset|Resets currentConfig to conf| Put Request | Required | None|\n *\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| conf| base set of values, which currentConfig coul be **reset** to.| Dictionary | Required | Any Values, with respect to the secure Array|\n *\n **Notes :\n (default: current siteConfig ) (optional, default `getSiteConfig()`)\n * @param conf the base currentConfig to reset to (default: current siteConfig ) (optional, default `getSiteConfig()`)\n */\nexport const reset = () => {\n // Replace current config with siteConfig\n directives = [];\n updateCurrentConfig(siteConfig, directives);\n};\n","import intersectRect from './intersect/intersect-rect';\nimport { log } from '../logger';\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\nimport { evaluate } from '../diagrams/common/common';\n\nconst rect = (parent, node) => {\n log.trace('Creating subgraph rect for ', node.id, node);\n\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'cluster' + (node.class ? ' ' + node.class : ''))\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n log.trace('Data ', node, JSON.stringify(node));\n // center the rect around its coordinate\n rect\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - width / 2)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width)\n .attr('height', node.height + padding);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 + node.padding / 3) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * Non visiable cluster where the note is group with its\n */\nconst noteGroup = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding)\n .attr('fill', 'none');\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n const innerRect = shapeSvg.append('rect');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n // center the rect around its coordinate\n rect\n .attr('class', 'outer')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width + padding)\n .attr('height', node.height + padding);\n innerRect\n .attr('class', 'inner')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', width + padding)\n .attr('height', node.height + padding - bbox.height - 3);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y -\n node.height / 2 -\n node.padding / 3 +\n (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'divider')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\n\nlet clusterElems = {};\n\nexport const insertCluster = (elem, node) => {\n log.trace('Inserting cluster');\n const shape = node.shape || 'rect';\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nexport const getClusterTitleWidth = (elem, node) => {\n const label = createLabel(node.labelText, node.labelStyle, undefined, true);\n elem.node().appendChild(label);\n const width = label.getBBox().width;\n elem.node().removeChild(label);\n return width;\n};\n\nexport const clear = () => {\n clusterElems = {};\n};\n\nexport const positionCluster = (node) => {\n log.info('Position cluster (' + node.id + ', ' + node.x + ', ' + node.y + ')');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { evaluate } from '../diagrams/common/common';\n// let vertexNode;\n// if (evaluate(getConfig().flowchart.htmlLabels)) {\n// // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n// const node = {\n// label: vertexText.replace(/fa[lrsb]?:fa-[\\w-]+/g, s => ``)\n// };\n// vertexNode = addHtmlLabel(svg, node).node();\n// vertexNode.parentNode.removeChild(vertexNode);\n// } else {\n// const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n// svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n// const rows = vertexText.split(common.lineBreakRegex);\n\n// for (let j = 0; j < rows.length; j++) {\n// const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n// tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n// tspan.setAttribute('dy', '1em');\n// tspan.setAttribute('x', '1');\n// tspan.textContent = rows[j];\n// svgLabel.appendChild(tspan);\n// }\n// vertexNode = svgLabel;\n// }\nimport { getConfig } from '../config';\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction addHtmlLabel(node) {\n // var fo = root.append('foreignObject').attr('width', '100000');\n\n // var div = fo.append('xhtml:div');\n // div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // var label = node.label;\n // switch (typeof label) {\n // case 'function':\n // div.insert(label);\n // break;\n // case 'object':\n // // Currently we assume this is a DOM object.\n // div.insert(function() {\n // return label;\n // });\n // break;\n // default:\n // div.html(label);\n // }\n\n // applyStyle(div, node.labelStyle);\n // div.style('display', 'inline-block');\n // // Fix for firefox\n // div.style('white-space', 'nowrap');\n\n // var client = div.node().getBoundingClientRect();\n // fo.attr('width', client.width).attr('height', client.height);\n const fo = select(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));\n const div = fo.append('xhtml:div');\n\n const label = node.label;\n const labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';\n div.html(\n '' +\n label +\n ''\n );\n\n applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n return fo.node();\n}\n\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || '';\n if (typeof vertexText === 'object') vertexText = vertexText[0];\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n log.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace('fill:', 'color:'),\n };\n let vertexNode = addHtmlLabel(node);\n // vertexNode.parentNode.removeChild(vertexNode);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n svgLabel.setAttribute('style', style.replace('color:', 'fill:'));\n let rows = [];\n if (typeof vertexText === 'string') {\n rows = vertexText.split(/\\\\n|\\n|
/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n\n for (let j = 0; j < rows.length; j++) {\n const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n tspan.setAttribute('dy', '1em');\n tspan.setAttribute('x', '0');\n if (isTitle) {\n tspan.setAttribute('class', 'title-row');\n } else {\n tspan.setAttribute('class', 'row');\n }\n tspan.textContent = rows[j].trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\n\nexport default createLabel;\n","import { log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\n// import { line, curveBasis, curveLinear, select } from 'd3';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\nimport { evaluate } from '../diagrams/common/common';\n\nlet edgeLabels = {};\nlet terminalLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\n\nexport const insertEdgeLabel = (elem, edge) => {\n // Create the actual text element\n const labelElement = createLabel(edge.label, edge.labelStyle);\n\n // Create outer g, edgeLabel, this will be positioned after graph layout\n const edgeLabel = elem.insert('g').attr('class', 'edgeLabel');\n\n // Create inner g, label, this will be positioned now for centering the text\n const label = edgeLabel.insert('g').attr('class', 'label');\n label.node().appendChild(labelElement);\n\n // Center the label\n let bbox = labelElement.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n // Make element accessible by id for positioning\n edgeLabels[edge.id] = edgeLabel;\n\n // Update the abstract data of the edge with the new information about its width and height\n edge.width = bbox.width;\n edge.height = bbox.height;\n\n let fo;\n if (edge.startLabelLeft) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelRight.insert('g').attr('class', 'inner');\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelLeft.insert('g').attr('class', 'inner');\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelRight.insert('g').attr('class', 'inner');\n\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n};\n\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + 'px';\n fo.style.height = '12px';\n }\n}\n\nexport const positionEdgeLabel = (edge, paths) => {\n log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // // debugger;\n const pos = utils.calcLabelPosition(path);\n log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');\n // x = pos.x;\n // y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n\n //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n 'start_right',\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n};\n\n// const getRelationType = function(type) {\n// switch (type) {\n// case stateDb.relationType.AGGREGATION:\n// return 'aggregation';\n// case stateDb.relationType.EXTENSION:\n// return 'extension';\n// case stateDb.relationType.COMPOSITION:\n// return 'composition';\n// case stateDb.relationType.DEPENDENCY:\n// return 'dependency';\n// }\n// };\n\nconst outsideNode = (node, point) => {\n // log.warn('Checking bounds ', node, point);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point.x - x);\n const dy = Math.abs(point.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\n\nexport const intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\n // const dy = Math.abs(y - insidePoint.y);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n\n // const edges = {\n // x1: x - w,\n // x2: x + w,\n // y1: y - h,\n // y2: y + h\n // };\n\n // if (\n // outsidePoint.x === edges.x1 ||\n // outsidePoint.x === edges.x2 ||\n // outsidePoint.y === edges.y1 ||\n // outsidePoint.y === edges.y2\n // ) {\n // log.warn('abc89 calc equals on edge', outsidePoint, edges);\n // return outsidePoint;\n // }\n\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n // log.warn();\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { // eslint-disable-line\n // Intersection is top or bottom of rect.\n // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = (R * q) / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q,\n };\n\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n\n return res;\n } else {\n // Intersection onn sides of rect\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n // r = outsidePoint.x - w - x;\n r = x - w - outsidePoint.x;\n }\n let q = (Q * r) / R;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n\n return { x: _x, y: _y };\n }\n};\n/**\n * This function will page a path and node where the last point(s) in the path is inside the node\n * and return an update path ending by the border of the node.\n * @param {*} points\n * @param {*} boundryNode\n * @returns\n */\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn('abc88 cutPathAtIntersect', _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point) => {\n // const node = clusterDb[edge.toCluster].node;\n log.info('abc88 checking point', point, boundryNode);\n\n // check if point is inside the boundry rect\n if (!outsideNode(boundryNode, point) && !isInside) {\n // First point inside the rect found\n // Calc the intersection coord between the point anf the last opint ouside the rect\n const inter = intersection(boundryNode, lastPointOutside, point);\n log.warn('abc88 inside', point, lastPointOutside, inter);\n log.warn('abc88 intersection', inter);\n\n // // Check case where the intersection is the same as the last point\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n });\n // // if (!pointPresent) {\n if (!points.find((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn('abc88 no intersect', inter, points);\n }\n // points.push(inter);\n isInside = true;\n } else {\n // Outside\n log.warn('abc88 outside', point, lastPointOutside);\n lastPointOutside = point;\n // points.push(point);\n if (!isInside) points.push(point);\n }\n });\n log.warn('abc88 returning points', points);\n return points;\n};\n\n//(edgePaths, e, edge, clusterDb, diagramtype, graph)\nexport const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n\n log.info('abc88 InsertEdge: ', edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n 'Last point',\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info('to cluster abc88', clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n // log.trace('edge', edge);\n // points = [];\n // let lastPointOutside; // = edge.points[0];\n // let isInside = false;\n // edge.points.forEach(point => {\n // const node = clusterDb[edge.toCluster].node;\n // log.warn('checking from', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.trace('inside', edge.toCluster, point, lastPointOutside);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // points.push(inter);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // isInside = true;\n // } else {\n // // outtside\n // lastPointOutside = point;\n // if (!isInside) points.push(point);\n // }\n // });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n log.info('from cluster abc88', clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n // log.warn('edge', edge);\n // log.warn('from cluster', clusterDb[edge.fromCluster], points);\n // const updatedPoints = [];\n // let lastPointOutside = edge.points[edge.points.length - 1];\n // let isInside = false;\n // for (let i = points.length - 1; i >= 0; i--) {\n // const point = points[i];\n // const node = clusterDb[edge.fromCluster].node;\n // log.warn('checking to', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.warn('inside', edge.fromCluster, point, node);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n // log.warn('intersect', intersection(node, lastPointOutside, point));\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // updatedPoints.unshift(inter);\n // log.warn('Adding point -updated = ', updatedPoints);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // // points.push(insterection);\n // isInside = true;\n // } else {\n // // at the outside\n // // if (!isInside) updatedPoints.unshift(point);\n // updatedPoints.unshift(point);\n // log.warn('Outside point', point, updatedPoints);\n // }\n // lastPointOutside = point;\n // }\n // points = updatedPoints;\n // points = edge.points;\n pointsHasChanged = true;\n }\n\n // The data for our line\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n\n // This is the accessor function we talked about above\n let curve;\n // Currently only flowcharts get the curve from the settings, perhaps this should\n // be expanded to a common setting? Restricting it for now in order not to cause side-effects that\n // have not been thought through\n if (diagramType === 'graph' || diagramType === 'flowchart') {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n // curve = curveLinear;\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curve);\n\n // Contruct stroke classes based on properties\n let strokeClasses;\n switch (edge.thickness) {\n case 'normal':\n strokeClasses = 'edge-thickness-normal';\n break;\n case 'thick':\n strokeClasses = 'edge-thickness-thick';\n break;\n default:\n strokeClasses = '';\n }\n switch (edge.pattern) {\n case 'solid':\n strokeClasses += ' edge-pattern-solid';\n break;\n case 'dotted':\n strokeClasses += ' edge-pattern-dotted';\n break;\n case 'dashed':\n strokeClasses += ' edge-pattern-dashed';\n break;\n }\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', edge.id)\n .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))\n .attr('style', edge.style);\n\n // DEBUG code, adds a red circle at each edge coordinate\n // edge.points.forEach(point => {\n // elem\n // .append('circle')\n // .style('stroke', 'red')\n // .style('fill', 'red')\n // .attr('r', 1)\n // .attr('cx', point.x)\n // .attr('cy', point.y);\n // });\n\n let url = '';\n if (getConfig().state.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n log.info('arrowTypeStart', edge.arrowTypeStart);\n log.info('arrowTypeEnd', edge.arrowTypeEnd);\n\n switch (edge.arrowTypeStart) {\n case 'arrow_cross':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');\n break;\n default:\n }\n switch (edge.arrowTypeEnd) {\n case 'arrow_cross':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');\n break;\n default:\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\n","import dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport insertMarkers from './markers';\nimport { updateNodeBounds } from './shapes/util';\nimport {\n clear as clearGraphlib,\n clusterDb,\n adjustClustersAndEdges,\n findNonClusterChild,\n sortNodesByHierarchy,\n} from './mermaid-graphlib';\nimport { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes';\nimport { insertCluster, clear as clearClusters } from './clusters';\nimport { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges';\nimport { log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace('Dir in recursive render - dir:', dir);\n\n const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line\n if (!graph.nodes()) {\n log.info('No nodes found for', graph);\n } else {\n log.info('Recursive render XXX', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace('Recursive edges', graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line\n const edgePaths = elem.insert('g').attr('class', 'edgePaths');\n const edgeLabels = elem.insert('g').attr('class', 'edgeLabels');\n const nodes = elem.insert('g').attr('class', 'nodes');\n\n // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated\n // to the abstract node and is later used by dagre for the layout\n graph.nodes().forEach(function (v) {\n const node = graph.node(v);\n if (typeof parentCluster !== 'undefined') {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n // data.clusterPositioning = true;\n log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace('Setting parent', v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node.width, graph.node(v));\n const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n\n log.warn('Recursive render complete ', newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n // This is a cluster but not to be rendered recusively\n // Render as before\n log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n // insertCluster(clusters, graph.node(v));\n } else {\n log.info('Node - the non recursive path', v, node.id, node);\n insertNode(nodes, graph.node(v), dir);\n }\n }\n });\n\n // Insert labels, this will insert them into the dom so that the width can be calculated\n // Also figure out which edges point to/from clusters and adjust them accordingly\n // Edges from/to clusters really points to the first child in the cluster.\n // TODO: pick optimal child in the cluster to us as link anchor\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e)));\n\n // Check if link is either from or to a cluster\n log.info('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n\n graph.edges().forEach(function (e) {\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n });\n log.info('#############################################');\n log.info('### Layout ###');\n log.info('#############################################');\n log.info(graph);\n dagre.layout(graph);\n log.info('Graph after layout:', graphlib.json.write(graph));\n // Move the nodes to the correct place\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function (v) {\n const node = graph.node(v);\n log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));\n log.info(\n 'Position ' + v + ': (' + node.x,\n ',' + node.y,\n ') width: ',\n node.width,\n ' height: ',\n node.height\n );\n if (node && node.clusterNode) {\n // clusterDb[node.id].node = node;\n\n positionNode(node);\n } else {\n // Non cluster node\n if (graph.children(v).length > 0) {\n // A cluster in the non-recurive way\n // positionCluster(node);\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n\n // Move the edge labels to the correct place after layout\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);\n\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n\n graph.nodes().forEach(function (v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === 'group') {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\n\nexport const render = (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clearNodes();\n clearEdges();\n clearClusters();\n clearGraphlib();\n\n log.warn('Graph at first:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));\n recursiveRender(elem, graph, diagramtype);\n};\n\n// const shapeDefinitions = {};\n// export const addShape = ({ shapeType: fun }) => {\n// shapeDefinitions[shapeType] = fun;\n// };\n\n// const arrowDefinitions = {};\n// export const addArrow = ({ arrowType: fun }) => {\n// arrowDefinitions[arrowType] = fun;\n// };\n","/*\n * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!\n */\n\nimport node from './intersect-node.js';\nimport circle from './intersect-circle.js';\nimport ellipse from './intersect-ellipse.js';\nimport polygon from './intersect-polygon.js';\nimport rect from './intersect-rect.js';\n\nexport default {\n node,\n circle,\n ellipse,\n polygon,\n rect,\n};\n","import intersectEllipse from './intersect-ellipse';\r\n\r\nfunction intersectCircle(node, rx, point) {\r\n return intersectEllipse(node, rx, rx, point);\r\n}\r\n\r\nexport default intersectCircle;\r\n","function intersectEllipse(node, rx, ry, point) {\r\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\r\n\r\n var cx = node.x;\r\n var cy = node.y;\r\n\r\n var px = cx - point.x;\r\n var py = cy - point.y;\r\n\r\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\r\n\r\n var dx = Math.abs((rx * ry * px) / det);\r\n if (point.x < cx) {\r\n dx = -dx;\r\n }\r\n var dy = Math.abs((rx * ry * py) / det);\r\n if (point.y < cy) {\r\n dy = -dy;\r\n }\r\n\r\n return { x: cx + dx, y: cy + dy };\r\n}\r\n\r\nexport default intersectEllipse;\r\n","/*\r\n * Returns the point at which two lines, p and q, intersect or returns\r\n * undefined if they do not intersect.\r\n */\r\nfunction intersectLine(p1, p2, q1, q2) {\r\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\r\n // p7 and p473.\r\n\r\n var a1, a2, b1, b2, c1, c2;\r\n var r1, r2, r3, r4;\r\n var denom, offset, num;\r\n var x, y;\r\n\r\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\r\n // b1 y + c1 = 0.\r\n a1 = p2.y - p1.y;\r\n b1 = p1.x - p2.x;\r\n c1 = p2.x * p1.y - p1.x * p2.y;\r\n\r\n // Compute r3 and r4.\r\n r3 = a1 * q1.x + b1 * q1.y + c1;\r\n r4 = a1 * q2.x + b1 * q2.y + c1;\r\n\r\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\r\n // same side of line 1, the line segments do not intersect.\r\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\r\n return /*DONT_INTERSECT*/;\r\n }\r\n\r\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\r\n a2 = q2.y - q1.y;\r\n b2 = q1.x - q2.x;\r\n c2 = q2.x * q1.y - q1.x * q2.y;\r\n\r\n // Compute r1 and r2\r\n r1 = a2 * p1.x + b2 * p1.y + c2;\r\n r2 = a2 * p2.x + b2 * p2.y + c2;\r\n\r\n // Check signs of r1 and r2. If both point 1 and point 2 lie\r\n // on same side of second line segment, the line segments do\r\n // not intersect.\r\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\r\n return /*DONT_INTERSECT*/;\r\n }\r\n\r\n // Line segments intersect: compute intersection point.\r\n denom = a1 * b2 - a2 * b1;\r\n if (denom === 0) {\r\n return /*COLLINEAR*/;\r\n }\r\n\r\n offset = Math.abs(denom / 2);\r\n\r\n // The denom/2 is to get rounding instead of truncating. It\r\n // is added or subtracted to the numerator, depending upon the\r\n // sign of the numerator.\r\n num = b1 * c2 - b2 * c1;\r\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\r\n\r\n num = a2 * c1 - a1 * c2;\r\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\r\n\r\n return { x: x, y: y };\r\n}\r\n\r\nfunction sameSign(r1, r2) {\r\n return r1 * r2 > 0;\r\n}\r\n\r\nexport default intersectLine;\r\n","module.exports = intersectNode;\r\n\r\nfunction intersectNode(node, point) {\r\n // console.info('Intersect Node');\r\n return node.intersect(point);\r\n}\r\n","/* eslint \"no-console\": off */\n\nimport intersectLine from './intersect-line';\n\nexport default intersectPolygon;\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === 'function') {\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","const intersectRect = (node, point) => {\r\n var x = node.x;\r\n var y = node.y;\r\n\r\n // Rectangle intersection algorithm from:\r\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\r\n var dx = point.x - x;\r\n var dy = point.y - y;\r\n var w = node.width / 2;\r\n var h = node.height / 2;\r\n\r\n var sx, sy;\r\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\r\n // Intersection is top or bottom of rect.\r\n if (dy < 0) {\r\n h = -h;\r\n }\r\n sx = dy === 0 ? 0 : (h * dx) / dy;\r\n sy = h;\r\n } else {\r\n // Intersection is left or right of rect.\r\n if (dx < 0) {\r\n w = -w;\r\n }\r\n sx = w;\r\n sy = dx === 0 ? 0 : (w * dy) / dx;\r\n }\r\n\r\n return { x: x + sx, y: y + sy };\r\n};\r\n\r\nexport default intersectRect;\r\n","/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n */\n\nimport { log } from '../logger';\n\n// Only add the number of markers that the diagram needs\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\n\nconst extension = (elem, type, id) => {\n log.trace('Making markers for ', id);\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionStart')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionEnd')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n};\n\nconst composition = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionStart')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionEnd')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst aggregation = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationStart')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationEnd')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst dependency = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyStart')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyEnd')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\nconst point = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-pointEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n elem\n .append('marker')\n .attr('id', type + '-pointStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 0)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 5 L 10 10 L 10 0 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst circle = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-circleEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 11)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-circleStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', -1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst cross = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-crossEnd')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', 12)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-crossStart')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', -1)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n};\nconst barb = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-barbEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 14)\n .attr('markerUnits', 'strokeWidth')\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');\n};\n\n// TODO rename the class diagram markers to something shape descriptive and semanitc free\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n point,\n circle,\n cross,\n barb,\n};\nexport default insertMarkers;\n","/**\n * Decorates with functions required by mermaids dagre-wrapper.\n */\nimport { log } from '../logger';\nimport graphlib from 'graphlib';\n\nexport let clusterDb = {};\nlet decendants = {};\nlet parents = {};\n\nexport const clear = () => {\n decendants = {};\n parents = {};\n clusterDb = {};\n};\n\nconst isDecendant = (id, ancenstorId) => {\n // if (id === ancenstorId) return true;\n\n log.trace(\n 'In isDecendant',\n ancenstorId,\n ' ',\n id,\n ' = ',\n decendants[ancenstorId].indexOf(id) >= 0\n );\n if (decendants[ancenstorId].indexOf(id) >= 0) return true;\n\n return false;\n};\n\nconst edgeInCluster = (edge, clusterId) => {\n log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);\n log.info('Edge is ', edge);\n // Edges to/from the cluster is not in the cluster, they are in the parent\n if (edge.v === clusterId) return false;\n if (edge.w === clusterId) return false;\n\n if (!decendants[clusterId]) {\n log.debug('Tilt, ', clusterId, ',not in decendants');\n return false;\n }\n log.info('Here ');\n\n if (decendants[clusterId].indexOf(edge.v) >= 0) return true;\n if (isDecendant(edge.v, clusterId)) return true;\n if (isDecendant(edge.w, clusterId)) return true;\n if (decendants[clusterId].indexOf(edge.w) >= 0) return true;\n\n return false;\n};\n\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n 'Copying children of ',\n clusterId,\n 'root',\n rootId,\n 'data',\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n\n // Include cluster node if it is not the root\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n\n log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);\n\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn('Setting parent', node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n\n if (clusterId !== rootId && node !== clusterId) {\n log.debug('Setting parent', node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);\n log.debug(\n 'Not Setting parent for node=',\n node,\n 'cluster!==rootId',\n clusterId !== rootId,\n 'node!==clusterId',\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug('Copying Edges', edges);\n edges.forEach((edge) => {\n log.info('Edge', edge);\n const data = graph.edge(edge.v, edge.w, edge.name);\n log.info('Edge data', data, rootId);\n try {\n // Do not copy edges in and out of the root cluster, they belong to the parent graph\n if (edgeInCluster(edge, rootId)) {\n log.info('Copying as ', edge.v, edge.w, data, edge.name);\n newGraph.setEdge(edge.v, edge.w, data, edge.name);\n log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n 'Skipping copy of edge ',\n edge.v,\n '-->',\n edge.w,\n ' rootId: ',\n rootId,\n ' clusterId:',\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug('Removing node', node);\n graph.removeNode(node);\n });\n};\nexport const extractDecendants = (id, graph) => {\n // log.debug('Extracting ', id);\n const children = graph.children(id);\n let res = [].concat(children);\n\n for (let i = 0; i < children.length; i++) {\n parents[children[i]] = id;\n res = res.concat(extractDecendants(children[i], graph));\n }\n\n return res;\n};\n\n/**\n * Validates the graph, checking that all parent child relation points to existing nodes and that\n * edges between nodes also ia correct. When not correct the function logs the discrepancies.\n * @param {graphlib graph} g\n */\nexport const validate = (graph) => {\n const edges = graph.edges();\n log.trace('Edges: ', edges);\n for (let i = 0; i < edges.length; i++) {\n if (graph.children(edges[i].v).length > 0) {\n log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');\n return false;\n }\n if (graph.children(edges[i].w).length > 0) {\n log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');\n return false;\n }\n }\n return true;\n};\n\n/**\n * Finds a child that is not a cluster. When faking a edge between a node and a cluster.\n * @param {Finds a } id\n * @param {*} graph\n */\nexport const findNonClusterChild = (id, graph) => {\n // const node = graph.node(id);\n log.trace('Searching', id);\n // const children = graph.children(id).reverse();\n const children = graph.children(id); //.reverse();\n log.trace('Searching children of id ', id, children);\n if (children.length < 1) {\n log.trace('This is a valid node', id);\n return id;\n }\n for (let i = 0; i < children.length; i++) {\n const _id = findNonClusterChild(children[i], graph);\n if (_id) {\n log.trace('Found replacement for', id, ' => ', _id);\n return _id;\n }\n }\n};\n\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n // If the cluster has no external connections\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n\n // Return the replacement node\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\n\nexport const adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug('Opting out, no graph ');\n return;\n } else {\n log.debug('Opting in, graph ');\n }\n // Go through the nodes and for each cluster found, save a replacment node, this can be used when\n // faking a link to a cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n 'Cluster identified',\n id,\n ' Replacement id in edges: ',\n findNonClusterChild(id, graph)\n );\n decendants[id] = extractDecendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n\n // Check incoming and outgoing edges for each cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug('Cluster identified', id, decendants);\n edges.forEach((edge) => {\n // log.debug('Edge, decendants: ', edge, decendants[id]);\n\n // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)\n if (edge.v !== id && edge.w !== id) {\n // Any edge where either the one of the nodes is decending to the cluster but not the other\n // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {\n\n const d1 = isDecendant(edge.v, id);\n const d2 = isDecendant(edge.w, id);\n\n // d1 xor d2 - if either d1 is true and d2 is false or the other way around\n if (d1 ^ d2) {\n log.warn('Edge: ', edge, ' leaves cluster ', id);\n log.warn('Decendants of XXX ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug('Not a cluster ', id, decendants);\n }\n });\n\n // For clusters with incoming and/or outgoing edges translate those edges to a real node\n // in the cluster inorder to fake the edge\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));\n\n let v = e.v;\n let w = e.w;\n // Check if link is either from or to a cluster\n log.warn(\n 'Fix XXX',\n clusterDb,\n 'ids:',\n e.v,\n e.w,\n 'Translateing: ',\n clusterDb[e.v],\n ' --- ',\n clusterDb[e.w]\n );\n if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) edge.fromCluster = e.v;\n if (w !== e.w) edge.toCluster = e.w;\n log.warn('Fix Replacing with XXX', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\n extractor(graph, 0);\n\n log.trace(clusterDb);\n\n // Remove references to extracted cluster\n // graph.edges().forEach(edge => {\n // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {\n // graph.removeEdge(edge);\n // }\n // });\n};\n\nexport const extractor = (graph, depth) => {\n log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D'));\n if (depth > 10) {\n log.error('Bailing out');\n return;\n }\n // For clusters without incoming and/or outgoing edges, create a new cluster-node\n // containing the nodes and edges in the custer in a new graph\n // for (let i = 0;)\n let nodes = graph.nodes();\n let hasChildren = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n\n if (!hasChildren) {\n log.debug('Done, no node has children', graph.nodes());\n return;\n }\n // const clusters = Object.keys(clusterDb);\n // clusters.forEach(clusterId => {\n log.debug('Nodes = ', nodes, depth);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n log.debug(\n 'Extracting node',\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children('D'),\n ' Depth ',\n depth\n );\n // Note that the node might have been removed after the Object.keys call so better check\n // that it still is in the game\n if (!clusterDb[node]) {\n // Skip if the node is not a cluster\n log.debug('Not a cluster', node, depth);\n // break;\n } else if (\n !clusterDb[node].externalConnections &&\n // !graph.parent(node) &&\n graph.children(node) &&\n graph.children(node).length > 0\n ) {\n log.warn(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';\n if (clusterDb[node]) {\n if (clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn('Fixing dir', clusterDb[node].clusterData.dir, dir);\n }\n }\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir, // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n log.warn('Old graph before copy', graphlib.json.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph,\n });\n log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.warn(\n 'Cluster ** ',\n node,\n ' **not meeting the criteria !externalConnections:',\n !clusterDb[node].externalConnections,\n ' no parent: ',\n !graph.parent(node),\n ' children ',\n graph.children(node) && graph.children(node).length > 0,\n graph.children('D'),\n depth\n );\n log.debug(clusterDb);\n }\n }\n\n nodes = graph.nodes();\n log.warn('New list of nodes', nodes);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const data = graph.node(node);\n log.warn(' Now next level', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) return [];\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = result.concat(sorted);\n });\n\n return result;\n};\n\nexport const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util';\nimport { getConfig } from '../config';\nimport intersect from './intersect/index.js';\nimport createLabel from './createLabel';\nimport note from './shapes/note';\nimport { parseMember } from '../diagrams/class/svgDraw';\nimport { evaluate } from '../diagrams/common/common';\n\nconst question = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 },\n ];\n\n log.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr('style', node.style);\n updateNodeBounds(node, questionElem);\n\n node.intersect = function (point) {\n log.warn('Intersect called');\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst choice = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 },\n ];\n\n const choice = shapeSvg.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n );\n // center the circle around its coordinate\n choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);\n node.width = 28;\n node.height = 28;\n\n node.intersect = function (point) {\n return intersect.circle(node, 14, point);\n };\n\n return shapeSvg;\n};\n\nconst hexagon = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr('style', node.style);\n updateNodeBounds(node, hex);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_left_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n\n node.width = w + h;\n node.height = h;\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_right = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_left = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (2 * h) / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - (2 * h) / 6, y: -h },\n { x: -h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w + (2 * h) / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst inv_trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: (-2 * h) / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_right_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst cylinder = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n\n const shape =\n 'M 0,' +\n ry +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n -w +\n ' 0 l 0,' +\n h +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 l 0,' +\n -h;\n\n const el = shapeSvg\n .attr('label-offset-y', ry)\n .insert('path', ':first-child')\n .attr('style', node.style)\n .attr('d', shape)\n .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');\n\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n const pos = intersect.rect(node, point);\n const x = pos.x - node.x;\n\n if (\n rx != 0 &&\n (Math.abs(x) < node.width / 2 ||\n (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry))\n ) {\n // ellipsis equation: x*x / a*a + y*y / b*b = 1\n // solve for y to get adjustion value for pos.y\n let y = ry * ry * (1 - (x * x) / (rx * rx));\n if (y != 0) y = Math.sqrt(y);\n y = ry - y;\n if (point.y - node.y > 0) y = -y;\n\n pos.y += y;\n }\n\n return pos;\n };\n\n return shapeSvg;\n};\n\nconst rect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('class', 'basic label-container')\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst rectWithTitle = (parent, node) => {\n // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n // const innerRect = shapeSvg.insert('rect');\n const innerLine = shapeSvg.insert('line');\n\n const label = shapeSvg.insert('g').attr('class', 'label');\n\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;\n\n let title = '';\n if (typeof text2 === 'object') {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info('Label text abc79', title, text2, typeof text2 === 'object');\n\n const text = label.node().appendChild(createLabel(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n log.info('Text 2', text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label\n .node()\n .appendChild(\n createLabel(textRows.join ? textRows.join('
') : textRows, node.labelStyle, true, true)\n );\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n // bbox = label.getBBox();\n // log.info(descr);\n const halfPadding = node.padding / 2;\n select(descr).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n ', ' +\n (titleBox.height + halfPadding + 5) +\n ')'\n );\n select(text).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n ', ' +\n 0 +\n ')'\n );\n // Get the size of the label\n\n // Bounding box for title and text\n bbox = label.node().getBBox();\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n innerLine\n .attr('class', 'divider')\n .attr('x1', -bbox.width / 2 - halfPadding)\n .attr('x2', bbox.width / 2 + halfPadding)\n .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst stadium = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n\n // add the rect\n const rect = shapeSvg\n .insert('rect', ':first-child')\n .attr('style', node.style)\n .attr('rx', h / 2)\n .attr('ry', h / 2)\n .attr('x', -w / 2)\n .attr('y', -h / 2)\n .attr('width', w)\n .attr('height', h);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst circle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point);\n };\n\n return shapeSvg;\n};\n\nconst subroutine = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst start = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n let width = 70;\n let height = 10;\n\n if (dir === 'LR') {\n width = 10;\n height = 70;\n }\n\n const shape = shapeSvg\n .append('rect')\n .attr('x', (-1 * width) / 2)\n .attr('y', (-1 * height) / 2)\n .attr('width', width)\n .attr('height', height)\n .attr('class', 'fork-join');\n\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst end = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n const topLine = shapeSvg.insert('line');\n const bottomLine = shapeSvg.insert('line');\n let maxWidth = 0;\n let maxHeight = rowPadding;\n\n const labelContainer = shapeSvg.insert('g').attr('class', 'label');\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n\n // 1. Create the labels\n const interfaceLabelText = node.classData.annotations[0]\n ? '«' + node.classData.annotations[0] + '»'\n : '';\n const interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr('width', interfaceBBox.width);\n dv.attr('height', interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n let classTitleString = node.classData.id;\n\n if (node.classData.type !== undefined && node.classData.type !== '') {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += '<' + node.classData.type + '>';\n } else {\n classTitleString += '<' + node.classData.type + '>';\n }\n }\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr('class', 'classTitle');\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr('width', classTitleBBox.width);\n dv.attr('height', classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedInfo = parseMember(str);\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedInfo = parseMember(str);\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, '>');\n }\n const lbl = labelContainer\n .node()\n .appendChild(\n createLabel(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n\n classMethods.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n // 2. Position the labels\n\n // position the interface label\n if (hasInterface) {\n let diffX = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n 'transform',\n 'translate( ' + ((-1 * maxWidth) / 2 + diffX) + ', ' + (-1 * maxHeight) / 2 + ')'\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n // Positin the class title label\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n 'transform',\n 'translate( ' +\n ((-1 * maxWidth) / 2 + diffX) +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n\n topLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' +\n -maxWidth / 2 +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos + lineHeight / 2) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n\n verticalPos += lineHeight;\n bottomLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' + -maxWidth / 2 + ', ' + ((-1 * maxHeight) / 2 + verticalPos) + ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n //\n // let bbox;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = interfaceLabel.children[0];\n // const dv = select(interfaceLabel);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // bbox = labelContainer.getBBox();\n\n // log.info('Text 2', text2);\n // const textRows = text2.slice(1, text2.length);\n // let titleBox = text.getBBox();\n // const descr = label\n // .node()\n // .appendChild(createLabel(textRows.join('
'), node.labelStyle, true, true));\n\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = descr.children[0];\n // const dv = select(descr);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // // bbox = label.getBBox();\n // // log.info(descr);\n // select(descr).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n // ', ' +\n // (titleBox.height + halfPadding + 5) +\n // ')'\n // );\n // select(text).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n // ', ' +\n // 0 +\n // ')'\n // );\n // // Get the size of the label\n\n // // Bounding box for title and text\n // bbox = label.node().getBBox();\n\n // // Center the label\n // label.attr(\n // 'transform',\n // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n // );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -maxWidth / 2 - halfPadding)\n .attr('y', -(maxHeight / 2) - halfPadding)\n .attr('width', maxWidth + node.padding)\n .attr('height', maxHeight + node.padding);\n\n // innerLine\n // .attr('class', 'divider')\n // .attr('x1', -bbox.width / 2 - halfPadding)\n // .attr('x2', bbox.width / 2 + halfPadding)\n // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = {\n question,\n rect,\n rectWithTitle,\n choice,\n circle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box,\n};\n\nlet nodeElems = {};\n\nexport const insertNode = (elem, node, dir) => {\n let newEl;\n let el;\n\n // Add link when appropriate\n if (node.link) {\n newEl = elem\n .insert('svg:a')\n .attr('xlink:href', node.link)\n .attr('target', node.linkTarget || '_blank');\n el = shapes[node.shape](newEl, node, dir);\n } else {\n el = shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr('title', node.tooltip);\n }\n if (node.class) {\n el.attr('class', 'node default ' + node.class);\n }\n\n nodeElems[node.id] = newEl;\n\n if (node.haveCallback) {\n nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');\n }\n};\nexport const setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nexport const clear = () => {\n nodeElems = {};\n};\n\nexport const positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n 'Transforming node',\n node.diff,\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')'\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x + diff - node.width / 2) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n return diff;\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { log } from '../../logger'; // eslint-disable-line\nimport intersect from '../intersect/index.js';\n\nconst note = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.info('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nexport default note;\n","import createLabel from '../createLabel';\nimport { getConfig } from '../../config';\nimport { select } from 'd3';\nimport { evaluate } from '../../diagrams/common/common';\nexport const labelHelper = (parent, node, _classes, isNode) => {\n let classes;\n if (!_classes) {\n classes = 'node default';\n } else {\n classes = _classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, false, isNode));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const halfPadding = node.padding / 2;\n\n // Center the label\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n return { shapeSvg, bbox, halfPadding, label };\n};\n\nexport const updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\n\nexport function insertPolygonShape(parent, w, h, points) {\n return parent\n .insert('polygon', ':first-child')\n .attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n )\n .attr('class', 'label-container')\n .attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');\n}\n","import theme from './themes';\n/**\n * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click here](8.6.0_docs.md)].**\n *\n * ## **What follows are config instructions for older versions**\n *\n * These are the default options which can be overridden with the initialization call like so:\n *\n * **Example 1:**\n *
\n * mermaid.initialize({\n * flowchart:{\n * htmlLabels: false\n * }\n * });\n *\n *\n * **Example 2:**\n *
\n * <script>\n * var config = {\n * startOnLoad:true,\n * flowchart:{\n * useMaxWidth:true,\n * htmlLabels:true,\n * curve:'cardinal',\n * },\n *\n * securityLevel:'loose',\n * };\n * mermaid.initialize(config);\n * </script>\n *\n * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /**\n * theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null'|\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\".\n *\n *
\n * \"theme\": \"forest\",\n * \"themeCSS\": \".node rect { fill: red; }\"\n *\n */\n theme: 'default',\n themeVariables: theme['default'].getThemeVariables(),\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diamgram */\n maxTextSize: 50000,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | fontFamily | specifies the font to be used in the rendered diagrams| string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | logLevel |This option decides the amount of logging to be used.| string \\| number | Required | 1, 2, 3, 4, 5 |\n *\n *\n * **Notes:**\n *\n * - debug: 1\n * - info: 2\n * - warn: 3\n * - error: 4\n * - fatal: 5 (default)\n */\n logLevel: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | securitylevel | Level of trust for parsed diagram|string | Required | 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) tags in text are encoded, click functionality is disabled\n * - **loose**: tags in text are allowed, click functionality is enabled\n * - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | startOnLoad | Dictates whether mermaind starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n\n /**\n * | Parameter | Description |Type | Required |Values|\n * | --- | --- | --- | --- | --- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n\n /**\n * This option controls which currentConfig keys are considered _secure_ and can only be changed via\n * call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to\n * the `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based on a seed.\n * If set to false, the IDs are generated based on the current date and thus are not deterministic. This is the default behaviour.\n *\n * **Notes**:\n *\n * This matters if your files are checked into sourcecontrol e.g. git and should not change unless content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but deterministicIds is true, a simple number iterator is used.\n * You can set this attribute to base the seed on a static string.\n */\n deterministicIDSeed: undefined,\n\n /**\n * The object containing configurations specific for flowcharts\n */\n flowchart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean| Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal'|\n *\n * **Notes:**\n *\n * Default Vaue: 'basis'\n */\n curve: 'basis',\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * * dagre-d3\n * * dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n *| Parameter | Description | Type | Required | Values |\n *| --- | --- | --- | --- | --- |\n *| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n actorMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value|\n *\n * **Notes:**\n * Default value: 65\n */\n height: 65,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:**\n * Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:**\n * Default value: true\n */\n mirrorActors: true,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean| Required | True, False |\n *\n * **Notes:**\n *\n * Default value: false.\n */\n forceMenus: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n * When this flag is set to true, the height and width is set to 100% and is then scaling with the\n * available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n *\n * Default value: false\n */\n rightAngles: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:**\n * Default value: false\n */\n showSequenceNumbers: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorFontSize| This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n ***Notes:**\n ***Default value 14**..\n */\n actorFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorFontFamily |This sets the font family of the actor's description | string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: \"'Open-Sans\", \"sans-serif\"'\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:**\n * Default value: 400.\n */\n actorFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 14\n */\n noteFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteFontFamily| This sets the font family of actor-attached notes. | string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:**\n * Default value: 400\n */\n noteFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right'|\n *\n * **Notes:**\n * Default value: 'center'\n */\n noteAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:**\n * Default value: 16\n */\n messageFontSize: 16,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:**\n * Default value: 400.\n */\n messageFontWeight: 400,\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:**\n * Default value: false.\n */\n wrap: false,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:**\n * Default value: 0.\n */\n wrapPadding: 10,\n\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:**\n * Default value: 50.\n */\n labelBoxWidth: 50,\n\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:**\n * Default value: 20.\n */\n labelBoxHeight: 20,\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n noteFont: function () {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight,\n };\n },\n actorFont: function () {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight,\n };\n },\n },\n\n /**\n * The object containing configurations specific for gantt diagrams\n */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 25\n */\n titleTopMargin: 25,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 20\n */\n barHeight: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:**\n * Default value: 4\n */\n barGap: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n topPadding: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 75\n */\n rightPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 75\n */\n leftPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 35\n */\n gridLineStartPadding: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 11\n */\n fontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | sectionFontSize | Font size for secions| Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 11\n */\n sectionFontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n * Default value: 4\n */\n numberSectionStyles: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: '%Y-%m-%d',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| topAxis | See notes | Boolean | 4 | True, False |\n *\n ***Notes:** when this flag is set date labels will be added to the\ntop of the chart\n *\n ***Default value false**.\n */\n topAxis: false,\n\n useWidth: undefined,\n },\n\n /**\n * The object containing configurations specific for journey diagrams\n */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n leftMargin: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 65\n */\n height: 50,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageMargin |Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:**\n * Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open-Sans\", \"sans-serif\"',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n\n // text placement as: tspan | fo | old only text as before\n textPlacement: 'fo',\n actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],\n\n sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],\n sectionColours: ['#fff'],\n },\n class: {\n arrowMarkerAbsolute: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * * dagre-d3\n * * dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n git: {\n arrowMarkerAbsolute: false,\n\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * * dagre-d3\n * * dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n\n /**\n * The object containing configurations specific for entity relationship diagrams\n */\n er: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: 'TB',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | minEntityWidth | The mimimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Expressed in pixels.\n * Default value: 100\n */\n minEntityWidth: 100,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | minEntityHeight| The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n * Expressed in pixels\n * Default value: 75\n */\n minEntityHeight: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | entityPadding | Minimum internal padding betweentext in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding betweentext in an entity box and the enclosing box borders, expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:**\n * Default value: 'gray'\n */\n stroke: 'gray',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:**\n * Default value: 'honeydew'\n */\n fill: 'honeydew',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels)\n * Default value: 12\n */\n fontSize: 12,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and\n * scaled based on available space. If set to false, the diagram reserves its\n * absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /**\n * The object containing configurations specific for pie diagrams\n */\n pie: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and\n * scaled based on available space. If set to false, the diagram reserves its\n * absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /**\n * The object containing configurations specific for req diagrams\n */\n requirement: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and\n * scaled based on available space. If set to false, the diagram reserves its\n * absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n rect_fill: '#f9f9f9',\n text_color: '#333',\n rect_border_size: '0.5px',\n rect_border_color: '#bbb',\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20,\n },\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nconst keyify = (obj, prefix = '') =>\n Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === 'object' && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], '')];\n }\n return [...res, prefix + el];\n }, []);\n\nexport const configKeys = keyify(config, '');\nexport default config;\n","import { select } from 'd3';\nimport { log } from '../../logger';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport utils from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\n\nconst MERMAID_DOM_ID_PREFIX = 'classid-';\n\nlet relations = [];\nlet classes = {};\nlet classCounter = 0;\n\nlet funs = [];\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst splitClassNameAndType = function (id) {\n let genericType = '';\n let className = id;\n\n if (id.indexOf('~') > 0) {\n let split = id.split('~');\n className = split[0];\n\n genericType = split[1];\n }\n\n return { className: className, type: genericType };\n};\n\n/**\n * Function called by parser when a node definition has been found.\n * @param id\n * @public\n */\nexport const addClass = function (id) {\n let classId = splitClassNameAndType(id);\n // Only add class if not exists\n if (typeof classes[classId.className] !== 'undefined') return;\n\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter,\n };\n\n classCounter++;\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const classKeys = Object.keys(classes);\n for (let i = 0; i < classKeys.length; i++) {\n if (classes[classKeys[i]].id === id) {\n return classes[classKeys[i]].domId;\n }\n }\n};\n\nexport const clear = function () {\n relations = [];\n classes = {};\n funs = [];\n funs.push(setupToolTips);\n};\n\nexport const getClass = function (id) {\n return classes[id];\n};\nexport const getClasses = function () {\n return classes;\n};\n\nexport const getRelations = function () {\n return relations;\n};\n\nexport const addRelation = function (relation) {\n log.debug('Adding relation: ' + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n\n relations.push(relation);\n};\n\n/**\n * Adds an annotation to the specified class\n * Annotations mark special properties of the given type (like 'interface' or 'service')\n * @param className The class name\n * @param annotation The name of the annotation without any brackets\n * @public\n */\nexport const addAnnotation = function (className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\n\n/**\n * Adds a member to the specified class\n * @param className The class name\n * @param member The full name of the member.\n * If the member is enclosed in <