{"version":3,"sources":["webpack:///../../../../../src/.internal/plugins/venn/VennDiagram.ts","webpack:///../es2015/.internal/venn.js/circleintersection.js","webpack:///../es2015/.internal/venn.js/fmin/blas1.js","webpack:///../es2015/.internal/venn.js/fmin/nelderMead.js","webpack:///../es2015/.internal/venn.js/fmin/linesearch.js","webpack:///../es2015/.internal/venn.js/fmin/conjugateGradient.js","webpack:///../es2015/.internal/venn.js/layout.js","webpack:///../es2015/.internal/venn.js/fmin/bisect.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespaces.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespace.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/creator.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selector.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/array.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selectorAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/matcher.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectChild.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectChildren.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sparse.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/enter.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/data.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sort.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/attr.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/window.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/style.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/classed.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/text.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/html.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/raise.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/lower.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/insert.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/remove.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/clone.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/on.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/dispatch.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/iterator.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/select.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/filter.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/constant.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/exit.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/join.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/merge.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/order.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/call.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/nodes.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/node.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/size.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/empty.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/each.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/property.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/append.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/datum.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/local.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/sourceEvent.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/schedule.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/interrupt.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/define.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/color.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/math.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/lab.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/cubehelix.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basis.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/constant.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/color.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/rgb.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basisClosed.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/date.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/number.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/object.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/string.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/value.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/parse.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/decompose.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/zoom.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hsl.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hcl.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/cubehelix.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/tween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/define.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/color.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/math.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/lab.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/cubehelix.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/interpolate.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/remove.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selection.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/style.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/select.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selectAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/filter.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/merge.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/transition.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/on.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attr.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attrTween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/styleTween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/text.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/textTween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/delay.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/duration.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/ease.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/easeVarying.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/end.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/poly.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/sin.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/math.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/back.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/elastic.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/transition.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/cubic.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/interrupt.js","webpack:///../es2015/.internal/venn.js/diagram.js","webpack:///../../../../../src/.internal/plugins/venn/VennSeries.ts","webpack:///./plugins/venn.js"],"names":["VennDiagram_VennDiagramDataItem","_super","VennDiagramDataItem","_this","call","this","className","applyTheme","Object","tslib_es6","PercentChart","VennDiagram_VennDiagram","VennDiagram","seriesContainer","layout","padding","prototype","applyInternalDefaults","Type","readerTitle","language","translate","setLegend","legend","valueLabels","template","disabled","Registry","registeredClasses","SMALL","intersectionArea","circles","stats","i","intersectionPoints","ret","length","j","intersect","circleCircleIntersection","k","p","parentIndex","push","getIntersectionPoints","innerPoints","filter","point","circleintersection_distance","radius","containedInCircles","arcArea","polygonArea","arcs","center","getCenter","angle","Math","atan2","x","y","sort","a","b","p2","p1","midPoint","arc","indexOf","circle","a1","a2","angleDiff","PI","width","sin","cos","circleArea","smallest","disjoint","abs","area","r","acos","sqrt","circleOverlap","r1","r2","d","min","w2","h","x0","y0","rx","ry","points","zeros","Array","zerosM","map","dot","norm2","blas1_scale","value","c","weightedSum","w1","v1","v2","nelderMead","f","parameters","maxDiff","maxIterations","nonZeroDelta","zeroDelta","minErrorDelta","minTolerance","rho","undefined","chi","psi","sigma","N","simplex","fx","id","slice","updateSimplex","sortOrder","centroid","reflected","contracted","expanded","iteration","history","sortedSimplex","state","max","worst","shouldReduce","wolfeLineSearch","pk","current","next","c1","c2","phi0","phiPrime0","fxprime","phi","phi_old","phiPrime","a0","zoom","a_lo","a_high","phi_lo","conjugateGradient","initial","params","temp","yk","alpha","delta_k","venn","areas","setid","initialLayout","bestInitialLayout","loss","lossFunction","ids","pairs","sets","size","addMissingAreas","setids","hasOwnProperty","positions","values","layout_SMALL","distanceFromIntersectArea","overlap","tolerance","fA","fB","delta","mid","fMid","bisect","distance","set","setOverlaps","rowid","weight","left","right","mostOverlapped","positioned","isPositioned","element","positionSet","index","setIndex","d1","d2","extraPoints","l","bestLoss","bestPoint","localLoss","greedyLayout","constrained","restarts","matrices","distances","constraints","getDistanceMatrices","norm","row","best","obj","xi","yi","xj","yj","dij","constraint","squaredDistance","constrainedMDSGradient","random","constrainedMDSLayout","overlaps","output","getCircles","indices","orientateCircles","orientation","orientationOrder","largestX","largestY","rotation","s","slope","getBoundingBox","minMax","apply","xRange","yRange","normalizeSolution","solution","previous","clusters","find","parent","union","xRoot","yRoot","maxDistance","disjointClusters","disjointCluster","bounds","returnBounds","spacing","addCluster","cluster","bottom","xOffset","yOffset","centreing","scaleSolution","height","console","log","xScaling","yScaling","scaling","scaled","xhtml","namespaces","svg","xlink","xml","xmlns","namespace","name","prefix","space","local","creator","fullname","ownerDocument","createElementNS","document","uri","namespaceURI","documentElement","createElement","none","src_selector","selector","querySelector","array","isArray","from","empty","selectorAll","querySelectorAll","matcher","matches","childMatcher","node","childFirst","firstElementChild","children","sparse","update","EnterNode","datum","_next","_parent","__data__","constructor","appendChild","child","insertBefore","bindIndex","group","enter","exit","data","groupLength","dataLength","bindKey","key","keyValue","nodeByKeyValue","Map","keyValues","has","get","arraylike","_typeof","ascending","NaN","src_window","defaultView","styleValue","style","getPropertyValue","getComputedStyle","classArray","string","trim","split","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","n","add","classedRemove","remove","setAttribute","join","splice","contains","textRemove","textContent","htmlRemove","innerHTML","raise","nextSibling","parentNode","lower","previousSibling","firstChild","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","m","type","removeEventListener","listener","options","onAdd","event","contextListener","addEventListener","dispatchEvent","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","_regeneratorRuntime","exports","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","result","iterator__typeof","__await","then","unwrapped","error","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","_marked","_callee","groups","_context","_groups","root","Selection","parents","_parents","selection","_defineProperty","select","subgroups","subnode","subgroup","selectAll","arguments","arrayAll","selectChild","match","childFind","selectChildren","childrenFilter","bind","constant","enterGroup","updateGroup","i0","i1","_enter","_exit","onenter","onupdate","onexit","append","merge","order","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","callback","nodes","_step","_iterator","_createForOfIteratorHelper","e","each","attr","getAttributeNS","removeAttributeNS","removeAttribute","v","setAttributeNS","priority","removeProperty","setProperty","property","classed","text","html","insert","before","deep","t","typenames","parseTypenames","dispatch","selection_iterator","nextId","Local","_","toString","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","transition_schedule","timing","schedules","__transition","tween","start","elapsed","timeout","timer","restart","tick","delay","time","duration","ease","init","schedule","factory","extend","definition","Color","reI","reN","reP","reHex","reRgbInteger","RegExp","concat","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","format","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","round","Hsl","hslConvert","hsl","clamph","clampt","hsl2rgb","m2","copy","channels","assign","displayable","formatHex8","formatHsl","brighter","pow","darker","clamp","radians","degrees","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","Lab","Hcl","hcl2lab","z","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","hcl","A","B","C","D","E","ED","EB","BC_DA","cubehelix","Cubehelix","bl","cubehelixConvert","basis","v0","v3","cosh","sinh","src_constant","linear","hue","gamma","nogamma","exponential","src_rgb","rgbGamma","end","colorRgb","rgbSpline","spline","colors","floor","number","reA","reB","source","am","bm","bs","bi","lastIndex","q","one","zero","svgNode","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","decompose","atan","interpolateTransform","parse","pxComma","pxParen","degParen","xa","ya","xb","yb","scale","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","interpolateTransformSvg","transform","baseVal","consolidate","matrix","epsilon2","exp","zoomRho","rho2","rho4","p0","S","ux0","uy0","w0","ux1","uy1","dx","dy","b0","b1","r0","coshr0","u","tanh","SQRT2","_1","_2","colorHsl","colorHcl","cubehelixGamma","colorCubehelix","tweenValue","transition","_id","src_define","transition_interpolate","interpolateNumber","interpolateRgb","interpolateString","styleRemove","Transition","_name","newId","selection_prototype","transition__defineProperty","inherit","id0","id1","on0","on1","sit","every","onFunction","interpolate","attrTween","string00","string10","interpolate0","string0","string1","value1","_value","attrInterpolateNS","attrInterpolate","styleTween","styleNull","styleFunction","listener0","styleMaybeRemove","styleConstant","styleInterpolate","textFunction","textConstant","textTween","textInterpolate","removeFunction","tween0","tween1","easeConstant","easeVarying","that","cancel","interrupt","custom","polyIn","exponent","polyOut","polyInOut","tpmt","backIn","overshoot","backOut","backInOut","tau","defaultTiming","asin","elasticIn","amplitude","period","elasticOut","elasticInOut","active","now","circleMargin","interior","exterior","margin","computeTextCentre","valid","areaStats","getOverlappingCircles","circleids","circleid","computeTextCentres","overlapped","areaids","exclude","centre","intersectionAreaPath","circlePath","wide","VennSeries_VennSeriesDataItem","VennSeriesDataItem","events","component","properties","intersections","hide","toValue","fields","dataItems","dataItem","category","show","animateRadius","easing","animation","animate","to","_disposers","path","Path","isHover","updateHoverSprite","PercentSeries","VennSeries_VennSeries","VennSeries","Percent","slicesContainer","slices","strokeWidth","stroke","vennData","invalidateDataItems","labelsContainer","itemReaderText","hoverSprite","createChild","Sprite","strokeOpacity","InterfaceColorSet","getFor","strokeDasharray","zIndex","Number","MAX_VALUE","interactionsEnabled","fill","strokeDashoffset","hs","states","transitionDuration","target","visible","createSlice","createDataItem","initSlice","isMeasured","tooltipText","initLabel","label","verticalCenter","horizontalCenter","sprite","validateDataElements","labelTemplate","labels","alignLabels","getValue","isHidden","di","getDataItemByCategory","isHiding","newSets","innerWidth","innerHeight","circles_1","name_1","item","interpolationDuration","interpolationEasing","centers_1","i_1","cc","intersectionPath","tooltipX","tooltipY","updateLegendValue","propertyFields","am4plugins_venn","venn_namespaceObject"],"mappings":";;;;;;;;;;;;;;;;;;;2WA4BAA,EAAA,SAAAC,GAUC,SAAAC,IAAA,IAAAC,EACCF,EAAAG,KAAAC,OAAOA,YACPF,EAAKG,UAAY,sBACjBH,EAAKI,eAEP,OAfyCC,OAAAC,EAAA,EAAAD,CAAAN,EAAAD,GAezCC,EAfA,CAAyCQ,EAAA,GAkEzCC,EAAA,SAAAV,GA8BC,SAAAW,IAAA,IAAAT,EAGCF,EAAAG,KAAAC,OAAOA,YACPF,EAAKG,UAAY,cAEjBH,EAAKU,gBAAgBC,OAAS,aAE9BX,EAAKY,QAAQ,GAAI,GAAI,GAAI,IAGzBZ,EAAKI,eA2BP,OApEiCC,OAAAC,EAAA,EAAAD,CAAAI,EAAAX,GAgDtBW,EAAAI,UAAAC,sBAAV,WAEChB,EAAAe,UAAMC,sBAAqBb,KAAAC,MAItBa,EAAA,SAAeb,KAAKc,eACxBd,KAAKc,YAAcd,KAAKe,SAASC,UAAU,kBAOnCT,EAAAI,UAAAM,UAAV,SAAoBC,GACnBtB,EAAAe,UAAMM,UAASlB,KAAAC,KAACkB,GACZA,IACHA,EAAOC,YAAYC,SAASC,UAAW,IAG1Cd,EApEA,CAAiCF,EAAA,GA4EjCiB,EAAA,EAASC,kBAA+B,YAAIjB,EAC5CgB,EAAA,EAASC,kBAAuC,oBAAI5B,8EC3KpD6B,EAAA,MAIO,SAAAC,EAAAC,EAAAC,GAEP,IAOAC,EAPAC,EAsIA,SAAAH,GAEA,IADA,IAAAI,KACAF,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvC,QAAAI,EAAAJ,EAAA,EAA2BI,EAAAN,EAAAK,SAAoBC,EAG/C,IAFA,IAAAC,EAAAC,EAAAR,EAAAE,GACAF,EAAAM,IACAG,EAAA,EAA2BA,EAAAF,EAAAF,SAAsBI,EAAA,CACjD,IAAAC,EAAAH,EAAAE,GACAC,EAAAC,aAAAT,EAAAI,GACAF,EAAAQ,KAAAF,GAIA,OAAAN,EAnJAS,CAAAb,GAGAc,EAAAX,EAAAY,OAAA,SAAAL,GACA,OAwHO,SAAAM,EAAAhB,GACP,QAAAE,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvC,GAAYe,EAAQD,EAAAhB,EAAAE,IAAAF,EAAAE,GAAAgB,OAAApB,EACpB,SAGA,SA9HAqB,CAAAT,EAAAV,KAGAoB,EAAA,EAAAC,EAAA,EAAAC,KAIA,GAAAR,EAAAT,OAAA,GAGA,IAAAkB,EAAAC,EAAAV,GACA,IAAAZ,EAAA,EAAmBA,EAAAY,EAAAT,SAAwBH,EAAA,CAC3C,IAAAQ,EAAAI,EAAAZ,GACAQ,EAAAe,MAAAC,KAAAC,MAAAjB,EAAAkB,EAAAL,EAAAK,EAAAlB,EAAAmB,EAAAN,EAAAM,GAEAf,EAAAgB,KAAA,SAAAC,EAAAC,GAAwC,OAAAA,EAAAP,MAAAM,EAAAN,QAIxC,IAAAQ,EAAAnB,IAAAT,OAAA,GACA,IAAAH,EAAA,EAAmBA,EAAAY,EAAAT,SAAwBH,EAAA,CAC3C,IAAAgC,EAAApB,EAAAZ,GAGAmB,IAAAY,EAAAL,EAAAM,EAAAN,IAAAM,EAAAL,EAAAI,EAAAJ,GAOA,IAJA,IAAAM,GAA4BP,GAAAM,EAAAN,EAAAK,EAAAL,GAAA,EAC5BC,GAAAK,EAAAL,EAAAI,EAAAJ,GAAA,GACAO,EAAA,KAEA9B,EAAA,EAA2BA,EAAA4B,EAAAvB,YAAAN,SAA2BC,EACtD,GAAA2B,EAAAtB,YAAA0B,QAAAH,EAAAvB,YAAAL,KAAA,GAGA,IAAAgC,EAAAtC,EAAAkC,EAAAvB,YAAAL,IACAiC,EAAAb,KAAAC,MAAAO,EAAAN,EAAAU,EAAAV,EAAAM,EAAAL,EAAAS,EAAAT,GACAW,EAAAd,KAAAC,MAAAM,EAAAL,EAAAU,EAAAV,EAAAK,EAAAJ,EAAAS,EAAAT,GAEAY,EAAAD,EAAAD,EACAE,EAAA,IACAA,GAAA,EAAAf,KAAAgB,IAKA,IAAAX,EAAAS,EAAAC,EAAA,EACAE,EAAgC1B,EAAQkB,GACxCP,EAAAU,EAAAV,EAAAU,EAAApB,OAAAQ,KAAAkB,IAAAb,GACAF,EAAAS,EAAAT,EAAAS,EAAApB,OAAAQ,KAAAmB,IAAAd,KAKAY,EAAA,EAAAL,EAAApB,SACAyB,EAAA,EAAAL,EAAApB,SAIA,OAAAkB,KAAAO,WACAP,GAA+BE,SAC/BK,QACAT,KACAD,OAKA,OAAAG,IACAd,EAAAV,KAAAwB,GACAhB,GAAA0B,EAAAV,EAAAE,OAAApB,OAAAkB,EAAAO,OACAV,EAAAC,QAGK,CAGL,IAAAa,EAAA/C,EAAA,GACA,IAAAE,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvCF,EAAAE,GAAAgB,OAAA6B,EAAA7B,SACA6B,EAAA/C,EAAAE,IAMA,IAAA8C,GAAA,EACA,IAAA9C,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvC,GAAgBe,EAAQjB,EAAAE,GAAA6C,GAAArB,KAAAuB,IAAAF,EAAA7B,OAAAlB,EAAAE,GAAAgB,QAAA,CACxB8B,GAAA,EACA,MAIAA,EACA5B,EAAAC,EAAA,GAGAD,EAAA2B,EAAA7B,OAAA6B,EAAA7B,OAAAQ,KAAAgB,GACApB,EAAAV,MAAuB0B,OAAAS,EACvBb,IAA4BN,EAAAmB,EAAAnB,EAAAC,EAAAkB,EAAAlB,EAAAkB,EAAA7B,QAC5Be,IAA4BL,EAAAmB,EAAAnB,EAAA9B,EAAA+B,EAAAkB,EAAAlB,EAAAkB,EAAA7B,QAC5ByB,MAAA,EAAAI,EAAA7B,UAcA,OAVAG,GAAA,EACApB,IACAA,EAAAiD,KAAA9B,EAAAC,EACApB,EAAAmB,UACAnB,EAAAoB,cACApB,EAAAqB,OACArB,EAAAa,cACAb,EAAAE,sBAGAiB,EAAAC,EA+BO,SAAAyB,EAAAK,EAAAR,GACP,OAAAQ,IAAAzB,KAAA0B,KAAA,EAAAT,EAAAQ,MAAAR,GAAAjB,KAAA2B,KAAAV,GAAA,EAAAQ,EAAAR,IAIO,SAAS1B,EAAQiB,EAAAD,GACxB,OAAAP,KAAA2B,MAAAnB,EAAAN,EAAAK,EAAAL,IAAAM,EAAAN,EAAAK,EAAAL,IACAM,EAAAL,EAAAI,EAAAJ,IAAAK,EAAAL,EAAAI,EAAAJ,IAOO,SAAAyB,EAAAC,EAAAC,EAAAC,GAEP,GAAAA,GAAAF,EAAAC,EACA,SAIA,GAAAC,GAAA/B,KAAAuB,IAAAM,EAAAC,GACA,OAAA9B,KAAAgB,GAAAhB,KAAAgC,IAAAH,EAAAC,GAAA9B,KAAAgC,IAAAH,EAAAC,GAGA,IACAG,EAAAH,GAAAC,IAAAF,IAAAC,MAAA,EAAAC,GACA,OAAAX,EAAAS,EAFAA,GAAAE,IAAAD,IAAAD,MAAA,EAAAE,IAEAX,EAAAU,EAAAG,GAOO,SAAAnD,EAAA0B,EAAAD,GACP,IAAAwB,EAAYxC,EAAQiB,EAAAD,GACpBsB,EAAArB,EAAAhB,OACAsC,EAAAvB,EAAAf,OAGA,GAAAuC,GAAAF,EAAAC,GAAAC,GAAA/B,KAAAuB,IAAAM,EAAAC,GACA,SAGA,IAAAzB,GAAAwB,IAAAC,IAAAC,MAAA,EAAAA,GACAG,EAAAlC,KAAA2B,KAAAE,IAAAxB,KACA8B,EAAA3B,EAAAN,EAAAG,GAAAE,EAAAL,EAAAM,EAAAN,GAAA6B,EACAK,EAAA5B,EAAAL,EAAAE,GAAAE,EAAAJ,EAAAK,EAAAL,GAAA4B,EACAM,IAAA9B,EAAAJ,EAAAK,EAAAL,IAAA+B,EAAAH,GACAO,IAAA/B,EAAAL,EAAAM,EAAAN,IAAAgC,EAAAH,GAEA,QAAa7B,EAAAiC,EAAAE,EAAAlC,EAAAiC,EAAAE,IACApC,EAAAiC,EAAAE,EAAAlC,EAAAiC,EAAAE,IAIN,SAAAxC,EAAAyC,GAEP,IADA,IAAA1C,GAAkBK,EAAA,EAAAC,EAAA,GAClB3B,EAAA,EAAkBA,EAAA+D,EAAA5D,SAAmBH,EACrCqB,EAAAK,GAAAqC,EAAA/D,GAAA0B,EACAL,EAAAM,GAAAoC,EAAA/D,GAAA2B,EAIA,OAFAN,EAAAK,GAAAqC,EAAA5D,OACAkB,EAAAM,GAAAoC,EAAA5D,OACAkB,EC3NO,SAAA2C,EAAAtC,GAAyC,IAAtB,IAAAuB,EAAA,IAAAgB,MAAAvC,GAAsB1B,EAAA,EAAgBA,EAAA0B,IAAO1B,EAAOiD,EAAAjD,GAAA,EAAY,OAAAiD,EACnF,SAAAiB,EAAAxC,EAAAC,GAAsB,OAAAqC,EAAAtC,GAAAyC,IAAA,WAAiC,OAAAH,EAAArC,KAEvD,SAAAyC,EAAAvC,EAAAC,GAEP,IADA,IAAA5B,EAAA,EACAF,EAAA,EAAmBA,EAAA6B,EAAA1B,SAAcH,EACjCE,GAAA2B,EAAA7B,GAAA8B,EAAA9B,GAEA,OAAAE,EAGO,SAAAmE,EAAAxC,GACP,OAAAL,KAAA2B,KAAAiB,EAAAvC,MAGO,SAASyC,EAAKpE,EAAAqE,EAAAC,GACrB,QAAAxE,EAAA,EAAmBA,EAAAuE,EAAApE,SAAkBH,EACrCE,EAAAF,GAAAuE,EAAAvE,GAAAwE,EAIO,SAAAC,EAAAvE,EAAAwE,EAAAC,EAAAlB,EAAAmB,GACP,QAAAxE,EAAA,EAAmBA,EAAAF,EAAAC,SAAgBC,EACnCF,EAAAE,GAAAsE,EAAAC,EAAAvE,GAAAqD,EAAAmB,EAAAxE,GCtBO,SAAAyE,EAAAC,EAAAnB,EAAAoB,GAGP,IASAC,EATAC,GAFAF,SAEAE,eAAA,IAAAtB,EAAAxD,OACA+E,EAAAH,EAAAG,cAAA,KACAC,EAAAJ,EAAAI,WAAA,KACAC,EAAAL,EAAAK,eAAA,KACAC,EAAAN,EAAAK,eAAA,KACAE,OAAAC,IAAAR,EAAAO,IAAAP,EAAAO,IAAA,EACAE,OAAAD,IAAAR,EAAAS,IAAAT,EAAAS,IAAA,EACAC,OAAAF,IAAAR,EAAAU,IAAAV,EAAAU,KAAA,GACAC,OAAAH,IAAAR,EAAAW,MAAAX,EAAAW,MAAA,GAIAC,EAAAhC,EAAAxD,OACAyF,EAAA,IAAA3B,MAAA0B,EAAA,GACAC,EAAA,GAAAjC,EACAiC,EAAA,GAAAC,GAAAf,EAAAnB,GACAiC,EAAA,GAAAE,GAAA,EACA,QAAA9F,EAAA,EAAmBA,EAAA2F,IAAO3F,EAAA,CAC1B,IAAAc,EAAA6C,EAAAoC,QACAjF,EAAAd,GAAAc,EAAAd,GAAAc,EAAAd,GAAAkF,EAAAC,EACAS,EAAA5F,EAAA,GAAAc,EACA8E,EAAA5F,EAAA,GAAA6F,GAAAf,EAAAhE,GACA8E,EAAA5F,EAAA,GAAA8F,GAAA9F,EAAA,EAGA,SAAAgG,EAAAzB,GACA,QAAAvE,EAAA,EAAuBA,EAAAuE,EAAApE,OAAkBH,IACzC4F,EAAAD,GAAA3F,GAAAuE,EAAAvE,GAEA4F,EAAAD,GAAAE,GAAAtB,EAAAsB,GAUA,IAPA,IAAAI,EAAA,SAAApE,EAAAC,GAAoC,OAAAD,EAAAgE,GAAA/D,EAAA+D,IAEpCK,EAAAvC,EAAAoC,QACAI,EAAAxC,EAAAoC,QACAK,EAAAzC,EAAAoC,QACAM,EAAA1C,EAAAoC,QAEAO,EAAA,EAA2BA,EAAArB,IAA2BqB,EAAA,CAGtD,GAFAV,EAAAhE,KAAAqE,GAEAlB,EAAAwB,QAAA,CAGA,IAAAC,EAAAZ,EAAAzB,IAAA,SAAAzC,GACA,IAAA+E,EAAA/E,EAAAqE,QAGA,OAFAU,EAAAZ,GAAAnE,EAAAmE,GACAY,EAAAX,GAAApE,EAAAoE,GACAW,IAEAD,EAAA5E,KAAA,SAAAC,EAAAC,GAA8C,OAAAD,EAAAiE,GAAAhE,EAAAgE,KAE9Cf,EAAAwB,QAAA7F,MAAqCgB,EAAAkE,EAAA,GAAAG,QACrCF,GAAAD,EAAA,GAAAC,GACAD,QAAAY,IAIA,IADAxB,EAAA,EACAhF,EAAA,EAAmBA,EAAA2F,IAAO3F,EAC1BgF,EAAAxD,KAAAkF,IAAA1B,EAAAxD,KAAAuB,IAAA6C,EAAA,GAAA5F,GAAA4F,EAAA,GAAA5F,KAGA,GAAAwB,KAAAuB,IAAA6C,EAAA,GAAAC,GAAAD,EAAAD,GAAAE,IAAAT,GACAJ,EAAAK,EACA,MAIA,IAAArF,EAAA,EAAmBA,EAAA2F,IAAO3F,EAAA,CAC1BkG,EAAAlG,GAAA,EACA,QAAAI,EAAA,EAA2BA,EAAAuF,IAAOvF,EAClC8F,EAAAlG,IAAA4F,EAAAxF,GAAAJ,GAEAkG,EAAAlG,IAAA2F,EAKA,IAAAgB,EAAAf,EAAAD,GAKA,GAJQlB,EAAW0B,EAAA,EAAAb,EAAAY,GAAAZ,EAAAqB,GACnBR,EAAAN,GAAAf,EAAAqB,GAGAA,EAAAN,GAAAD,EAAA,GAAAC,GACYpB,EAAW4B,EAAA,EAAAb,EAAAU,GAAAV,EAAAmB,GACvBN,EAAAR,GAAAf,EAAAuB,GACAA,EAAAR,GAAAM,EAAAN,GACAG,EAAAK,GAEAL,EAAAG,QAMA,GAAAA,EAAAN,IAAAD,EAAAD,EAAA,GAAAE,GAAA,CACA,IAAAe,GAAA,EAsBA,GApBAT,EAAAN,GAAAc,EAAAd,IAEgBpB,EAAW2B,EAAA,EAAAX,EAAAS,GAAAT,EAAAkB,GAC3BP,EAAAP,GAAAf,EAAAsB,GACAA,EAAAP,GAAAc,EAAAd,GACAG,EAAAI,GAEAQ,GAAA,IAIgBnC,EAAW2B,EAAA,EAAAX,EAAAH,EAAAY,EAAAT,EAAAH,EAAAqB,GAC3BP,EAAAP,GAAAf,EAAAsB,GACAA,EAAAP,GAAAM,EAAAN,GACAG,EAAAI,GAEAQ,GAAA,GAIAA,EAAA,CAEA,GAAAlB,GAAA,QAGA,IAAA1F,EAAA,EAA2BA,EAAA4F,EAAAzF,SAAoBH,EAC3ByE,EAAWmB,EAAA5F,GAAA,EAAA0F,EAAAE,EAAA,GAAAF,EAAAE,EAAA5F,IAC/B4F,EAAA5F,GAAA6F,GAAAf,EAAAc,EAAA5F,UAIAgG,EAAAG,GAKA,OADAP,EAAAhE,KAAAqE,IACYJ,GAAAD,EAAA,GAAAC,GACZnE,EAAAkE,EAAA,ICpIO,SAAAiB,EAAA/B,EAAAgC,EAAAC,EAAAC,EAAAnF,EAAAoF,EAAAC,GACP,IAAAC,EAAAJ,EAAAlB,GAAAuB,EAAuChD,EAAG2C,EAAAM,QAAAP,GAC1CQ,EAAAH,EAAAI,EAAAJ,EACAK,EAAAJ,EACAK,EAAA,EAMA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,QAAAvB,EAAA,EAA+BA,EAAA,KAAgBA,EAM/C,GALAzE,GAAA8F,EAAAC,GAAA,EACYnD,EAAWuC,EAAAtF,EAAA,EAAAqF,EAAArF,EAAAG,EAAAiF,GACvBQ,EAAAN,EAAAnB,GAAAf,EAAAkC,EAAAtF,EAAAsF,EAAAK,SACAG,EAAuBpD,EAAG4C,EAAAK,QAAAP,GAE1BQ,EAAAH,EAAAF,EAAApF,EAAAuF,GACAE,GAAAO,EACAD,EAAA/F,MAEa,CACb,GAAAL,KAAAuB,IAAAyE,KAAAN,EAAAE,EACA,OAAAvF,EAGA2F,GAAAI,EAAAD,IAAA,IACAC,EAAAD,GAGAA,EAAA9F,EACAgG,EAAAP,EAIA,SA7BAzF,KAAA,EACAoF,KAAA,KACAC,KAAA,GA8BA,QAAAZ,EAAA,EAA2BA,EAAA,KAAgBA,EAAA,CAI3C,GAHQ7B,EAAWuC,EAAAtF,EAAA,EAAAqF,EAAArF,EAAAG,EAAAiF,GACnBQ,EAAAN,EAAAnB,GAAAf,EAAAkC,EAAAtF,EAAAsF,EAAAK,SACAG,EAAmBpD,EAAG4C,EAAAK,QAAAP,GACtBQ,EAAAH,EAAAF,EAAApF,EAAAuF,GACAd,GAAAgB,GAAAC,EACA,OAAAG,EAAAD,EAAA5F,EAAA0F,GAGA,GAAA/F,KAAAuB,IAAAyE,KAAAN,EAAAE,EACA,OAAAvF,EAGA,GAAA2F,GAAA,EACA,OAAAE,EAAA7F,EAAA4F,EAAAH,GAGAC,EAAAD,EACAG,EAAA5F,EACAA,GAAA,EAGA,OAAAA,ECnEO,SAAAiG,EAAAhD,EAAAiD,EAAAC,GAGP,IAGAlB,EAAAmB,EAEAhD,EALA8B,GAAmBrF,EAAAqG,EAAAhC,QAAAF,GAAA,EAAAwB,QAAAU,EAAAhC,SACnBiB,GAAgBtF,EAAAqG,EAAAhC,QAAAF,GAAA,EAAAwB,QAAAU,EAAAhC,SAChBmC,EAAAH,EAAAhC,QAEAlE,EAAA,EAIAoD,GADA+C,SACA/C,eAAA,GAAA8C,EAAA5H,OAEA4G,EAAAlB,GAAAf,EAAAiC,EAAArF,EAAAqF,EAAAM,SAEI/C,EADJwC,EAAAC,EAAAM,QAAAtB,QACSgB,EAAAM,SAAA,GAET,QAAArH,EAAA,EAAmBA,EAAAiF,IAAmBjF,EAAA,CAWtC,GAVA6B,EAAYgF,EAAe/B,EAAAgC,EAAAC,EAAAC,EAAAnF,GAG3BmG,EAAAzB,SACAyB,EAAAzB,QAAA7F,MAAiCgB,EAAAqF,EAAArF,EAAAqE,QACjCF,GAAAkB,EAAAlB,GACAwB,QAAAN,EAAAM,QAAAtB,QACAoC,MAAAtG,IAGAA,EAKS,CAEG4C,EAAWyD,EAAA,EAAAlB,EAAAK,SAAA,EAAAN,EAAAM,SAEvB,IAAAe,EAA0BhE,EAAG2C,EAAAM,QAAAN,EAAAM,SAGjB5C,EAAWqC,EAFvBtF,KAAAkF,IAAA,EAAqCtC,EAAG8D,EAAAlB,EAAAK,SAAAe,GAEjBtB,GAAA,EAAAE,EAAAK,SAEvBY,EAAAlB,EACAA,EAAAC,EACAA,EAAAiB,OAbY3D,EAAKwC,EAAAC,EAAAM,SAAA,GAgBjB,GAAYhD,EAAK0C,EAAAM,UAAA,KACjB,MAWA,OAPAW,EAAAzB,SACAyB,EAAAzB,QAAA7F,MAA6BgB,EAAAqF,EAAArF,EAAAqE,QAC7BF,GAAAkB,EAAAlB,GACAwB,QAAAN,EAAAM,QAAAtB,QACAoC,MAAAtG,IAGAkF,ECvDO,SAAAsB,EAAAC,EAAAvD,IACPA,SACAE,cAAAF,EAAAE,eAAA,IACA,IAUAsD,EAVAC,EAAAzD,EAAAyD,eAAAC,EACAC,EAAA3D,EAAA4D,gBAMA7I,EAAA0I,EAHAF,EAgEA,SAAAA,GACAA,IAAAvC,QAGA,IAA4B/F,EAAAI,EAAAyB,EAAAC,EAA5B8G,KAAAC,KACA,IAAA7I,EAAA,EAAeA,EAAAsI,EAAAnI,SAAkBH,EAAA,CACjC,IAAAgD,EAAAsF,EAAAtI,GACA,GAAAgD,EAAA8F,KAAA3I,OACAyI,EAAAlI,KAAAsC,EAAA8F,KAAA,IACS,GAAA9F,EAAA8F,KAAA3I,SACT0B,EAAAmB,EAAA8F,KAAA,GACAhH,EAAAkB,EAAA8F,KAAA,GACAD,GAAAhH,EAAAC,KAAA,EACA+G,GAAA/G,EAAAD,KAAA,GAKA,IAFA+G,EAAAhH,KAAA,SAAAC,EAAAC,GAA6B,OAAAD,EAAAC,IAE7B9B,EAAA,EAAeA,EAAA4I,EAAAzI,SAAgBH,EAE/B,IADA6B,EAAA+G,EAAA5I,GACAI,EAAAJ,EAAA,EAAuBI,EAAAwI,EAAAzI,SAAgBC,EACvC0B,EAAA8G,EAAAxI,IACAyB,EAAAC,KAAA+G,GACAP,EAAA5H,MAA4BoI,MAAAjH,EAAAC,GAC5BiH,KAAA,IAIA,OAAAT,EA5FAU,CAAAV,GAGAvD,GAGAgD,KAAAkB,KACA,IAAAV,KAAAzI,EACAA,EAAAoJ,eAAAX,KACAR,EAAArH,KAAAZ,EAAAyI,GAAA7G,GACAqG,EAAArH,KAAAZ,EAAAyI,GAAA5G,GACAsH,EAAAvI,KAAA6H,IAyBA,IApBA,IAmBAY,EAlBmBtE,EACnB,SAAAuE,GACA,EAEA,IADA,IAAArC,KACA/G,EAAA,EAA2BA,EAAAiJ,EAAA9I,SAAmBH,EAAA,CAC9C,IAAAuI,EAAAU,EAAAjJ,GACA+G,EAAAwB,IAAkC7G,EAAA0H,EAAA,EAAApJ,GAClC2B,EAAAyH,EAAA,EAAApJ,EAAA,GACAgB,OAAAlB,EAAAyI,GAAAvH,QAIA,OAAA0H,EAAA3B,EAAAuB,IAEAP,EACAhD,GAGArD,EACA1B,EAAA,EAAmBA,EAAAiJ,EAAA9I,SAAmBH,EACtCuI,EAAAU,EAAAjJ,GACAF,EAAAyI,GAAA7G,EAAAyH,EAAA,EAAAnJ,GACAF,EAAAyI,GAAA5G,EAAAwH,EAAA,EAAAnJ,EAAA,GAGA,OAAAF,EAGA,IAAIuJ,EAAK,MAIF,SAAAC,EAAAjG,EAAAC,EAAAiG,GAEP,OAAA/H,KAAAgC,IAAAH,EAAAC,GAAA9B,KAAAgC,IAAAH,EAAAC,GAAA9B,KAAAgB,IAAA+G,EAAkEF,EAClE7H,KAAAuB,IAAAM,EAAAC,GChEO,SAAAwB,EAAAjD,EAAAC,EAAAiD,GAEP,IAAAE,GADAF,SACAE,eAAA,IACAuE,EAAAzE,EAAAyE,WAAA,MACAC,EAAA3E,EAAAjD,GACA6H,EAAA5E,EAAAhD,GACA6H,EAAA7H,EAAAD,EAEA,GAAA4H,EAAAC,EAAA,EACA,sDAGA,OAAAD,EAAA,OAAA5H,EACA,OAAA6H,EAAA,OAAA5H,EAEA,QAAA9B,EAAA,EAAmBA,EAAAiF,IAAmBjF,EAAA,CAEtC,IAAA4J,EAAA/H,GADA8H,GAAA,GAEAE,EAAA/E,EAAA8E,GAMA,GAJAC,EAAAJ,GAAA,IACA5H,EAAA+H,GAGApI,KAAAuB,IAAA4G,GAAAH,GAAA,IAAAK,EACA,OAAAD,EAGA,OAAA/H,EAAA8H,EDuCWG,CAAM,SAAAC,GACjB,OAAe3G,EAAaC,EAAAC,EAAAyG,GAAAR,GACvB,EAAAlG,EAAAC,GA4GE,SAAAmF,EAAAH,EAAAN,GACP,IAAAD,EAiFO,SAAAO,EAAAN,GAIP,IAHA,IAEsCgC,EAFtCtB,EAAAV,KAAAW,aAAAX,EAAAW,eAEA7I,KAAoBmK,KACpBjK,EAAA,EAAmBA,EAAAsI,EAAAnI,SAAkBH,EAAA,CACrC,IAAAgD,EAAAsF,EAAAtI,GACA,GAAAgD,EAAA8F,KAAA3I,SACA6J,EAAAhH,EAAA8F,KAAA,GACAhJ,EAAAkK,IAA4BtI,EAAA,KAAAC,EAAA,KAC5BuI,MAAApK,EAAAK,OACA4I,KAAA/F,EAAA+F,KACA/H,OAAAQ,KAAA2B,KAAAH,EAAA+F,KAAAvH,KAAAgB,KACAyH,EAAAD,OAMA,IAHA1B,IAAAzH,OAAA,SAAAgB,GAAsC,UAAAA,EAAAiH,KAAA3I,SAGtCH,EAAA,EAAeA,EAAAsI,EAAAnI,SAAkBH,EAAA,CACjC,IAAA+G,EAAAuB,EAAAtI,GACAmK,EAAApD,EAAAmC,eAAA,UAAAnC,EAAAoD,OAAA,EACAC,EAAArD,EAAA+B,KAAA,GAAAuB,EAAAtD,EAAA+B,KAAA,GAGA/B,EAAAgC,KAA2BM,GAAK7H,KAAAgC,IAAA1D,EAAAsK,GAAArB,KAChCjJ,EAAAuK,GAAAtB,QACAoB,EAAA,GAGAF,EAAAG,GAAA1J,MAAiCsJ,IAAAK,EAAAtB,KAAAhC,EAAAgC,KAAAoB,WACjCF,EAAAI,GAAA3J,MAAiCsJ,IAAAI,EAAArB,KAAAhC,EAAAgC,KAAAoB,WAIjC,IAAAG,KACA,IAAAN,KAAAC,EACA,GAAAA,EAAAf,eAAAc,GAAA,CACA,IAAAjB,EAAA,EACA,IAAA/I,EAAA,EAAuBA,EAAAiK,EAAAD,GAAA7J,SAA6BH,EACpD+I,GAAAkB,EAAAD,GAAAhK,GAAA+I,KAAAkB,EAAAD,GAAAhK,GAAAmK,OAGAG,EAAA5J,MAAiCsJ,MAAAjB,SAKjC,SAAA9C,EAAApE,EAAAC,GACA,OAAAA,EAAAiH,KAAAlH,EAAAkH,KAEAuB,EAAA1I,KAAAqE,GAGA,IAAAsE,KACA,SAAAC,EAAAC,GACA,OAAAA,EAAAT,OAAAO,EAIA,SAAAG,EAAA5J,EAAA6J,GACA7K,EAAA6K,GAAAjJ,EAAAZ,EAAAY,EACA5B,EAAA6K,GAAAhJ,EAAAb,EAAAa,EACA4I,EAAAI,IAAA,EASA,IALAD,GAAiBhJ,EAAA,EAAAC,EAAA,GAAW2I,EAAA,GAAAN,KAK5BhK,EAAA,EAAeA,EAAAsK,EAAAnK,SAA2BH,EAAA,CAC1C,IAAA4K,EAAAN,EAAAtK,GAAAgK,IACAT,EAAAU,EAAAW,GAAA/J,OAAA2J,GAIA,GAHAR,EAAAlK,EAAA8K,GACArB,EAAA3H,KAAAqE,GAEA,IAAAsD,EAAApJ,OAEA,mDAIA,IADA,IAAA4D,KACA3D,EAAA,EAAuBA,EAAAmJ,EAAApJ,SAAoBC,EAAA,CAE3C,IAAA4B,EAAAlC,EAAAyJ,EAAAnJ,GAAA4J,KACAa,EAAAvB,EAAAU,EAAAhJ,OAAAgB,EAAAhB,OACAuI,EAAAnJ,GAAA2I,MAGAhF,EAAArD,MAAyBgB,EAAAM,EAAAN,EAAAmJ,EAAAlJ,EAAAK,EAAAL,IACzBoC,EAAArD,MAAyBgB,EAAAM,EAAAN,EAAAmJ,EAAAlJ,EAAAK,EAAAL,IACzBoC,EAAArD,MAAyBiB,EAAAK,EAAAL,EAAAkJ,EAAAnJ,EAAAM,EAAAN,IACzBqC,EAAArD,MAAyBiB,EAAAK,EAAAL,EAAAkJ,EAAAnJ,EAAAM,EAAAN,IAIzB,QAAAnB,EAAAH,EAAA,EAA+BG,EAAAgJ,EAAApJ,SAAoBI,EASnD,IARA,IAAAwB,EAAAjC,EAAAyJ,EAAAhJ,GAAAyJ,KACAc,EAAAxB,EAAAU,EAAAhJ,OAAAe,EAAAf,OACAuI,EAAAhJ,GAAAwI,MAEAgC,EAAkCzK,GACboB,EAAAM,EAAAN,EAAAC,EAAAK,EAAAL,EAAAX,OAAA6J,IACAnJ,EAAAK,EAAAL,EAAAC,EAAAI,EAAAJ,EAAAX,OAAA8J,IAErBE,EAAA,EAA+BA,EAAAD,EAAA5K,SAAwB6K,EACvDjH,EAAArD,KAAAqK,EAAAC,IAOA,IAAAC,EAAA,KAAAC,EAAAnH,EAAA,GACA,IAAA3D,EAAA,EAAmBA,EAAA2D,EAAA5D,SAAmBC,EAAA,CACtCN,EAAA8K,GAAAlJ,EAAAqC,EAAA3D,GAAAsB,EACA5B,EAAA8K,GAAAjJ,EAAAoC,EAAA3D,GAAAuB,EACA,IAAAwJ,EAAAzC,EAAA5I,EAAAwI,GACA6C,EAAAF,IACAA,EAAAE,EACAD,EAAAnH,EAAA3D,IAIAsK,EAAAQ,EAAAN,GAGA,OAAA9K,EAjNAsL,CAAA9C,EAAAN,GACAU,EAAAV,EAAAW,gBAMA,GAAAL,EAAAnI,QAAA,GACA,IAAAkL,EAYO,SAAA/C,EAAAN,GAEP,IAG8BhI,EAH9BsL,GADAtD,SACAsD,UAAA,GAGAxC,KAAAG,KACA,IAAAjJ,EAAA,EAAeA,EAAAsI,EAAAnI,SAAkBH,EAAA,CACjC,IAAAgD,EAAAsF,EAAAtI,GACA,GAAAgD,EAAA8F,KAAA3I,SACA8I,EAAAjG,EAAA8F,KAAA,IAAAA,EAAA3I,OACA2I,EAAApI,KAAAsC,IAIA,IAAAuI,EAvGO,SAAAjD,EAAAQ,EAAAG,GAEP,IAAAuC,EAAoBtH,EAAM4E,EAAA3I,OAAA2I,EAAA3I,QAC1BsL,EAAsBvH,EAAM4E,EAAA3I,OAAA2I,EAAA3I,QA0B5B,OAtBAmI,EAAAzH,OAAA,SAAAa,GAA8B,UAAAA,EAAAoH,KAAA3I,SAC9BgE,IAAA,SAAA4C,GACA,IAAAqD,EAAAnB,EAAAlC,EAAA+B,KAAA,IACAuB,EAAApB,EAAAlC,EAAA+B,KAAA,IAGAiB,EAAAT,EAFA9H,KAAA2B,KAAA2F,EAAAsB,GAAArB,KAAAvH,KAAAgB,IACAhB,KAAA2B,KAAA2F,EAAAuB,GAAAtB,KAAAvH,KAAAgB,IACAuE,EAAAgC,MAEAyC,EAAApB,GAAAC,GAAAmB,EAAAnB,GAAAD,GAAAL,EAIA,IAAAvF,EAAA,EACAuC,EAAAgC,KAAA,OAAAvH,KAAAgC,IAAAsF,EAAAsB,GAAArB,KACAD,EAAAuB,GAAAtB,MACAvE,EAAA,EACSuC,EAAAgC,MAAA,QACTvE,GAAA,GAEAiH,EAAArB,GAAAC,GAAAoB,EAAApB,GAAAD,GAAA5F,KAGYgH,YAAAC,eA0EZC,CAAApD,EAAAQ,EAAAG,GACAuC,EAAAD,EAAAC,UACAC,EAAAF,EAAAE,YAIAE,EAAetH,EAAKmH,EAAArH,IAAeE,IAAKmH,EAAA,OACxCA,IAAArH,IAAA,SAAAyH,GACA,OAAAA,EAAAzH,IAAA,SAAAI,GAAyC,OAAAA,EAAAoH,MAEzC,IAIAE,EAAA9E,EAJA+E,EAAA,SAAApK,EAAA2F,GACA,OAjFA,SAAA3F,EAAA2F,EAAAmE,EAAAC,GACA,IAAAzL,EAAA0I,EAAA,EACA,IAAA1I,EAAA,EAAeA,EAAAqH,EAAAlH,SAAoBH,EACnCqH,EAAArH,GAAA,EAGA,IAAAA,EAAA,EAAeA,EAAAwL,EAAArL,SAAsBH,EAErC,IADA,IAAA+L,EAAArK,EAAA,EAAA1B,GAAAgM,EAAAtK,EAAA,EAAA1B,EAAA,GACAI,EAAAJ,EAAA,EAA2BI,EAAAoL,EAAArL,SAAsBC,EAAA,CACjD,IAAA6L,EAAAvK,EAAA,EAAAtB,GAAA8L,EAAAxK,EAAA,EAAAtB,EAAA,GACA+L,EAAAX,EAAAxL,GAAAI,GACAgM,EAAAX,EAAAzL,GAAAI,GAEAiM,GAAAJ,EAAAF,IAAAE,EAAAF,IAAAG,EAAAF,IAAAE,EAAAF,GACAjC,EAAAvI,KAAA2B,KAAAkJ,GACA1C,EAAA0C,EAAAF,IAEAC,EAAA,GAAArC,GAAAoC,GACAC,EAAA,GAAArC,GAAAoC,IAIAzD,GAAA,EAAAiB,IAEAtC,EAAA,EAAArH,IAAA,EAAA2J,GAAAoC,EAAAE,GACA5E,EAAA,EAAArH,EAAA,MAAA2J,GAAAqC,EAAAE,GAEA7E,EAAA,EAAAjH,IAAA,EAAAuJ,GAAAsC,EAAAF,GACA1E,EAAA,EAAAjH,EAAA,MAAAuJ,GAAAuC,EAAAF,IAGA,OAAAtD,EAkDA4D,CAAA5K,EAAA2F,EAAAmE,EAAAC,IAIA,IAAAzL,EAAA,EAAeA,EAAAsL,IAActL,EAAA,CAC7B,IAAA+H,EAAsB/D,EAAK,EAAAwH,EAAArL,QAAAgE,IAAA3C,KAAA+K,QAE3BxF,EAAkBe,EAAiBgE,EAAA/D,EAAAC,KACnC6D,GAAA9E,EAAAlB,GAAAgG,EAAAhG,MACAgG,EAAA9E,GAGA,IAAAoC,EAAA0C,EAAAnK,EAGA5B,KACA,IAAAE,EAAA,EAAeA,EAAA8I,EAAA3I,SAAiBH,EAAA,CAChC,IAAAgK,EAAAlB,EAAA9I,GACAF,EAAAkK,EAAAlB,KAAA,KACApH,EAAAyH,EAAA,EAAAnJ,GAAA2L,EACAhK,EAAAwH,EAAA,EAAAnJ,EAAA,GAAA2L,EACA3K,OAAAQ,KAAA2B,KAAA6G,EAAAjB,KAAAvH,KAAAgB,KAIA,GAAAwF,EAAAzB,QACA,IAAAvG,EAAA,EAAmBA,EAAAgI,EAAAzB,QAAApG,SAA2BH,EAClCsE,EAAK0D,EAAAzB,QAAAvG,GAAA0B,EAAAiK,GAGjB,OAAA7L,EAnEA0M,CAAAlE,EAAAN,GACAU,EAAA2C,EAAA/C,GAGA,KAFAI,EAAAX,EAAAO,KAGAP,EAAAsD,GAGA,OAAAtD,EAuMO,SAAAY,EAAAG,EAAA2D,GACP,IAAAC,EAAA,EAEA,SAAAC,EAAAC,GACA,OAAAA,EAAAzI,IAAA,SAAAnE,GAAwC,OAAA8I,EAAA9I,KAGxC,QAAAA,EAAA,EAAmBA,EAAAyM,EAAAtM,SAAqBH,EAAA,CACxC,IAAAuJ,EAAAvG,EAAAyJ,EAAAzM,GACA,MAAAgD,EAAA8F,KAAA3I,OAAA,CAES,MAAA6C,EAAA8F,KAAA3I,OAAA,CACT,IAAAiK,EAAAtB,EAAA9F,EAAA8F,KAAA,IACAuB,EAAAvB,EAAA9F,EAAA8F,KAAA,IACAS,EAAsBnG,EAAagH,EAAApJ,OAAAqJ,EAAArJ,OACCD,EAAQqJ,EAAAC,SAE5Cd,EAAsB1J,EAAgB8M,EAAA3J,EAAA8F,OAItC4D,IADA1J,EAAAkG,eAAA,UAAAlG,EAAAmH,OAAA,IACAZ,EAAAvG,EAAA+F,OAAAQ,EAAAvG,EAAA+F,OAGA,OAAA2D,EAIA,SAAAG,EAAA/M,EAAAgN,EAAAC,GAOA,IAAA/M,EAEA,GARA,OAAA+M,EACAjN,EAAA8B,KAAA,SAAAC,EAAAC,GAAsC,OAAAA,EAAAd,OAAAa,EAAAb,SAEtClB,EAAA8B,KAAAmL,GAKAjN,EAAAK,OAAA,GACA,IAAA6M,EAAAlN,EAAA,GAAA4B,EACAuL,EAAAnN,EAAA,GAAA6B,EAEA,IAAA3B,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvCF,EAAAE,GAAA0B,GAAAsL,EACAlN,EAAAE,GAAA2B,GAAAsL,EAIA,GAAAnN,EAAAK,SAGmBY,EAAQjB,EAAA,GAAAA,EAAA,IAC3B0B,KAAAuB,IAAAjD,EAAA,GAAAkB,OAAAlB,EAAA,GAAAkB,UACAlB,EAAA,GAAA4B,EAAA5B,EAAA,GAAA4B,EAAA5B,EAAA,GAAAkB,OAAAlB,EAAA,GAAAkB,OAAA,MACAlB,EAAA,GAAA6B,EAAA7B,EAAA,GAAA6B,IAMA,GAAA7B,EAAAK,OAAA,GACA,IAEAuB,EAAAC,EAFAuL,EAAA1L,KAAAC,MAAA3B,EAAA,GAAA4B,EAAA5B,EAAA,GAAA6B,GAAAmL,EACAtI,EAAAhD,KAAAmB,IAAAuK,GACAC,EAAA3L,KAAAkB,IAAAwK,GAEA,IAAAlN,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvC0B,EAAA5B,EAAAE,GAAA0B,EACAC,EAAA7B,EAAAE,GAAA2B,EACA7B,EAAAE,GAAA0B,EAAA8C,EAAA9C,EAAAyL,EAAAxL,EACA7B,EAAAE,GAAA2B,EAAAwL,EAAAzL,EAAA8C,EAAA7C,EAMA,GAAA7B,EAAAK,OAAA,GAEA,IADA,IAAAoB,EAAAC,KAAAC,MAAA3B,EAAA,GAAA4B,EAAA5B,EAAA,GAAA6B,GAAAmL,EACAvL,EAAA,GAA2BA,GAAA,EAAAC,KAAAgB,GAC3B,KAAAjB,EAAA,EAAAC,KAAAgB,IAAmCjB,GAAA,EAAAC,KAAAgB,GACnC,GAAAjB,EAAAC,KAAAgB,GAAA,CACA,IAAA4K,EAAAtN,EAAA,GAAA6B,GAAA,MAAA7B,EAAA,GAAA4B,GACA,IAAA1B,EAAA,EAAuBA,EAAAF,EAAAK,SAAoBH,EAAA,CAC3C,IAAAuD,GAAAzD,EAAAE,GAAA0B,EAAA0L,EAAAtN,EAAAE,GAAA2B,IAAA,EAAAyL,KACAtN,EAAAE,GAAA0B,EAAA,EAAA6B,EAAAzD,EAAAE,GAAA0B,EACA5B,EAAAE,GAAA2B,EAAA,EAAA4B,EAAA6J,EAAAtN,EAAAE,GAAA2B,KAwDA,SAAA0L,EAAAvN,GACA,IAAAwN,EAAA,SAAA/J,GAKA,OAAgBmD,IAJhBlF,KAAAkF,IAAA6G,MAAA,KAAAzN,EAAAqE,IACA,SAAAK,GAA6C,OAAAA,EAAAjB,GAAAiB,EAAAxD,UAG7BwC,IAFhBhC,KAAAgC,IAAA+J,MAAA,KAAAzN,EAAAqE,IACA,SAAAK,GAA6C,OAAAA,EAAAjB,GAAAiB,EAAAxD,YAI7C,OAAYwM,OAAAF,EAAA,KAAAG,OAAAH,EAAA,MAGL,SAAAI,EAAAC,EAAAb,EAAAC,GACP,OAAAD,IACAA,EAAAtL,KAAAgB,GAAA,GAKA,IAAAxC,EAAAuI,EAAAzI,KACA,IAAAyI,KAAAoF,EACA,GAAAA,EAAAzE,eAAAX,GAAA,CACA,IAAAqF,EAAAD,EAAApF,GACAzI,EAAAY,MAA0BgB,EAAAkM,EAAAlM,EAC1BC,EAAAiM,EAAAjM,EACAX,OAAA4M,EAAA5M,OACAuH,UAKA,IAAAsF,EAjFO,SAAA/N,GAKP,SAAAgO,EAAA1L,GAIA,OAHAA,EAAA2L,SAAA3L,IACAA,EAAA2L,OAAAD,EAAA1L,EAAA2L,SAEA3L,EAAA2L,OAGA,SAAAC,EAAAtM,EAAAC,GACA,IAAAsM,EAAAH,EAAApM,GAAAwM,EAAAJ,EAAAnM,GACAsM,EAAAF,OAAAG,EAZApO,EAAAqE,IAAA,SAAA/B,GAAkCA,EAAA2L,OAAA3L,IAgBlC,QAAApC,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EACvC,QAAAI,EAAAJ,EAAA,EAA2BI,EAAAN,EAAAK,SAAoBC,EAAA,CAC/C,IAAA+N,EAAArO,EAAAE,GAAAgB,OAAAlB,EAAAM,GAAAY,OACgBD,EAAQjB,EAAAE,GAAAF,EAAAM,IAAA,MAAA+N,GACxBH,EAAAlO,EAAAM,GAAAN,EAAAE,IAMA,IAA6BuI,EAA7B6F,KACA,IAAApO,EAAA,EAAeA,EAAAF,EAAAK,SAAoBH,GACnCuI,EAAAuF,EAAAhO,EAAAE,IAAA+N,OAAAxF,SACA6F,IACAA,EAAA7F,OAEA6F,EAAA7F,GAAA7H,KAAAZ,EAAAE,IAIAF,EAAAqE,IAAA,SAAA/B,UAAkCA,EAAA2L,SAGlC,IAAA7N,KACA,IAAAqI,KAAA6F,EACAA,EAAAlF,eAAAX,IACArI,EAAAQ,KAAA0N,EAAA7F,IAGA,OAAArI,EAkCAmO,CAAAvO,GAGA,IAAAE,EAAA,EAAeA,EAAA6N,EAAA1N,SAAqBH,EAAA,CACpC6M,EAAAgB,EAAA7N,GAAA8M,EAAAC,GACA,IAAAuB,EAAAjB,EAAAQ,EAAA7N,IACA6N,EAAA7N,GAAA+I,MAAAuF,EAAAd,OAAA9G,IAAA4H,EAAAd,OAAAhK,MAAA8K,EAAAb,OAAA/G,IAAA4H,EAAAb,OAAAjK,KACAqK,EAAA7N,GAAAsO,SAEAT,EAAAjM,KAAA,SAAAC,EAAAC,GAAkC,OAAAA,EAAAiH,KAAAlH,EAAAkH,OAIlC,IAAAwF,GADAzO,EAAA+N,EAAA,IACAS,OAEAE,GAAAD,EAAAf,OAAA9G,IAAA6H,EAAAf,OAAAhK,KAAA,GAEA,SAAAiL,EAAAC,EAAArE,EAAAsE,GACA,GAAAD,EAAA,CAEA,IAAAE,EAAAC,EAAAC,EAAAR,EAAAI,EAAAJ,OAEAjE,EACAuE,EAAAL,EAAAf,OAAA9G,IAAA4H,EAAAd,OAAAhK,IAAAgL,GAEAI,EAAAL,EAAAf,OAAA9G,IAAA4H,EAAAd,OAAA9G,KACAoI,GAAAR,EAAAd,OAAA9G,IAAA4H,EAAAd,OAAAhK,KAAA,GACA+K,EAAAf,OAAA9G,IAAA6H,EAAAf,OAAAhK,KAAA,GACA,IAAAoL,GAAAE,IAGAH,EACAE,EAAAN,EAAAd,OAAA/G,IAAA4H,EAAAb,OAAAjK,IAAAgL,GAEAK,EAAAN,EAAAd,OAAA/G,IAAA4H,EAAAb,OAAA/G,KACAoI,GAAAR,EAAAb,OAAA/G,IAAA4H,EAAAb,OAAAjK,KAAA,GACA+K,EAAAd,OAAA/G,IAAA6H,EAAAd,OAAAjK,KAAA,GACA,IAAAqL,GAAAC,IAGA,QAAA1O,EAAA,EAAuBA,EAAAsO,EAAAvO,SAAoBC,EAC3CsO,EAAAtO,GAAAsB,GAAAkN,EACAF,EAAAtO,GAAAuB,GAAAkN,EACA/O,EAAAY,KAAAgO,EAAAtO,KAKA,IADA,IAAAuK,EAAA,EACAA,EAAAkD,EAAA1N,QACAsO,EAAAZ,EAAAlD,IAAA,MACA8D,EAAAZ,EAAAlD,EAAA,UACA8D,EAAAZ,EAAAlD,EAAA,UACAA,GAAA,EAIA4D,EAAAlB,EAAAvN,GAIA,IAAAI,KACA,IAAAF,EAAA,EAAeA,EAAAF,EAAAK,SAAoBH,EACnCE,EAAAJ,EAAAE,GAAAuI,OAAAzI,EAAAE,GAEA,OAAAE,EAMO,SAAA6O,EAAApB,EAAAlL,EAAAuM,EAAAlQ,GACP,IAAAgB,KAAAmJ,KACA,QAAAV,KAAAoF,EACAA,EAAAzE,eAAAX,KACAU,EAAAvI,KAAA6H,GACAzI,EAAAY,KAAAiN,EAAApF,KAIA9F,GAAA,EAAA3D,EACAkQ,GAAA,EAAAlQ,EAEA,IAAAwP,EAAAjB,EAAAvN,GACA0N,EAAAc,EAAAd,OACAC,EAAAa,EAAAb,OAEA,GAAAD,EAAA9G,KAAA8G,EAAAhK,KACAiK,EAAA/G,KAAA+G,EAAAjK,IAEA,OADAyL,QAAAC,IAAA,4CACAvB,EAYA,IATA,IAAAwB,EAAA1M,GAAA+K,EAAA9G,IAAA8G,EAAAhK,KACA4L,EAAAJ,GAAAvB,EAAA/G,IAAA+G,EAAAjK,KACA6L,EAAA7N,KAAAgC,IAAA4L,EAAAD,GAGAP,GAAAnM,GAAA+K,EAAA9G,IAAA8G,EAAAhK,KAAA6L,GAAA,EACAR,GAAAG,GAAAvB,EAAA/G,IAAA+G,EAAAjK,KAAA6L,GAAA,EAEAC,KACAtP,EAAA,EAAmBA,EAAAF,EAAAK,SAAoBH,EAAA,CACvC,IAAAoC,EAAAtC,EAAAE,GACAsP,EAAArG,EAAAjJ,KACAgB,OAAAqO,EAAAjN,EAAApB,OACAU,EAAA5C,EAAA8P,GAAAxM,EAAAV,EAAA8L,EAAAhK,KAAA6L,EACA1N,EAAA7C,EAAA+P,GAAAzM,EAAAT,EAAA8L,EAAAjK,KAAA6L,GAIA,OAAAC,EEnqBO,IAAIC,EAAQ,+BAEJC,GACbC,IAAK,6BACLF,MAAOA,EACPG,MAAO,+BACPC,IAAK,uCACLC,MAAO,iCCLMC,EAAA,SAASC,GACtB,IAAIC,EAASD,GAAQ,GAAI9P,EAAI+P,EAAO5N,QAAQ,KAE5C,OADInC,GAAK,GAAqC,WAA/B+P,EAASD,EAAK/J,MAAM,EAAG/F,MAAiB8P,EAAOA,EAAK/J,MAAM/F,EAAI,IACtEwP,EAAWtG,eAAe6G,IAAWC,MAAOR,EAAWO,GAASE,MAAOH,GAAQA,GCczE,IAAAI,EAAA,SAASJ,GACtB,IAAIK,EAAWN,EAAUC,GACzB,OAAQK,EAASF,MARnB,SAAsBE,GACpB,OAAO,WACL,OAAO/R,KAAKgS,cAAcC,gBAAgBF,EAASH,MAAOG,EAASF,SAZvE,SAAwBH,GACtB,OAAO,WACL,IAAIQ,EAAWlS,KAAKgS,cAChBG,EAAMnS,KAAKoS,aACf,OAAOD,IAAQhB,GAASe,EAASG,gBAAgBD,eAAiBjB,EAC5De,EAASI,cAAcZ,GACvBQ,EAASD,gBAAgBE,EAAKT,MAchBK,ICvBxB,SAASQ,KAEM,IAAAC,EAAA,SAASC,GACtB,OAAmB,MAAZA,EAAmBF,EAAO,WAC/B,OAAOvS,KAAK0S,cAAcD,KCEf,SAASE,EAAMrP,GAC5B,OAAY,MAALA,KAAiBuC,MAAM+M,QAAQtP,GAAKA,EAAIuC,MAAMgN,KAAKvP,GCP5D,SAASwP,IACP,SAGa,IAAAC,EAAA,SAASN,GACtB,OAAmB,MAAZA,EAAmBK,EAAQ,WAChC,OAAO9S,KAAKgT,iBAAiBP,KCIlB,ICVAQ,EAAA,SAASR,GACtB,OAAO,WACL,OAAOzS,KAAKkT,QAAQT,KAIjB,SAASU,EAAaV,GAC3B,OAAO,SAASW,GACd,OAAOA,EAAKF,QAAQT,ICNxB,IAAI/C,EAAO7J,MAAMlF,UAAU+O,KAQ3B,SAAS2D,IACP,OAAOrT,KAAKsT,kBAGC,ICZX7Q,GAASoD,MAAMlF,UAAU8B,OAE7B,SAAS8Q,KACP,OAAO1N,MAAMgN,KAAK7S,KAAKuT,UASV,ICdAC,GAAA,SAASC,GACtB,OAAO,IAAI5N,MAAM4N,EAAO1R,SCMnB,SAAS2R,GAAU/D,EAAQgE,GAChC3T,KAAKgS,cAAgBrC,EAAOqC,cAC5BhS,KAAKoS,aAAezC,EAAOyC,aAC3BpS,KAAK4T,MAAQ,KACb5T,KAAK6T,QAAUlE,EACf3P,KAAK8T,SAAWH,EAGlBD,GAAU/S,WACRoT,YAAaL,GACbM,YAAa,SAASC,GAAS,OAAOjU,KAAK6T,QAAQK,aAAaD,EAAOjU,KAAK4T,QAC5EM,aAAc,SAASD,EAAOrL,GAAQ,OAAO5I,KAAK6T,QAAQK,aAAaD,EAAOrL,IAC9E8J,cAAe,SAASD,GAAY,OAAOzS,KAAK6T,QAAQnB,cAAcD,IACtEO,iBAAkB,SAASP,GAAY,OAAOzS,KAAK6T,QAAQb,iBAAiBP,sQChB9E,SAAS0B,GAAUxE,EAAQyE,EAAOC,EAAOZ,EAAQa,EAAMC,GASrD,IARA,IACInB,EADAxR,EAAI,EAEJ4S,EAAcJ,EAAMrS,OACpB0S,EAAaF,EAAKxS,OAKfH,EAAI6S,IAAc7S,GACnBwR,EAAOgB,EAAMxS,KACfwR,EAAKU,SAAWS,EAAK3S,GACrB6R,EAAO7R,GAAKwR,GAEZiB,EAAMzS,GAAK,IAAI8R,GAAU/D,EAAQ4E,EAAK3S,IAK1C,KAAOA,EAAI4S,IAAe5S,GACpBwR,EAAOgB,EAAMxS,MACf0S,EAAK1S,GAAKwR,GAKhB,SAASsB,GAAQ/E,EAAQyE,EAAOC,EAAOZ,EAAQa,EAAMC,EAAMI,GACzD,IAAI/S,EACAwR,EAKAwB,EAJAC,EAAiB,IAAIC,IACrBN,EAAcJ,EAAMrS,OACpB0S,EAAaF,EAAKxS,OAClBgT,EAAY,IAAIlP,MAAM2O,GAK1B,IAAK5S,EAAI,EAAGA,EAAI4S,IAAe5S,GACzBwR,EAAOgB,EAAMxS,MACfmT,EAAUnT,GAAKgT,EAAWD,EAAI5U,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,GAAS,GAChES,EAAeG,IAAIJ,GACrBN,EAAK1S,GAAKwR,EAEVyB,EAAejJ,IAAIgJ,EAAUxB,IAQnC,IAAKxR,EAAI,EAAGA,EAAI6S,IAAc7S,EAC5BgT,EAAWD,EAAI5U,KAAK4P,EAAQ4E,EAAK3S,GAAIA,EAAG2S,GAAQ,IAC5CnB,EAAOyB,EAAeI,IAAIL,KAC5BnB,EAAO7R,GAAKwR,EACZA,EAAKU,SAAWS,EAAK3S,GACrBiT,EAAc,OAAQD,IAEtBP,EAAMzS,GAAK,IAAI8R,GAAU/D,EAAQ4E,EAAK3S,IAK1C,IAAKA,EAAI,EAAGA,EAAI4S,IAAe5S,GACxBwR,EAAOgB,EAAMxS,KAAQiT,EAAeI,IAAIF,EAAUnT,MAAQwR,IAC7DkB,EAAK1S,GAAKwR,GAKhB,SAASO,GAAMP,GACb,OAAOA,EAAKU,SAgDd,SAASoB,GAAUX,GACjB,MAAuB,WAAhBY,GAAOZ,IAAqB,WAAYA,EAC3CA,EACA1O,MAAMgN,KAAK0B,GCzGjB,SAASa,GAAU3R,EAAGC,GACpB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAI2R,4hCCoBhC,IC1CAC,GAAA,SAASlC,GACtB,OAAQA,EAAKpB,eAAiBoB,EAAKpB,cAAcuD,aACzCnC,EAAKlB,UAAYkB,GAClBA,EAAKmC,aC4BP,SAASC,GAAWpC,EAAM1B,GAC/B,OAAO0B,EAAKqC,MAAMC,iBAAiBhE,IAC5B6D,GAAYnC,GAAMuC,iBAAiBvC,EAAM,MAAMsC,iBAAiBhE,GCjCzE,SAASkE,GAAWC,GAClB,OAAOA,EAAOC,OAAOC,MAAM,SAG7B,SAASC,GAAU5C,GACjB,OAAOA,EAAK4C,WAAa,IAAIC,GAAU7C,GAGzC,SAAS6C,GAAU7C,GACjBpT,KAAKkW,MAAQ9C,EACbpT,KAAKmW,OAASP,GAAWxC,EAAKgD,aAAa,UAAY,IAuBzD,SAASC,GAAWjD,EAAMkD,GAExB,IADA,IAAIC,EAAOP,GAAU5C,GAAOxR,GAAK,EAAG4U,EAAIF,EAAMvU,SACrCH,EAAI4U,GAAGD,EAAKE,IAAIH,EAAM1U,IAGjC,SAAS8U,GAActD,EAAMkD,GAE3B,IADA,IAAIC,EAAOP,GAAU5C,GAAOxR,GAAK,EAAG4U,EAAIF,EAAMvU,SACrCH,EAAI4U,GAAGD,EAAKI,OAAOL,EAAM1U,IA3BpCqU,GAAUtV,WACR8V,IAAK,SAAS/E,GACJ1R,KAAKmW,OAAOpS,QAAQ2N,GACpB,IACN1R,KAAKmW,OAAO7T,KAAKoP,GACjB1R,KAAKkW,MAAMU,aAAa,QAAS5W,KAAKmW,OAAOU,KAAK,QAGtDF,OAAQ,SAASjF,GACf,IAAI9P,EAAI5B,KAAKmW,OAAOpS,QAAQ2N,GACxB9P,GAAK,IACP5B,KAAKmW,OAAOW,OAAOlV,EAAG,GACtB5B,KAAKkW,MAAMU,aAAa,QAAS5W,KAAKmW,OAAOU,KAAK,QAGtDE,SAAU,SAASrF,GACjB,OAAO1R,KAAKmW,OAAOpS,QAAQ2N,IAAS,IC7BxC,SAASsF,KACPhX,KAAKiX,YAAc,GCDrB,SAASC,KACPlX,KAAKmX,UAAY,GCDnB,SAASC,KACHpX,KAAKqX,aAAarX,KAAKsX,WAAWtD,YAAYhU,MCDpD,SAASuX,KACHvX,KAAKwX,iBAAiBxX,KAAKsX,WAAWpD,aAAalU,KAAMA,KAAKsX,WAAWG,YCE/E,SAASC,KACP,OAAO,KCJT,SAASf,KACP,IAAIhH,EAAS3P,KAAKsX,WACd3H,GAAQA,EAAOgI,YAAY3X,MCFjC,SAAS4X,KACP,IAAIC,EAAQ7X,KAAK8X,WAAU,GAAQnI,EAAS3P,KAAKsX,WACjD,OAAO3H,EAASA,EAAOuE,aAAa2D,EAAO7X,KAAKqX,aAAeQ,EAGjE,SAASE,KACP,IAAIF,EAAQ7X,KAAK8X,WAAU,GAAOnI,EAAS3P,KAAKsX,WAChD,OAAO3H,EAASA,EAAOuE,aAAa2D,EAAO7X,KAAKqX,aAAeQ,ECOjE,SAASG,GAASC,GAChB,OAAO,WACL,IAAIC,EAAKlY,KAAKmY,KACd,GAAKD,EAAL,CACA,IAAK,IAAkCE,EAA9BpW,EAAI,EAAGJ,GAAK,EAAGyW,EAAIH,EAAGnW,OAAWC,EAAIqW,IAAKrW,EAC7CoW,EAAIF,EAAGlW,GAAMiW,EAASK,MAAQF,EAAEE,OAASL,EAASK,MAASF,EAAE1G,OAASuG,EAASvG,KAGjFwG,IAAKtW,GAAKwW,EAFVpY,KAAKuY,oBAAoBH,EAAEE,KAAMF,EAAEI,SAAUJ,EAAEK,WAK7C7W,EAAGsW,EAAGnW,OAASH,SACT5B,KAAKmY,OAIrB,SAASO,GAAMT,EAAU9R,EAAOsS,GAC9B,OAAO,WACL,IAAoBL,EAAhBF,EAAKlY,KAAKmY,KAASK,EAhC3B,SAAyBA,GACvB,OAAO,SAASG,GACdH,EAASzY,KAAKC,KAAM2Y,EAAO3Y,KAAK8T,WA8BE8E,CAAgBzS,GAClD,GAAI+R,EAAI,IAAK,IAAIlW,EAAI,EAAGqW,EAAIH,EAAGnW,OAAQC,EAAIqW,IAAKrW,EAC9C,IAAKoW,EAAIF,EAAGlW,IAAIsW,OAASL,EAASK,MAAQF,EAAE1G,OAASuG,EAASvG,KAI5D,OAHA1R,KAAKuY,oBAAoBH,EAAEE,KAAMF,EAAEI,SAAUJ,EAAEK,SAC/CzY,KAAK6Y,iBAAiBT,EAAEE,KAAMF,EAAEI,SAAWA,EAAUJ,EAAEK,QAAUA,QACjEL,EAAEjS,MAAQA,GAIdnG,KAAK6Y,iBAAiBZ,EAASK,KAAME,EAAUC,GAC/CL,GAAKE,KAAML,EAASK,KAAM5G,KAAMuG,EAASvG,KAAMvL,MAAOA,EAAOqS,SAAUA,EAAUC,QAASA,GACrFP,EACAA,EAAG5V,KAAK8V,GADJpY,KAAKmY,MAAQC,ICzC1B,SAASU,GAAc1F,EAAMkF,EAAM1O,GACjC,IAAImP,EAASxD,GAAYnC,GACrBuF,EAAQI,EAAOC,YAEE,mBAAVL,EACTA,EAAQ,IAAIA,EAAML,EAAM1O,IAExB+O,EAAQI,EAAO7G,SAAS+G,YAAY,SAChCrP,GAAQ+O,EAAMO,UAAUZ,EAAM1O,EAAOuP,QAASvP,EAAOwP,YAAaT,EAAMU,OAASzP,EAAOyP,QACvFV,EAAMO,UAAUZ,GAAM,GAAO,IAGpClF,EAAK0F,cAAcH,kRCbrBW,GAAA,kBAAAC,GAAA,IAAAA,KAAAC,EAAArZ,OAAAQ,UAAA8Y,EAAAD,EAAA1O,eAAA4O,EAAA,mBAAAC,iBAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAC,EAAAxM,EAAAiH,EAAAxO,GAAA,OAAAhG,OAAAga,eAAAzM,EAAAiH,GAAAxO,QAAAiU,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAA5M,EAAAiH,GAAA,IAAAuF,KAAA,UAAAK,GAAAL,EAAA,SAAAxM,EAAAiH,EAAAxO,GAAA,OAAAuH,EAAAiH,GAAAxO,GAAA,SAAAqU,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,KAAA/Z,qBAAAma,EAAAJ,EAAAI,EAAAC,EAAA5a,OAAA6a,OAAAH,EAAAla,WAAAsa,EAAA,IAAAC,EAAAN,OAAA,OAAAG,EAAAI,QAAA,SAAAV,EAAAE,EAAAM,GAAA,IAAA5S,EAAA,iCAAA+S,EAAAC,GAAA,iBAAAhT,EAAA,UAAAiT,MAAA,iDAAAjT,EAAA,cAAA+S,EAAA,MAAAC,EAAA,OAAAE,IAAA,IAAAN,EAAAG,SAAAH,EAAAI,QAAA,KAAAG,EAAAP,EAAAO,SAAA,GAAAA,EAAA,KAAAC,EAAAC,EAAAF,EAAAP,GAAA,GAAAQ,EAAA,IAAAA,IAAAE,EAAA,gBAAAF,GAAA,YAAAR,EAAAG,OAAAH,EAAAW,KAAAX,EAAAY,MAAAZ,EAAAI,SAAA,aAAAJ,EAAAG,OAAA,uBAAA/S,EAAA,MAAAA,EAAA,YAAA4S,EAAAI,IAAAJ,EAAAa,kBAAAb,EAAAI,SAAA,WAAAJ,EAAAG,QAAAH,EAAAc,OAAA,SAAAd,EAAAI,KAAAhT,EAAA,gBAAA2T,EAAAC,EAAAxB,EAAAE,EAAAM,GAAA,cAAAe,EAAA1D,KAAA,IAAAjQ,EAAA4S,EAAAiB,KAAA,6BAAAF,EAAAX,MAAAM,EAAA,gBAAAxV,MAAA6V,EAAAX,IAAAa,KAAAjB,EAAAiB,MAAA,UAAAF,EAAA1D,OAAAjQ,EAAA,YAAA4S,EAAAG,OAAA,QAAAH,EAAAI,IAAAW,EAAAX,OAAA,CAAAZ,EAAAE,EAAAM,GAAAF,EAAA,SAAAkB,EAAAE,EAAAzO,EAAA2N,GAAA,WAAA/C,KAAA,SAAA+C,IAAAc,EAAApc,KAAA2N,EAAA2N,IAAA,MAAAd,GAAA,OAAAjC,KAAA,QAAA+C,IAAAd,IAAAhB,EAAAiB,OAAA,IAAAmB,KAAA,SAAAb,KAAA,SAAAsB,KAAA,SAAAC,KAAA,IAAAC,KAAApC,EAAAoC,EAAA1C,EAAA,kBAAA5Z,OAAA,IAAAuc,EAAApc,OAAAqc,eAAAC,EAAAF,OAAAvR,QAAAyR,OAAAjD,GAAAC,EAAA1Z,KAAA0c,EAAA7C,KAAA0C,EAAAG,GAAA,IAAAC,EAAAL,EAAA1b,UAAAma,EAAAna,UAAAR,OAAA6a,OAAAsB,GAAA,SAAAK,EAAAhc,IAAA,yBAAAic,QAAA,SAAAxB,GAAAlB,EAAAvZ,EAAAya,EAAA,SAAAC,GAAA,OAAArb,KAAAmb,QAAAC,EAAAC,OAAA,SAAAwB,EAAA9B,EAAA+B,GAAA,IAAAC,EAAA/c,KAAAmb,QAAA,SAAAC,EAAAC,GAAA,SAAA2B,IAAA,WAAAF,EAAA,SAAAG,EAAAC,IAAA,SAAAC,EAAA/B,EAAAC,EAAA4B,EAAAC,GAAA,IAAAlB,EAAAC,EAAAlB,EAAAK,GAAAL,EAAAM,GAAA,aAAAW,EAAA1D,KAAA,KAAA8E,EAAApB,EAAAX,IAAAlV,EAAAiX,EAAAjX,MAAA,OAAAA,GAAA,UAAAkX,GAAAlX,IAAAsT,EAAA1Z,KAAAoG,EAAA,WAAA2W,EAAAG,QAAA9W,EAAAmX,SAAAC,KAAA,SAAApX,GAAAgX,EAAA,OAAAhX,EAAA8W,EAAAC,IAAA,SAAA3C,GAAA4C,EAAA,QAAA5C,EAAA0C,EAAAC,KAAAJ,EAAAG,QAAA9W,GAAAoX,KAAA,SAAAC,GAAAJ,EAAAjX,MAAAqX,EAAAP,EAAAG,IAAA,SAAAK,GAAA,OAAAN,EAAA,QAAAM,EAAAR,EAAAC,OAAAlB,EAAAX,KAAA8B,CAAA/B,EAAAC,EAAA4B,EAAAC,KAAA,OAAAH,MAAAQ,KAAAP,UAAA,SAAAtB,EAAAF,EAAAP,GAAA,IAAAG,EAAAI,EAAA3B,SAAAoB,EAAAG,QAAA,QAAAjU,IAAAiU,EAAA,IAAAH,EAAAO,SAAA,eAAAP,EAAAG,OAAA,IAAAI,EAAA3B,SAAA,SAAAoB,EAAAG,OAAA,SAAAH,EAAAI,SAAAlU,EAAAuU,EAAAF,EAAAP,GAAA,UAAAA,EAAAG,QAAA,OAAAO,EAAAV,EAAAG,OAAA,QAAAH,EAAAI,IAAA,IAAAqC,UAAA,yDAAA/B,EAAA,IAAAK,EAAAC,EAAAb,EAAAI,EAAA3B,SAAAoB,EAAAI,KAAA,aAAAW,EAAA1D,KAAA,OAAA2C,EAAAG,OAAA,QAAAH,EAAAI,IAAAW,EAAAX,IAAAJ,EAAAO,SAAA,KAAAG,EAAA,IAAAgC,EAAA3B,EAAAX,IAAA,OAAAsC,IAAAzB,MAAAjB,EAAAO,EAAAoC,YAAAD,EAAAxX,MAAA8U,EAAArS,KAAA4S,EAAAqC,QAAA,WAAA5C,EAAAG,SAAAH,EAAAG,OAAA,OAAAH,EAAAI,SAAAlU,GAAA8T,EAAAO,SAAA,KAAAG,GAAAgC,GAAA1C,EAAAG,OAAA,QAAAH,EAAAI,IAAA,IAAAqC,UAAA,oCAAAzC,EAAAO,SAAA,KAAAG,GAAA,SAAAmC,EAAAC,GAAA,IAAAC,GAAAC,OAAAF,EAAA,SAAAA,IAAAC,EAAAE,SAAAH,EAAA,SAAAA,IAAAC,EAAAG,WAAAJ,EAAA,GAAAC,EAAAI,SAAAL,EAAA,IAAA/d,KAAAqe,WAAA/b,KAAA0b,GAAA,SAAAM,EAAAN,GAAA,IAAAhC,EAAAgC,EAAAO,eAAAvC,EAAA1D,KAAA,gBAAA0D,EAAAX,IAAA2C,EAAAO,WAAAvC,EAAA,SAAAd,EAAAN,GAAA5a,KAAAqe,aAAAJ,OAAA,SAAArD,EAAAgC,QAAAkB,EAAA9d,WAAAwe,OAAA,YAAAxT,EAAAyT,GAAA,GAAAA,EAAA,KAAAC,EAAAD,EAAA7E,GAAA,GAAA8E,EAAA,OAAAA,EAAA3e,KAAA0e,GAAA,sBAAAA,EAAA7V,KAAA,OAAA6V,EAAA,IAAAE,MAAAF,EAAA1c,QAAA,KAAAH,GAAA,EAAAgH,EAAA,SAAAA,IAAA,OAAAhH,EAAA6c,EAAA1c,QAAA,GAAA0X,EAAA1Z,KAAA0e,EAAA7c,GAAA,OAAAgH,EAAAzC,MAAAsY,EAAA7c,GAAAgH,EAAAsT,MAAA,EAAAtT,EAAA,OAAAA,EAAAzC,WAAAgB,EAAAyB,EAAAsT,MAAA,EAAAtT,GAAA,OAAAA,UAAA,OAAAA,KAAA2S,GAAA,SAAAA,IAAA,OAAApV,WAAAgB,EAAA+U,MAAA,UAAAE,EAAAzb,UAAA0b,EAAAnC,EAAAwC,EAAA,cAAAL,GAAAnC,EAAAmC,EAAA,cAAAD,KAAAwC,YAAA1E,EAAAmC,EAAArC,EAAA,qBAAAT,EAAAsF,oBAAA,SAAAC,GAAA,IAAAC,EAAA,mBAAAD,KAAA/K,YAAA,QAAAgL,QAAA3C,GAAA,uBAAA2C,EAAAH,aAAAG,EAAArN,QAAA6H,EAAAyF,KAAA,SAAAF,GAAA,OAAA3e,OAAA8e,eAAA9e,OAAA8e,eAAAH,EAAAzC,IAAAyC,EAAAI,UAAA7C,EAAAnC,EAAA4E,EAAA9E,EAAA,sBAAA8E,EAAAne,UAAAR,OAAA6a,OAAA0B,GAAAoC,GAAAvF,EAAA4F,MAAA,SAAA9D,GAAA,OAAAiC,QAAAjC,IAAAsB,EAAAE,EAAAlc,WAAAuZ,EAAA2C,EAAAlc,UAAAmZ,EAAA,kBAAA9Z,OAAAuZ,EAAAsD,gBAAAtD,EAAA6F,MAAA,SAAA3E,EAAAC,EAAAC,EAAAC,EAAAkC,QAAA,IAAAA,MAAAuC,SAAA,IAAAC,EAAA,IAAAzC,EAAArC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAkC,GAAA,OAAAvD,EAAAsF,oBAAAnE,GAAA4E,IAAA1W,OAAA2U,KAAA,SAAAH,GAAA,OAAAA,EAAAlB,KAAAkB,EAAAjX,MAAAmZ,EAAA1W,UAAA+T,EAAAD,GAAAxC,EAAAwC,EAAA1C,EAAA,aAAAE,EAAAwC,EAAA9C,EAAA,kBAAA5Z,OAAAka,EAAAwC,EAAA,mDAAAnD,EAAAgG,KAAA,SAAAC,GAAA,IAAAD,KAAA,QAAA5K,KAAA6K,EAAAD,EAAAjd,KAAAqS,GAAA,OAAA4K,EAAAE,UAAA,SAAA7W,IAAA,KAAA2W,EAAAxd,QAAA,KAAA4S,EAAA4K,EAAAG,MAAA,GAAA/K,KAAA6K,EAAA,OAAA5W,EAAAzC,MAAAwO,EAAA/L,EAAAsT,MAAA,EAAAtT,EAAA,OAAAA,EAAAsT,MAAA,EAAAtT,IAAA2Q,EAAAvO,SAAAkQ,EAAAva,WAAAoT,YAAAmH,EAAAsD,MAAA,SAAAmB,GAAA,GAAA3f,KAAA4f,KAAA,EAAA5f,KAAA4I,KAAA,EAAA5I,KAAA4b,KAAA5b,KAAA6b,WAAA1U,EAAAnH,KAAAkc,MAAA,EAAAlc,KAAAwb,SAAA,KAAAxb,KAAAob,OAAA,OAAApb,KAAAqb,SAAAlU,EAAAnH,KAAAqe,WAAAzB,QAAA0B,IAAAqB,EAAA,QAAAjO,KAAA1R,KAAA,MAAA0R,EAAAmO,OAAA,IAAApG,EAAA1Z,KAAAC,KAAA0R,KAAAiN,OAAAjN,EAAA/J,MAAA,MAAA3H,KAAA0R,QAAAvK,IAAA2Y,KAAA,WAAA9f,KAAAkc,MAAA,MAAA6D,EAAA/f,KAAAqe,WAAA,GAAAE,WAAA,aAAAwB,EAAAzH,KAAA,MAAAyH,EAAA1E,IAAA,OAAArb,KAAAggB,MAAAlE,kBAAA,SAAAmE,GAAA,GAAAjgB,KAAAkc,KAAA,MAAA+D,EAAA,IAAAhF,EAAAjb,KAAA,SAAAkgB,EAAAC,EAAAC,GAAA,OAAApE,EAAA1D,KAAA,QAAA0D,EAAAX,IAAA4E,EAAAhF,EAAArS,KAAAuX,EAAAC,IAAAnF,EAAAG,OAAA,OAAAH,EAAAI,SAAAlU,KAAAiZ,EAAA,QAAAxe,EAAA5B,KAAAqe,WAAAtc,OAAA,EAAAH,GAAA,IAAAA,EAAA,KAAAoc,EAAAhe,KAAAqe,WAAAzc,GAAAoa,EAAAgC,EAAAO,WAAA,YAAAP,EAAAC,OAAA,OAAAiC,EAAA,UAAAlC,EAAAC,QAAAje,KAAA4f,KAAA,KAAAS,EAAA5G,EAAA1Z,KAAAie,EAAA,YAAAsC,EAAA7G,EAAA1Z,KAAAie,EAAA,iBAAAqC,GAAAC,EAAA,IAAAtgB,KAAA4f,KAAA5B,EAAAE,SAAA,OAAAgC,EAAAlC,EAAAE,UAAA,MAAAle,KAAA4f,KAAA5B,EAAAG,WAAA,OAAA+B,EAAAlC,EAAAG,iBAAA,GAAAkC,GAAA,GAAArgB,KAAA4f,KAAA5B,EAAAE,SAAA,OAAAgC,EAAAlC,EAAAE,UAAA,YAAAoC,EAAA,UAAAhF,MAAA,6CAAAtb,KAAA4f,KAAA5B,EAAAG,WAAA,OAAA+B,EAAAlC,EAAAG,gBAAApC,OAAA,SAAAzD,EAAA+C,GAAA,QAAAzZ,EAAA5B,KAAAqe,WAAAtc,OAAA,EAAAH,GAAA,IAAAA,EAAA,KAAAoc,EAAAhe,KAAAqe,WAAAzc,GAAA,GAAAoc,EAAAC,QAAAje,KAAA4f,MAAAnG,EAAA1Z,KAAAie,EAAA,eAAAhe,KAAA4f,KAAA5B,EAAAG,WAAA,KAAAoC,EAAAvC,EAAA,OAAAuC,IAAA,UAAAjI,GAAA,aAAAA,IAAAiI,EAAAtC,QAAA5C,MAAAkF,EAAApC,aAAAoC,EAAA,UAAAvE,EAAAuE,IAAAhC,cAAA,OAAAvC,EAAA1D,OAAA0D,EAAAX,MAAAkF,GAAAvgB,KAAAob,OAAA,OAAApb,KAAA4I,KAAA2X,EAAApC,WAAAxC,GAAA3b,KAAAwgB,SAAAxE,IAAAwE,SAAA,SAAAxE,EAAAoC,GAAA,aAAApC,EAAA1D,KAAA,MAAA0D,EAAAX,IAAA,gBAAAW,EAAA1D,MAAA,aAAA0D,EAAA1D,KAAAtY,KAAA4I,KAAAoT,EAAAX,IAAA,WAAAW,EAAA1D,MAAAtY,KAAAggB,KAAAhgB,KAAAqb,IAAAW,EAAAX,IAAArb,KAAAob,OAAA,SAAApb,KAAA4I,KAAA,kBAAAoT,EAAA1D,MAAA8F,IAAApe,KAAA4I,KAAAwV,GAAAzC,GAAA8E,OAAA,SAAAtC,GAAA,QAAAvc,EAAA5B,KAAAqe,WAAAtc,OAAA,EAAAH,GAAA,IAAAA,EAAA,KAAAoc,EAAAhe,KAAAqe,WAAAzc,GAAA,GAAAoc,EAAAG,eAAA,OAAAne,KAAAwgB,SAAAxC,EAAAO,WAAAP,EAAAI,UAAAE,EAAAN,GAAArC,IAAA+E,MAAA,SAAAzC,GAAA,QAAArc,EAAA5B,KAAAqe,WAAAtc,OAAA,EAAAH,GAAA,IAAAA,EAAA,KAAAoc,EAAAhe,KAAAqe,WAAAzc,GAAA,GAAAoc,EAAAC,WAAA,KAAAjC,EAAAgC,EAAAO,WAAA,aAAAvC,EAAA1D,KAAA,KAAAqI,EAAA3E,EAAAX,IAAAiD,EAAAN,GAAA,OAAA2C,GAAA,UAAArF,MAAA,0BAAAsF,cAAA,SAAAnC,EAAAb,EAAAC,GAAA,OAAA7d,KAAAwb,UAAA3B,SAAA7O,EAAAyT,GAAAb,aAAAC,WAAA,SAAA7d,KAAAob,SAAApb,KAAAqb,SAAAlU,GAAAwU,IAAApC,EAAA,IAAAsH,GAAAvH,KAAA0F,KAAA8B,IADe,SAAAA,KAAA,IAAAC,EAAA/e,EAAAqW,EAAAjE,EAAAxS,EAAA4U,EAAApD,EAAA,OAAAkG,KAAAkB,KAAA,SAAAwG,GAAA,cAAAA,EAAApB,KAAAoB,EAAApY,MAAA,OACJmY,EAAS/gB,KAAKihB,QAASjf,EAAI,EAAGqW,EAAI0I,EAAOhf,OAAM,YAAEC,EAAIqW,GAAC,CAAA2I,EAAApY,KAAA,SACpDwL,EAAQ2M,EAAO/e,GAAIJ,EAAI,EAAG4U,EAAIpC,EAAMrS,OAAM,YAAQH,EAAI4U,GAAC,CAAAwK,EAAApY,KAAA,cAC1DwK,EAAOgB,EAAMxS,IAAE,CAAAof,EAAApY,KAAA,QAAE,OAAFoY,EAAApY,KAAA,EAAQwK,EAAI,SADmCxR,EAACof,EAAApY,KAAA,kBADJ5G,EAACgf,EAAApY,KAAA,iCAAAoY,EAAAlB,SAAAe,GAAA7gB,MCkC/D,IAAIkhB,IAAQ,MAEZ,SAASC,GAAUJ,EAAQK,GAChCphB,KAAKihB,QAAUF,EACf/gB,KAAKqhB,SAAWD,EAGlB,SAASE,KACP,OAAO,IAAIH,KAAYjP,SAASG,kBAAmB6O,IAOrDC,GAAUxgB,UAAY2gB,GAAU3gB,gIAAS4gB,EACvCxN,YAAaoN,GACbK,OCjDa,SAASA,GACA,mBAAXA,IAAuBA,EAAS/O,EAAS+O,IAEpD,IAAK,IAAIT,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ0f,EAAY,IAAI5b,MAAMwS,GAAIrW,EAAI,EAAGA,EAAIqW,IAAKrW,EAC3F,IAAK,IAAiFoR,EAAMsO,EAAnFtN,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAQ4f,EAAWF,EAAUzf,GAAK,IAAI6D,MAAM2Q,GAAmB5U,EAAI,EAAGA,EAAI4U,IAAK5U,GAC9GwR,EAAOgB,EAAMxS,MAAQ8f,EAAUF,EAAOzhB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,MAClE,aAAchB,IAAMsO,EAAQ5N,SAAWV,EAAKU,UAChD6N,EAAS/f,GAAK8f,GAKpB,OAAO,IAAIP,GAAUM,EAAWzhB,KAAKqhB,WDsCrCO,UtB3Ca,SAASJ,GACYA,EAAZ,mBAAXA,EAPb,SAAkBA,GAChB,OAAO,WACL,OAAO7O,EAAM6O,EAAOrS,MAAMnP,KAAM6hB,aAKSC,CAASN,GACtCzO,EAAYyO,GAE1B,IAAK,IAAIT,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ0f,KAAgBL,KAAcpf,EAAI,EAAGA,EAAIqW,IAAKrW,EAC/F,IAAK,IAAyCoR,EAArCgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAcH,EAAI,EAAGA,EAAI4U,IAAK5U,GAC9DwR,EAAOgB,EAAMxS,MACf6f,EAAUnf,KAAKkf,EAAOzhB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,IACnDgN,EAAQ9e,KAAK8Q,IAKnB,OAAO,IAAI+N,GAAUM,EAAWL,IsB+BhCW,YpBxCa,SAASC,GACtB,OAAOhiB,KAAKwhB,OAAgB,MAATQ,EAAgB3O,EAXrC,SAAmB2O,GACjB,OAAO,WACL,OAAOtS,EAAK3P,KAAKC,KAAKuT,SAAUyO,IAU5BC,CAA2B,mBAAVD,EAAuBA,EAAQ7O,EAAa6O,MoBuCnEE,enBzCa,SAASF,GACtB,OAAOhiB,KAAK4hB,UAAmB,MAATI,EAAgBzO,GAPxC,SAAwByO,GACtB,OAAO,WACL,OAAOvf,GAAO1C,KAAKC,KAAKuT,SAAUyO,IAM9BG,CAAgC,mBAAVH,EAAuBA,EAAQ7O,EAAa6O,MmBwCxEvf,OErDa,SAASuf,GACD,mBAAVA,IAAsBA,EAAQ/O,EAAQ+O,IAEjD,IAAK,IAAIjB,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ0f,EAAY,IAAI5b,MAAMwS,GAAIrW,EAAI,EAAGA,EAAIqW,IAAKrW,EAC3F,IAAK,IAAuEoR,EAAnEgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAQ4f,EAAWF,EAAUzf,MAAeJ,EAAI,EAAGA,EAAI4U,IAAK5U,GAC3FwR,EAAOgB,EAAMxS,KAAOogB,EAAMjiB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,IAC1DuN,EAASrf,KAAK8Q,GAKpB,OAAO,IAAI+N,GAAUM,EAAWzhB,KAAKqhB,WF2CrC9M,KhBqBa,SAASpO,EAAOwO,GAC7B,IAAKkN,UAAU9f,OAAQ,OAAO8D,MAAMgN,KAAK7S,KAAM2T,IAE/C,IAAIyO,EAAOzN,EAAMD,GAAUP,GACvBiN,EAAUphB,KAAKqhB,SACfN,EAAS/gB,KAAKihB,QAEG,mBAAV9a,IAAsBA,EmBrFpB,SAAS7C,GACtB,OAAO,WACL,OAAOA,GnBmFgC+e,CAASlc,IAElD,IAAK,IAAIkS,EAAI0I,EAAOhf,OAAQ0R,EAAS,IAAI5N,MAAMwS,GAAIhE,EAAQ,IAAIxO,MAAMwS,GAAI/D,EAAO,IAAIzO,MAAMwS,GAAIrW,EAAI,EAAGA,EAAIqW,IAAKrW,EAAG,CAC/G,IAAI2N,EAASyR,EAAQpf,GACjBoS,EAAQ2M,EAAO/e,GACfwS,EAAcJ,EAAMrS,OACpBwS,EAAOW,GAAU/O,EAAMpG,KAAK4P,EAAQA,GAAUA,EAAOmE,SAAU9R,EAAGof,IAClE3M,EAAaF,EAAKxS,OAClBugB,EAAajO,EAAMrS,GAAK,IAAI6D,MAAM4O,GAClC8N,EAAc9O,EAAOzR,GAAK,IAAI6D,MAAM4O,GAGxC2N,EAAKzS,EAAQyE,EAAOkO,EAAYC,EAFhBjO,EAAKtS,GAAK,IAAI6D,MAAM2O,GAEoBD,EAAMI,GAK9D,IAAK,IAAoBnF,EAAU5G,EAA1B4Z,EAAK,EAAGC,EAAK,EAAmBD,EAAK/N,IAAc+N,EAC1D,GAAIhT,EAAW8S,EAAWE,GAAK,CAE7B,IADIA,GAAMC,IAAIA,EAAKD,EAAK,KACf5Z,EAAO2Z,EAAYE,OAAUA,EAAKhO,IAC3CjF,EAASoE,MAAQhL,GAAQ,MAQ/B,OAHA6K,EAAS,IAAI0N,GAAU1N,EAAQ2N,IACxBsB,OAASrO,EAChBZ,EAAOkP,MAAQrO,EACRb,GgBxDPY,MjBvDa,WACb,OAAO,IAAI8M,GAAUnhB,KAAK0iB,QAAU1iB,KAAKihB,QAAQlb,IAAIyN,IAASxT,KAAKqhB,WiBuDnE/M,KIxDa,WACb,OAAO,IAAI6M,GAAUnhB,KAAK2iB,OAAS3iB,KAAKihB,QAAQlb,IAAIyN,IAASxT,KAAKqhB,WJwDlExK,KK5Da,SAAS+L,EAASC,EAAUC,GACzC,IAAIzO,EAAQrU,KAAKqU,QAASZ,EAASzT,KAAMsU,EAAOtU,KAAKsU,OAYrD,MAXuB,mBAAZsO,GACTvO,EAAQuO,EAAQvO,MACLA,EAAQA,EAAMiN,aAEzBjN,EAAQA,EAAM0O,OAAOH,EAAU,IAEjB,MAAZC,IACFpP,EAASoP,EAASpP,MACNA,EAASA,EAAO6N,aAEhB,MAAVwB,EAAgBxO,EAAKqC,SAAemM,EAAOxO,GACxCD,GAASZ,EAASY,EAAM2O,MAAMvP,GAAQwP,QAAUxP,GLgDvDuP,MM3Da,SAAS/H,GAGtB,IAFA,IAAIqG,EAAYrG,EAAQqG,UAAYrG,EAAQqG,YAAcrG,EAEjDiI,EAAUljB,KAAKihB,QAASkC,EAAU7B,EAAUL,QAASmC,EAAKF,EAAQnhB,OAAQshB,EAAKF,EAAQphB,OAAQsW,EAAIjV,KAAKgC,IAAIge,EAAIC,GAAKC,EAAS,IAAIzd,MAAMud,GAAKphB,EAAI,EAAGA,EAAIqW,IAAKrW,EACpK,IAAK,IAAmGoR,EAA/FmQ,EAASL,EAAQlhB,GAAIwhB,EAASL,EAAQnhB,GAAIwU,EAAI+M,EAAOxhB,OAAQihB,EAAQM,EAAOthB,GAAK,IAAI6D,MAAM2Q,GAAU5U,EAAI,EAAGA,EAAI4U,IAAK5U,GACxHwR,EAAOmQ,EAAO3hB,IAAM4hB,EAAO5hB,MAC7BohB,EAAMphB,GAAKwR,GAKjB,KAAOpR,EAAIohB,IAAMphB,EACfshB,EAAOthB,GAAKkhB,EAAQlhB,GAGtB,OAAO,IAAImf,GAAUmC,EAAQtjB,KAAKqhB,WN6ClCC,UAhBF,WACE,OAAOthB,MAgBPijB,MO/Da,WAEb,IAAK,IAAIlC,EAAS/gB,KAAKihB,QAASjf,GAAK,EAAGqW,EAAI0I,EAAOhf,SAAUC,EAAIqW,GAC/D,IAAK,IAA8DjF,EAA1DgB,EAAQ2M,EAAO/e,GAAIJ,EAAIwS,EAAMrS,OAAS,EAAG6G,EAAOwL,EAAMxS,KAAYA,GAAK,IAC1EwR,EAAOgB,EAAMxS,MACXgH,GAA6C,EAArCwK,EAAKqQ,wBAAwB7a,IAAWA,EAAK0O,WAAWpD,aAAad,EAAMxK,GACvFA,EAAOwK,GAKb,OAAOpT,MPqDPwD,Kf9Da,SAASkgB,GAGtB,SAASC,EAAYlgB,EAAGC,GACtB,OAAOD,GAAKC,EAAIggB,EAAQjgB,EAAEqQ,SAAUpQ,EAAEoQ,WAAarQ,GAAKC,EAHrDggB,IAASA,EAAUtO,IAMxB,IAAK,IAAI2L,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ6hB,EAAa,IAAI/d,MAAMwS,GAAIrW,EAAI,EAAGA,EAAIqW,IAAKrW,EAAG,CAC/F,IAAK,IAAmFoR,EAA/EgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAQ8hB,EAAYD,EAAW5hB,GAAK,IAAI6D,MAAM2Q,GAAU5U,EAAI,EAAGA,EAAI4U,IAAK5U,GACxGwR,EAAOgB,EAAMxS,MACfiiB,EAAUjiB,GAAKwR,GAGnByQ,EAAUrgB,KAAKmgB,GAGjB,OAAO,IAAIxC,GAAUyC,EAAY5jB,KAAKqhB,UAAU4B,Se+ChDljB,KQjEa,WACb,IAAI+jB,EAAWjC,UAAU,GAGzB,OAFAA,UAAU,GAAK7hB,KACf8jB,EAAS3U,MAAM,KAAM0S,WACd7hB,MR8DP+jB,MSlEa,WACb,OAAOle,MAAMgN,KAAK7S,OTkElBoT,KUnEa,WAEb,IAAK,IAAI2N,EAAS/gB,KAAKihB,QAASjf,EAAI,EAAGqW,EAAI0I,EAAOhf,OAAQC,EAAIqW,IAAKrW,EACjE,IAAK,IAAIoS,EAAQ2M,EAAO/e,GAAIJ,EAAI,EAAG4U,EAAIpC,EAAMrS,OAAQH,EAAI4U,IAAK5U,EAAG,CAC/D,IAAIwR,EAAOgB,EAAMxS,GACjB,GAAIwR,EAAM,OAAOA,EAIrB,OAAO,MV2DPzI,KWpEa,WACb,IACuBqZ,EADnBrZ,EAAO,EAAEsZ,EAAAC,GACMlkB,MAAI,IAAvB,IAAAikB,EAAAlV,MAAAiV,EAAAC,EAAAzN,KAAA0F,MAAe8H,EAAA7d,QAAYwE,EAAM,MAAA4P,GAAA0J,EAAAE,EAAA5J,GAAA,QAAA0J,EAAAvd,IACjC,OAAOiE,GXkEPmI,MYrEa,WACb,OAAQ9S,KAAKoT,QZqEbgR,KatEa,SAASN,GAEtB,IAAK,IAAI/C,EAAS/gB,KAAKihB,QAASjf,EAAI,EAAGqW,EAAI0I,EAAOhf,OAAQC,EAAIqW,IAAKrW,EACjE,IAAK,IAAgDoR,EAA5CgB,EAAQ2M,EAAO/e,GAAIJ,EAAI,EAAG4U,EAAIpC,EAAMrS,OAAcH,EAAI4U,IAAK5U,GAC9DwR,EAAOgB,EAAMxS,KAAIkiB,EAAS/jB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,GAI/D,OAAOpU,Mb+DPqkB,Kd7Ba,SAAS3S,EAAMvL,GAC5B,IAAI4L,EAAWN,EAAUC,GAEzB,GAAImQ,UAAU9f,OAAS,EAAG,CACxB,IAAIqR,EAAOpT,KAAKoT,OAChB,OAAOrB,EAASF,MACVuB,EAAKkR,eAAevS,EAASH,MAAOG,EAASF,OAC7CuB,EAAKgD,aAAarE,GAG1B,OAAO/R,KAAKokB,MAAe,MAATje,EACX4L,EAASF,MA7ClB,SAAsBE,GACpB,OAAO,WACL/R,KAAKukB,kBAAkBxS,EAASH,MAAOG,EAASF,SARpD,SAAoBH,GAClB,OAAO,WACL1R,KAAKwkB,gBAAgB9S,KAiDgD,mBAAVvL,EACtD4L,EAASF,MApBlB,SAAwBE,EAAU5L,GAChC,OAAO,WACL,IAAIse,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WACjB,MAAL4C,EAAWzkB,KAAKukB,kBAAkBxS,EAASH,MAAOG,EAASF,OAC1D7R,KAAK0kB,eAAe3S,EAASH,MAAOG,EAASF,MAAO4S,KAZ7D,SAAsB/S,EAAMvL,GAC1B,OAAO,WACL,IAAIse,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WACjB,MAAL4C,EAAWzkB,KAAKwkB,gBAAgB9S,GAC/B1R,KAAK4W,aAAalF,EAAM+S,KAyBxB1S,EAASF,MAnClB,SAAwBE,EAAU5L,GAChC,OAAO,WACLnG,KAAK0kB,eAAe3S,EAASH,MAAOG,EAASF,MAAO1L,KARxD,SAAsBuL,EAAMvL,GAC1B,OAAO,WACLnG,KAAK4W,aAAalF,EAAMvL,MAuC+B4L,EAAU5L,KciBnEsP,MZlDa,SAAS/D,EAAMvL,EAAOwe,GACnC,OAAO9C,UAAU9f,OAAS,EACpB/B,KAAKokB,MAAe,MAATje,EAtBnB,SAAqBuL,GACnB,OAAO,WACL1R,KAAKyV,MAAMmP,eAAelT,KAqBe,mBAAVvL,EAXnC,SAAuBuL,EAAMvL,EAAOwe,GAClC,OAAO,WACL,IAAIF,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WACjB,MAAL4C,EAAWzkB,KAAKyV,MAAMmP,eAAelT,GACpC1R,KAAKyV,MAAMoP,YAAYnT,EAAM+S,EAAGE,KAVzC,SAAuBjT,EAAMvL,EAAOwe,GAClC,OAAO,WACL3kB,KAAKyV,MAAMoP,YAAYnT,EAAMvL,EAAOwe,MAiBXjT,EAAMvL,EAAmB,MAAZwe,EAAmB,GAAKA,IAC1DnP,GAAWxV,KAAKoT,OAAQ1B,IY6C9BoT,ScrDa,SAASpT,EAAMvL,GAC5B,OAAO0b,UAAU9f,OAAS,EACpB/B,KAAKokB,MAAe,MAATje,EAtBnB,SAAwBuL,GACtB,OAAO,kBACE1R,KAAK0R,KAqB8B,mBAAVvL,EAXpC,SAA0BuL,EAAMvL,GAC9B,OAAO,WACL,IAAIse,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WACjB,MAAL4C,SAAkBzkB,KAAK0R,GACtB1R,KAAK0R,GAAQ+S,IAVtB,SAA0B/S,EAAMvL,GAC9B,OAAO,WACLnG,KAAK0R,GAAQvL,KAiBauL,EAAMvL,IAC5BnG,KAAKoT,OAAO1B,IdgDlBqT,QXba,SAASrT,EAAMvL,GAC5B,IAAImQ,EAAQV,GAAWlE,EAAO,IAE9B,GAAImQ,UAAU9f,OAAS,EAAG,CAExB,IADA,IAAIwU,EAAOP,GAAUhW,KAAKoT,QAASxR,GAAK,EAAG4U,EAAIF,EAAMvU,SAC5CH,EAAI4U,GAAG,IAAKD,EAAKQ,SAAST,EAAM1U,IAAK,OAAO,EACrD,OAAO,EAGT,OAAO5B,KAAKokB,MAAuB,mBAAVje,EAf3B,SAAyBmQ,EAAOnQ,GAC9B,OAAO,YACJA,EAAMgJ,MAAMnP,KAAM6hB,WAAaxL,GAAaK,IAAe1W,KAAMsW,KAc5CnQ,EA5B1B,SAAqBmQ,GACnB,OAAO,WACLD,GAAWrW,KAAMsW,KAIrB,SAAsBA,GACpB,OAAO,WACLI,GAAc1W,KAAMsW,MAsBFA,EAAOnQ,KWE3B6e,KV1Da,SAAS7e,GACtB,OAAO0b,UAAU9f,OACX/B,KAAKokB,KAAc,MAATje,EACN6Q,IAA+B,mBAAV7Q,EAVjC,SAAsBA,GACpB,OAAO,WACL,IAAIse,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WAC1B7hB,KAAKiX,YAAmB,MAALwN,EAAY,GAAKA,IATxC,SAAsBte,GACpB,OAAO,WACLnG,KAAKiX,YAAc9Q,KAgBGA,IAClBnG,KAAKoT,OAAO6D,aUqDlBgO,KT3Da,SAAS9e,GACtB,OAAO0b,UAAU9f,OACX/B,KAAKokB,KAAc,MAATje,EACN+Q,IAA+B,mBAAV/Q,EAVjC,SAAsBA,GACpB,OAAO,WACL,IAAIse,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WAC1B7hB,KAAKmX,UAAiB,MAALsN,EAAY,GAAKA,IATtC,SAAsBte,GACpB,OAAO,WACLnG,KAAKmX,UAAYhR,KAgBKA,IAClBnG,KAAKoT,OAAO+D,WSsDlBC,MRzEa,WACb,OAAOpX,KAAKokB,KAAKhN,KQyEjBG,MP1Ea,WACb,OAAOvX,KAAKokB,KAAK7M,KO0EjBwL,Oe7Ea,SAASrR,GACtB,IAAIsJ,EAAyB,mBAATtJ,EAAsBA,EAAOI,EAAQJ,GACzD,OAAO1R,KAAKwhB,OAAO,WACjB,OAAOxhB,KAAKgU,YAAYgH,EAAO7L,MAAMnP,KAAM6hB,ef2E7CqD,ONzEa,SAASxT,EAAMyT,GAC5B,IAAInK,EAAyB,mBAATtJ,EAAsBA,EAAOI,EAAQJ,GACrD8P,EAAmB,MAAV2D,EAAiBzN,GAAiC,mBAAXyN,EAAwBA,EAAS1S,EAAS0S,GAC9F,OAAOnlB,KAAKwhB,OAAO,WACjB,OAAOxhB,KAAKkU,aAAa8G,EAAO7L,MAAMnP,KAAM6hB,WAAYL,EAAOrS,MAAMnP,KAAM6hB,YAAc,SMsE3FlL,OL5Ea,WACb,OAAO3W,KAAKokB,KAAKzN,KK4EjBkB,MJxEa,SAASuN,GACtB,OAAOplB,KAAKwhB,OAAO4D,EAAOrN,GAAsBH,KIwEhDjE,MgBnFa,SAASxN,GACtB,OAAO0b,UAAU9f,OACX/B,KAAK8kB,SAAS,WAAY3e,GAC1BnG,KAAKoT,OAAOU,UhBiFlBoE,GHpCa,SAASD,EAAU9R,EAAOsS,GACvC,IAA+C7W,EAAyByjB,EAApEC,EA3CN,SAAwBA,GACtB,OAAOA,EAAUxP,OAAOC,MAAM,SAAShQ,IAAI,SAASsf,GAClD,IAAI3T,EAAO,GAAI9P,EAAIyjB,EAAEthB,QAAQ,KAE7B,OADInC,GAAK,IAAG8P,EAAO2T,EAAE1d,MAAM/F,EAAI,GAAIyjB,EAAIA,EAAE1d,MAAM,EAAG/F,KAC1C0W,KAAM+M,EAAG3T,KAAMA,KAuCT6T,CAAetN,EAAW,IAAQzB,EAAI8O,EAAUvjB,OAEhE,KAAI8f,UAAU9f,OAAS,GAAvB,CAaA,IADAmW,EAAK/R,EAAQuS,GAAQV,GAChBpW,EAAI,EAAGA,EAAI4U,IAAK5U,EAAG5B,KAAKokB,KAAKlM,EAAGoN,EAAU1jB,GAAIuE,EAAOsS,IAC1D,OAAOzY,KAbL,IAAIkY,EAAKlY,KAAKoT,OAAO+E,KACrB,GAAID,EAAI,IAAK,IAA0BE,EAAtBpW,EAAI,EAAGqW,EAAIH,EAAGnW,OAAWC,EAAIqW,IAAKrW,EACjD,IAAKJ,EAAI,EAAGwW,EAAIF,EAAGlW,GAAIJ,EAAI4U,IAAK5U,EAC9B,IAAKyjB,EAAIC,EAAU1jB,IAAI0W,OAASF,EAAEE,MAAQ+M,EAAE3T,OAAS0G,EAAE1G,KACrD,OAAO0G,EAAEjS,OG6BjBqf,SFxDa,SAASlN,EAAM1O,GAC5B,OAAO5J,KAAKokB,MAAwB,mBAAXxa,EAP3B,SAA0B0O,EAAM1O,GAC9B,OAAO,WACL,OAAOkP,GAAc9Y,KAAMsY,EAAM1O,EAAOuF,MAAMnP,KAAM6hB,cARxD,SAA0BvJ,EAAM1O,GAC9B,OAAO,WACL,OAAOkP,GAAc9Y,KAAMsY,EAAM1O,MAaX0O,EAAM1O,MEsD7B+P,OAAOE,SAAW4L,IAGNnE,UiBzFXoE,GAAS,EAMb,SAASC,KACP3lB,KAAK4lB,EAAI,OAASF,IAAQG,SAAS,IAGrCF,GAAMhlB,UARS,WACb,OAAO,IAAIglB,IAOWhlB,WACtBoT,YAAa4R,GACb1Q,IAAK,SAAS7B,GAEZ,IADA,IAAI1L,EAAK1H,KAAK4lB,IACLle,KAAM0L,IAAO,KAAMA,EAAOA,EAAKkE,YAAa,OACrD,OAAOlE,EAAK1L,IAEdkE,IAAK,SAASwH,EAAMjN,GAClB,OAAOiN,EAAKpT,KAAK4lB,GAAKzf,GAExBwQ,OAAQ,SAASvD,GACf,OAAOpT,KAAK4lB,KAAKxS,UAAeA,EAAKpT,KAAK4lB,IAE5CC,SAAU,WACR,OAAO7lB,KAAK4lB,ICxBD,8BCGXE,GAAUN,aAAS,QAAS,MAAO,SAAU,aAC7CO,MAEOC,GAAU,EACVC,GAAY,EACZC,GAAW,EACXC,GAAU,EACVC,GAAU,EACVC,GAAS,EACTC,GAAQ,EAEJC,GAAA,SAASnT,EAAM1B,EAAMhK,EAAI6E,EAAO6H,EAAOoS,GACpD,IAAIC,EAAYrT,EAAKsT,aACrB,GAAKD,GACA,GAAI/e,KAAM+e,EAAW,YADVrT,EAAKsT,iBAmCvB,SAAgBtT,EAAM1L,EAAIiT,GACxB,IACIgM,EADAF,EAAYrT,EAAKsT,aAgBrB,SAASE,EAAMC,GACb,IAAIjlB,EAAGI,EAAGwU,EAAG4B,EAGb,GAAIuC,EAAKtS,QAAU4d,GAAW,OAAOnG,IAErC,IAAKle,KAAK6kB,EAER,IADArO,EAAIqO,EAAU7kB,IACR8P,OAASiJ,EAAKjJ,KAApB,CAKA,GAAI0G,EAAE/P,QAAU8d,GAAS,OAAOW,aAAQF,GAGpCxO,EAAE/P,QAAU+d,IACdhO,EAAE/P,MAAQie,GACVlO,EAAE2O,MAAMjH,OACR1H,EAAEF,GAAGnY,KAAK,YAAaqT,EAAMA,EAAKU,SAAUsE,EAAE7L,MAAO6L,EAAEhE,cAChDqS,EAAU7kB,KAITA,EAAI8F,IACZ0Q,EAAE/P,MAAQie,GACVlO,EAAE2O,MAAMjH,OACR1H,EAAEF,GAAGnY,KAAK,SAAUqT,EAAMA,EAAKU,SAAUsE,EAAE7L,MAAO6L,EAAEhE,cAC7CqS,EAAU7kB,IAoBrB,GAZAklB,aAAQ,WACFnM,EAAKtS,QAAU8d,KACjBxL,EAAKtS,MAAQ+d,GACbzL,EAAKoM,MAAMC,QAAQC,EAAMtM,EAAKuM,MAAOvM,EAAKwM,MAC1CF,EAAKJ,MAMTlM,EAAKtS,MAAQ6d,GACbvL,EAAKzC,GAAGnY,KAAK,QAASqT,EAAMA,EAAKU,SAAU6G,EAAKpO,MAAOoO,EAAKvG,OACxDuG,EAAKtS,QAAU6d,GAAnB,CAKA,IAJAvL,EAAKtS,MAAQ8d,GAGbQ,EAAQ,IAAI9gB,MAAM2Q,EAAImE,EAAKgM,MAAM5kB,QAC5BH,EAAI,EAAGI,GAAK,EAAGJ,EAAI4U,IAAK5U,GACvBwW,EAAIuC,EAAKgM,MAAM/kB,GAAGuE,MAAMpG,KAAKqT,EAAMA,EAAKU,SAAU6G,EAAKpO,MAAOoO,EAAKvG,UACrEuS,IAAQ3kB,GAAKoW,GAGjBuO,EAAM5kB,OAASC,EAAI,GAGrB,SAASilB,EAAKJ,GAKZ,IAJA,IAAIxB,EAAIwB,EAAUlM,EAAKyM,SAAWzM,EAAK0M,KAAKtnB,KAAK,KAAM8mB,EAAUlM,EAAKyM,WAAazM,EAAKoM,MAAMC,QAAQlH,GAAOnF,EAAKtS,MAAQge,GAAQ,GAC9HzkB,GAAK,EACL4U,EAAImQ,EAAM5kB,SAELH,EAAI4U,GACXmQ,EAAM/kB,GAAG7B,KAAKqT,EAAMiS,GAIlB1K,EAAKtS,QAAUge,KACjB1L,EAAKzC,GAAGnY,KAAK,MAAOqT,EAAMA,EAAKU,SAAU6G,EAAKpO,MAAOoO,EAAKvG,OAC1D0L,KAIJ,SAASA,IAIP,IAAK,IAAIle,KAHT+Y,EAAKtS,MAAQie,GACb3L,EAAKoM,MAAMjH,cACJ2G,EAAU/e,GACH+e,EAAW,cAClBrT,EAAKsT,aA7FdD,EAAU/e,GAAMiT,EAChBA,EAAKoM,MAAQA,aAEb,SAAkBF,GAChBlM,EAAKtS,MAAQ4d,GACbtL,EAAKoM,MAAMC,QAAQJ,EAAOjM,EAAKuM,MAAOvM,EAAKwM,MAGvCxM,EAAKuM,OAASL,GAASD,EAAMC,EAAUlM,EAAKuM,QAPrB,EAAGvM,EAAKwM,MAxCrCnM,CAAO5H,EAAM1L,GACXgK,KAAMA,EACNnF,MAAOA,EACP6H,MAAOA,EACP8D,GAAI4N,GACJa,MAAOZ,GACPoB,KAAMX,EAAOW,KACbD,MAAOV,EAAOU,MACdE,SAAUZ,EAAOY,SACjBC,KAAMb,EAAOa,KACbN,MAAO,KACP1e,MAAO2d,MAIJ,SAASsB,GAAKlU,EAAM1L,GACzB,IAAI6f,EAAWtS,GAAI7B,EAAM1L,GACzB,GAAI6f,EAASlf,MAAQ2d,GAAS,MAAM,IAAI1K,MAAM,+BAC9C,OAAOiM,EAGF,SAAS3b,GAAIwH,EAAM1L,GACxB,IAAI6f,EAAWtS,GAAI7B,EAAM1L,GACzB,GAAI6f,EAASlf,MAAQ8d,GAAS,MAAM,IAAI7K,MAAM,6BAC9C,OAAOiM,EAGF,SAAStS,GAAI7B,EAAM1L,GACxB,IAAI6f,EAAWnU,EAAKsT,aACpB,IAAKa,KAAcA,EAAWA,EAAS7f,IAAM,MAAM,IAAI4T,MAAM,wBAC7D,OAAOiM,EC9CM,ICFArN,GAAA,SAASnG,EAAayT,EAAS7mB,GAC5CoT,EAAYpT,UAAY6mB,EAAQ7mB,UAAYA,EAC5CA,EAAUoT,YAAcA,GAGnB,SAAS0T,GAAO9X,EAAQ+X,GAC7B,IAAI/mB,EAAYR,OAAO6a,OAAOrL,EAAOhP,WACrC,IAAK,IAAIgU,KAAO+S,EAAY/mB,EAAUgU,GAAO+S,EAAW/S,GACxD,OAAOhU,ECNF,SAASgnB,MAET,IAGHC,GAAM,sBACNC,GAAM,oDACNC,GAAM,qDACNC,GAAQ,qBACRC,GAAe,IAAIC,OAAM,UAAAC,OAAWN,GAAG,KAAAM,OAAIN,GAAG,KAAAM,OAAIN,GAAG,SACrDO,GAAe,IAAIF,OAAM,UAAAC,OAAWJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,SACrDM,GAAgB,IAAIH,OAAM,WAAAC,OAAYN,GAAG,KAAAM,OAAIN,GAAG,KAAAM,OAAIN,GAAG,KAAAM,OAAIL,GAAG,SAC9DQ,GAAgB,IAAIJ,OAAM,WAAAC,OAAYJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIL,GAAG,SAC9DS,GAAe,IAAIL,OAAM,UAAAC,OAAWL,GAAG,KAAAK,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,SACrDS,GAAgB,IAAIN,OAAM,WAAAC,OAAYL,GAAG,KAAAK,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIL,GAAG,SAE9DW,IACFC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAkBf,SAASC,KACP,OAAO7xB,KAAK8xB,MAAMC,YAWpB,SAASC,KACP,OAAOhyB,KAAK8xB,MAAMG,YAGL,SAASC,GAAMC,GAC5B,IAAI9Z,EAAGzL,EAEP,OADAulB,GAAUA,EAAS,IAAIrc,OAAOsc,eACtB/Z,EAAI0P,GAAMsK,KAAKF,KAAYvlB,EAAIyL,EAAE,GAAGtW,OAAQsW,EAAIia,SAASja,EAAE,GAAI,IAAW,IAANzL,EAAU2lB,GAAKla,GAC/E,IAANzL,EAAU,IAAI4lB,GAAKna,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANzL,EAAU6lB,GAAKpa,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANzL,EAAU6lB,GAAMpa,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAI2P,GAAaqK,KAAKF,IAAW,IAAIK,GAAIna,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAI8P,GAAakK,KAAKF,IAAW,IAAIK,GAAW,IAAPna,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI+P,GAAciK,KAAKF,IAAWM,GAAKpa,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIgQ,GAAcgK,KAAKF,IAAWM,GAAY,IAAPpa,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIiQ,GAAa+J,KAAKF,IAAWO,GAAKra,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIkQ,GAAc8J,KAAKF,IAAWO,GAAKra,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEmQ,GAAM1d,eAAeqnB,GAAUI,GAAK/J,GAAM2J,IAC/B,gBAAXA,EAA2B,IAAIK,GAAInd,IAAKA,IAAKA,IAAK,GAClD,KAGR,SAASkd,GAAK/b,GACZ,OAAO,IAAIgc,GAAIhc,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAASic,GAAK5tB,EAAG8tB,EAAGjvB,EAAGD,GAErB,OADIA,GAAK,IAAGoB,EAAI8tB,EAAIjvB,EAAI2R,KACjB,IAAImd,GAAI3tB,EAAG8tB,EAAGjvB,EAAGD,GAGnB,SAASmvB,GAAWxa,GAEzB,OADMA,aAAauP,KAAQvP,EAAI8Z,GAAM9Z,IAChCA,EAEE,IAAIoa,IADXpa,EAAIA,EAAE0Z,OACWjtB,EAAGuT,EAAEua,EAAGva,EAAE1U,EAAG0U,EAAEya,SAFjB,IAAIL,GAKd,SAASV,GAAIjtB,EAAG8tB,EAAGjvB,EAAGmvB,GAC3B,OAA4B,IAArBhR,UAAU9f,OAAe6wB,GAAW/tB,GAAK,IAAI2tB,GAAI3tB,EAAG8tB,EAAGjvB,EAAc,MAAXmvB,EAAkB,EAAIA,GAGlF,SAASL,GAAI3tB,EAAG8tB,EAAGjvB,EAAGmvB,GAC3B7yB,KAAK6E,GAAKA,EACV7E,KAAK2yB,GAAKA,EACV3yB,KAAK0D,GAAKA,EACV1D,KAAK6yB,SAAWA,EA+BlB,SAASC,KACP,UAAA5K,OAAW6K,GAAI/yB,KAAK6E,IAAEqjB,OAAG6K,GAAI/yB,KAAK2yB,IAAEzK,OAAG6K,GAAI/yB,KAAK0D,IAOlD,SAASsvB,KACP,IAAMvvB,EAAIwvB,GAAOjzB,KAAK6yB,SACtB,SAAA3K,OAAgB,IAANzkB,EAAU,OAAS,SAAOykB,OAAGgL,GAAOlzB,KAAK6E,GAAE,MAAAqjB,OAAKgL,GAAOlzB,KAAK2yB,GAAE,MAAAzK,OAAKgL,GAAOlzB,KAAK0D,IAAEwkB,OAAS,IAANzkB,EAAU,IAAG,KAAAykB,OAAQzkB,EAAC,MAGtH,SAASwvB,GAAOJ,GACd,OAAOlU,MAAMkU,GAAW,EAAIzvB,KAAKkF,IAAI,EAAGlF,KAAKgC,IAAI,EAAGytB,IAGtD,SAASK,GAAO/sB,GACd,OAAO/C,KAAKkF,IAAI,EAAGlF,KAAKgC,IAAI,IAAKhC,KAAK+vB,MAAMhtB,IAAU,IAGxD,SAAS4sB,GAAI5sB,GAEX,QADAA,EAAQ+sB,GAAO/sB,IACC,GAAK,IAAM,IAAMA,EAAM0f,SAAS,IAGlD,SAAS6M,GAAKptB,EAAGyJ,EAAGnC,EAAGnJ,GAIrB,OAHIA,GAAK,EAAG6B,EAAIyJ,EAAInC,EAAIyI,IACfzI,GAAK,GAAKA,GAAK,EAAGtH,EAAIyJ,EAAIsG,IAC1BtG,GAAK,IAAGzJ,EAAI+P,KACd,IAAI+d,GAAI9tB,EAAGyJ,EAAGnC,EAAGnJ,GAGnB,SAAS4vB,GAAWjb,GACzB,GAAIA,aAAagb,GAAK,OAAO,IAAIA,GAAIhb,EAAE9S,EAAG8S,EAAErJ,EAAGqJ,EAAExL,EAAGwL,EAAEya,SAEtD,GADMza,aAAauP,KAAQvP,EAAI8Z,GAAM9Z,KAChCA,EAAG,OAAO,IAAIgb,GACnB,GAAIhb,aAAagb,GAAK,OAAOhb,EAE7B,IAAIvT,GADJuT,EAAIA,EAAE0Z,OACIjtB,EAAI,IACV8tB,EAAIva,EAAEua,EAAI,IACVjvB,EAAI0U,EAAE1U,EAAI,IACV0B,EAAMhC,KAAKgC,IAAIP,EAAG8tB,EAAGjvB,GACrB4E,EAAMlF,KAAKkF,IAAIzD,EAAG8tB,EAAGjvB,GACrB4B,EAAI+P,IACJtG,EAAIzG,EAAMlD,EACVwH,GAAKtE,EAAMlD,GAAO,EAUtB,OATI2J,GACazJ,EAAXT,IAAMyD,GAAUqqB,EAAIjvB,GAAKqL,EAAc,GAAT4jB,EAAIjvB,GAC7BivB,IAAMrqB,GAAU5E,EAAImB,GAAKkK,EAAI,GAC5BlK,EAAI8tB,GAAK5jB,EAAI,EACvBA,GAAKnC,EAAI,GAAMtE,EAAMlD,EAAM,EAAIkD,EAAMlD,EACrCE,GAAK,IAELyJ,EAAInC,EAAI,GAAKA,EAAI,EAAI,EAAItH,EAEpB,IAAI8tB,GAAI9tB,EAAGyJ,EAAGnC,EAAGwL,EAAEya,SAGrB,SAASS,GAAIhuB,EAAGyJ,EAAGnC,EAAGimB,GAC3B,OAA4B,IAArBhR,UAAU9f,OAAesxB,GAAW/tB,GAAK,IAAI8tB,GAAI9tB,EAAGyJ,EAAGnC,EAAc,MAAXimB,EAAkB,EAAIA,GAGzF,SAASO,GAAI9tB,EAAGyJ,EAAGnC,EAAGimB,GACpB7yB,KAAKsF,GAAKA,EACVtF,KAAK+O,GAAKA,EACV/O,KAAK4M,GAAKA,EACV5M,KAAK6yB,SAAWA,EAuClB,SAASU,GAAOptB,GAEd,OADAA,GAASA,GAAS,GAAK,KACR,EAAIA,EAAQ,IAAMA,EAGnC,SAASqtB,GAAOrtB,GACd,OAAO/C,KAAKkF,IAAI,EAAGlF,KAAKgC,IAAI,EAAGe,GAAS,IAI1C,SAASstB,GAAQnuB,EAAG+d,EAAIqQ,GACtB,OAGY,KAHJpuB,EAAI,GAAK+d,GAAMqQ,EAAKrQ,GAAM/d,EAAI,GAChCA,EAAI,IAAMouB,EACVpuB,EAAI,IAAM+d,GAAMqQ,EAAKrQ,IAAO,IAAM/d,GAAK,GACvC+d,GAjORnJ,GAAOyN,GAAOuK,IACZyB,KAAI,SAACC,GACH,OAAOzzB,OAAO0zB,OAAO,IAAI7zB,KAAK+T,YAAa/T,KAAM4zB,IAEnDE,YAAW,WACT,OAAO9zB,KAAK8xB,MAAMgC,eAEpBf,IAAKlB,GACLE,UAAWF,GACXkC,WAUF,WACE,OAAO/zB,KAAK8xB,MAAMiC,cAVlBC,UAaF,WACE,OAAOX,GAAWrzB,MAAMg0B,aAbxB/B,UAAWD,GACXnM,SAAUmM,KAiEZ9X,GAAOsY,GAAKV,GAAKrK,GAAOE,IACtBsM,SAAQ,SAAC9xB,GAEP,OADAA,EAAS,MAALA,EAnPc,EADF,GAoPWiB,KAAK8wB,IAnPd,EADF,GAoP8B/xB,GACvC,IAAIqwB,GAAIxyB,KAAK6E,EAAI1C,EAAGnC,KAAK2yB,EAAIxwB,EAAGnC,KAAK0D,EAAIvB,EAAGnC,KAAK6yB,UAE1DsB,OAAM,SAAChyB,GAEL,OADAA,EAAS,MAALA,EAxPY,GAwPSiB,KAAK8wB,IAxPd,GAwP0B/xB,GACnC,IAAIqwB,GAAIxyB,KAAK6E,EAAI1C,EAAGnC,KAAK2yB,EAAIxwB,EAAGnC,KAAK0D,EAAIvB,EAAGnC,KAAK6yB,UAE1Df,IAAG,WACD,OAAO9xB,MAETo0B,MAAK,WACH,OAAO,IAAI5B,GAAIU,GAAOlzB,KAAK6E,GAAIquB,GAAOlzB,KAAK2yB,GAAIO,GAAOlzB,KAAK0D,GAAIuvB,GAAOjzB,KAAK6yB,WAE7EiB,YAAW,WACT,OAAS,IAAO9zB,KAAK6E,GAAK7E,KAAK6E,EAAI,QAC1B,IAAO7E,KAAK2yB,GAAK3yB,KAAK2yB,EAAI,QAC1B,IAAO3yB,KAAK0D,GAAK1D,KAAK0D,EAAI,OAC3B,GAAK1D,KAAK6yB,SAAW7yB,KAAK6yB,SAAW,GAE/CE,IAAKD,GACLf,UAAWe,GACXiB,WASF,WACE,UAAA7L,OAAW6K,GAAI/yB,KAAK6E,IAAEqjB,OAAG6K,GAAI/yB,KAAK2yB,IAAEzK,OAAG6K,GAAI/yB,KAAK0D,IAAEwkB,OAAG6K,GAA+C,KAA1CpU,MAAM3e,KAAK6yB,SAAW,EAAI7yB,KAAK6yB,YATzFZ,UAAWe,GACXnN,SAAUmN,MAyEZ9Y,GAAOkZ,GAAKE,GAAK7L,GAAOE,IACtBsM,SAAQ,SAAC9xB,GAEP,OADAA,EAAS,MAALA,EArVc,EADF,GAsVWiB,KAAK8wB,IArVd,EADF,GAsV8B/xB,GACvC,IAAIixB,GAAIpzB,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAElDsB,OAAM,SAAChyB,GAEL,OADAA,EAAS,MAALA,EA1VY,GA0VSiB,KAAK8wB,IA1Vd,GA0V0B/xB,GACnC,IAAIixB,GAAIpzB,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAElDf,IAAG,WACD,IAAIxsB,EAAItF,KAAKsF,EAAI,IAAqB,KAAdtF,KAAKsF,EAAI,GAC7ByJ,EAAI4P,MAAMrZ,IAAMqZ,MAAM3e,KAAK+O,GAAK,EAAI/O,KAAK+O,EACzCnC,EAAI5M,KAAK4M,EACT8mB,EAAK9mB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKmC,EACjCsU,EAAK,EAAIzW,EAAI8mB,EACjB,OAAO,IAAIlB,GACTiB,GAAQnuB,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAK+d,EAAIqQ,GAC1CD,GAAQnuB,EAAG+d,EAAIqQ,GACfD,GAAQnuB,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAK+d,EAAIqQ,GACzC1zB,KAAK6yB,UAGTuB,MAAK,WACH,OAAO,IAAIhB,GAAIG,GAAOvzB,KAAKsF,GAAIkuB,GAAOxzB,KAAK+O,GAAIykB,GAAOxzB,KAAK4M,GAAIqmB,GAAOjzB,KAAK6yB,WAE7EiB,YAAW,WACT,OAAQ,GAAK9zB,KAAK+O,GAAK/O,KAAK+O,GAAK,GAAK4P,MAAM3e,KAAK+O,KACzC,GAAK/O,KAAK4M,GAAK5M,KAAK4M,GAAK,GACzB,GAAK5M,KAAK6yB,SAAW7yB,KAAK6yB,SAAW,GAE/CmB,UAAS,WACP,IAAMvwB,EAAIwvB,GAAOjzB,KAAK6yB,SACtB,SAAA3K,OAAgB,IAANzkB,EAAU,OAAS,SAAOykB,OAAGqL,GAAOvzB,KAAKsF,GAAE,MAAA4iB,OAAsB,IAAjBsL,GAAOxzB,KAAK+O,GAAQ,OAAAmZ,OAAuB,IAAjBsL,GAAOxzB,KAAK4M,GAAQ,KAAAsb,OAAU,IAANzkB,EAAU,IAAG,KAAAykB,OAAQzkB,EAAC,UCxX/H,IAAM4wB,GAAUjxB,KAAKgB,GAAK,IACpBkwB,GAAU,IAAMlxB,KAAKgB,GCK9BmwB,GAAK,OACLC,GAAK,EACLC,GAAK,OACLC,GAAK,EAAI,GACTC,GAAK,EAAI,GACTC,GAAK,EAAID,GAAKA,GACdE,GAAKF,GAAKA,GAAKA,GAEnB,SAASG,GAAW1c,GAClB,GAAIA,aAAa2c,GAAK,OAAO,IAAIA,GAAI3c,EAAExL,EAAGwL,EAAE3U,EAAG2U,EAAE1U,EAAG0U,EAAEya,SACtD,GAAIza,aAAa4c,GAAK,OAAOC,GAAQ7c,GAC/BA,aAAaoa,KAAMpa,EAAIwa,GAAWxa,IACxC,IAGuE9U,EAAG4xB,EAHtErwB,EAAIswB,GAAS/c,EAAEvT,GACf8tB,EAAIwC,GAAS/c,EAAEua,GACfjvB,EAAIyxB,GAAS/c,EAAE1U,GACfH,EAAI6xB,IAAS,SAAYvwB,EAAI,SAAY8tB,EAAI,SAAYjvB,GAAK8wB,IAKlE,OAJI3vB,IAAM8tB,GAAKA,IAAMjvB,EAAGJ,EAAI4xB,EAAI3xB,GAC9BD,EAAI8xB,IAAS,SAAYvwB,EAAI,SAAY8tB,EAAI,SAAYjvB,GAAK6wB,IAC9DW,EAAIE,IAAS,SAAYvwB,EAAI,SAAY8tB,EAAI,SAAYjvB,GAAK+wB,KAEzD,IAAIM,GAAI,IAAMxxB,EAAI,GAAI,KAAOD,EAAIC,GAAI,KAAOA,EAAI2xB,GAAI9c,EAAEya,SAOhD,SAASwC,GAAIzoB,EAAGnJ,EAAGC,EAAGmvB,GACnC,OAA4B,IAArBhR,UAAU9f,OAAe+yB,GAAWloB,GAAK,IAAImoB,GAAInoB,EAAGnJ,EAAGC,EAAc,MAAXmvB,EAAkB,EAAIA,GAGlF,SAASkC,GAAInoB,EAAGnJ,EAAGC,EAAGmvB,GAC3B7yB,KAAK4M,GAAKA,EACV5M,KAAKyD,GAAKA,EACVzD,KAAK0D,GAAKA,EACV1D,KAAK6yB,SAAWA,EA0BlB,SAASuC,GAAQ/P,GACf,OAAOA,EAAIwP,GAAKzxB,KAAK8wB,IAAI7O,EAAG,EAAI,GAAKA,EAAIuP,GAAKF,GAGhD,SAASY,GAAQjQ,GACf,OAAOA,EAAIsP,GAAKtP,EAAIA,EAAIA,EAAIuP,IAAMvP,EAAIqP,IAGxC,SAASa,GAASjyB,GAChB,OAAO,KAAOA,GAAK,SAAY,MAAQA,EAAI,MAAQF,KAAK8wB,IAAI5wB,EAAG,EAAI,KAAO,MAG5E,SAAS6xB,GAAS7xB,GAChB,OAAQA,GAAK,MAAQ,OAAUA,EAAI,MAAQF,KAAK8wB,KAAK5wB,EAAI,MAAS,MAAO,KAG3E,SAASkyB,GAAWpd,GAClB,GAAIA,aAAa4c,GAAK,OAAO,IAAIA,GAAI5c,EAAE9S,EAAG8S,EAAEhS,EAAGgS,EAAExL,EAAGwL,EAAEya,SAEtD,GADMza,aAAa2c,KAAM3c,EAAI0c,GAAW1c,IAC5B,IAARA,EAAE3U,GAAmB,IAAR2U,EAAE1U,EAAS,OAAO,IAAIsxB,GAAI3f,IAAK,EAAI+C,EAAExL,GAAKwL,EAAExL,EAAI,IAAM,EAAIyI,IAAK+C,EAAExL,EAAGwL,EAAEya,SACvF,IAAIvtB,EAAIlC,KAAKC,MAAM+U,EAAE1U,EAAG0U,EAAE3U,GAAK6wB,GAC/B,OAAO,IAAIU,GAAI1vB,EAAI,EAAIA,EAAI,IAAMA,EAAGlC,KAAK2B,KAAKqT,EAAE3U,EAAI2U,EAAE3U,EAAI2U,EAAE1U,EAAI0U,EAAE1U,GAAI0U,EAAExL,EAAGwL,EAAEya,SAOxE,SAAS4C,GAAInwB,EAAGc,EAAGwG,EAAGimB,GAC3B,OAA4B,IAArBhR,UAAU9f,OAAeyzB,GAAWlwB,GAAK,IAAI0vB,GAAI1vB,EAAGc,EAAGwG,EAAc,MAAXimB,EAAkB,EAAIA,GAGlF,SAASmC,GAAI1vB,EAAGc,EAAGwG,EAAGimB,GAC3B7yB,KAAKsF,GAAKA,EACVtF,KAAKoG,GAAKA,EACVpG,KAAK4M,GAAKA,EACV5M,KAAK6yB,SAAWA,EAGlB,SAASoC,GAAQ7c,GACf,GAAIuG,MAAMvG,EAAE9S,GAAI,OAAO,IAAIyvB,GAAI3c,EAAExL,EAAG,EAAG,EAAGwL,EAAEya,SAC5C,IAAIvtB,EAAI8S,EAAE9S,EAAI+uB,GACd,OAAO,IAAIU,GAAI3c,EAAExL,EAAGxJ,KAAKmB,IAAIe,GAAK8S,EAAEhS,EAAGhD,KAAKkB,IAAIgB,GAAK8S,EAAEhS,EAAGgS,EAAEya,SAjE9D3Y,GAAO6a,GAAKM,GAAK5N,GAAOE,IACtBsM,SAAQ,SAAC9xB,GACP,OAAO,IAAI4yB,GAAI/0B,KAAK4M,EAzCd,IAyC4B,MAALzK,EAAY,EAAIA,GAAInC,KAAKyD,EAAGzD,KAAK0D,EAAG1D,KAAK6yB,UAExEsB,OAAM,SAAChyB,GACL,OAAO,IAAI4yB,GAAI/0B,KAAK4M,EA5Cd,IA4C4B,MAALzK,EAAY,EAAIA,GAAInC,KAAKyD,EAAGzD,KAAK0D,EAAG1D,KAAK6yB,UAExEf,IAAG,WACD,IAAIvuB,GAAKvD,KAAK4M,EAAI,IAAM,IACpBtJ,EAAIqb,MAAM3e,KAAKyD,GAAKF,EAAIA,EAAIvD,KAAKyD,EAAI,IACrCyxB,EAAIvW,MAAM3e,KAAK0D,GAAKH,EAAIA,EAAIvD,KAAK0D,EAAI,IAIzC,OAAO,IAAI8uB,GACT+C,GAAU,WAJZjyB,EAAIixB,GAAKe,GAAQhyB,IAIW,WAH5BC,EAAIixB,GAAKc,GAAQ/xB,IAG2B,UAF5C2xB,EAAIT,GAAKa,GAAQJ,KAGfK,IAAU,SAAYjyB,EAAI,UAAYC,EAAI,QAAY2xB,GACtDK,GAAU,SAAYjyB,EAAI,SAAYC,EAAI,UAAY2xB,GACtDl1B,KAAK6yB,aAkDX3Y,GAAO8a,GAAKS,GAAKhO,GAAOE,IACtBsM,SAAQ,SAAC9xB,GACP,OAAO,IAAI6yB,GAAIh1B,KAAKsF,EAAGtF,KAAKoG,EAAGpG,KAAK4M,EA7G9B,IA6G4C,MAALzK,EAAY,EAAIA,GAAInC,KAAK6yB,UAExEsB,OAAM,SAAChyB,GACL,OAAO,IAAI6yB,GAAIh1B,KAAKsF,EAAGtF,KAAKoG,EAAGpG,KAAK4M,EAhH9B,IAgH4C,MAALzK,EAAY,EAAIA,GAAInC,KAAK6yB,UAExEf,IAAG,WACD,OAAOmD,GAAQj1B,MAAM8xB,UCpHzB,IAAI4D,IAAK,OACLC,GAAI,QACJC,IAAK,OACLC,IAAK,OACLC,GAAI,QACJC,GAAKD,GAAID,GACTG,GAAKF,GAAIH,GACTM,GAAQN,GAAIC,GAAIC,GAAIH,GAgBT,SAASQ,GAAU5wB,EAAGyJ,EAAGnC,EAAGimB,GACzC,OAA4B,IAArBhR,UAAU9f,OAfnB,SAA0BqW,GACxB,GAAIA,aAAa+d,GAAW,OAAO,IAAIA,GAAU/d,EAAE9S,EAAG8S,EAAErJ,EAAGqJ,EAAExL,EAAGwL,EAAEya,SAC5Dza,aAAaoa,KAAMpa,EAAIwa,GAAWxa,IACxC,IAAIvT,EAAIuT,EAAEvT,EAAI,IACV8tB,EAAIva,EAAEua,EAAI,IACVjvB,EAAI0U,EAAE1U,EAAI,IACVkJ,GAAKqpB,GAAQvyB,EAAIqyB,GAAKlxB,EAAImxB,GAAKrD,IAAMsD,GAAQF,GAAKC,IAClDI,EAAK1yB,EAAIkJ,EACTzK,GAAK2zB,IAAKnD,EAAI/lB,GAAKgpB,GAAIQ,GAAMP,GAC7B9mB,EAAI3L,KAAK2B,KAAK5C,EAAIA,EAAIi0B,EAAKA,IAAON,GAAIlpB,GAAK,EAAIA,IAC/CtH,EAAIyJ,EAAI3L,KAAKC,MAAMlB,EAAGi0B,GAAM9B,GAAU,IAAMjf,IAChD,OAAO,IAAI8gB,GAAU7wB,EAAI,EAAIA,EAAI,IAAMA,EAAGyJ,EAAGnC,EAAGwL,EAAEya,SAIlBwD,CAAiB/wB,GAAK,IAAI6wB,GAAU7wB,EAAGyJ,EAAGnC,EAAc,MAAXimB,EAAkB,EAAIA,GAG9F,SAASsD,GAAU7wB,EAAGyJ,EAAGnC,EAAGimB,GACjC7yB,KAAKsF,GAAKA,EACVtF,KAAK+O,GAAKA,EACV/O,KAAK4M,GAAKA,EACV5M,KAAK6yB,SAAWA,ECnCX,SAASyD,GAAM3B,EAAI4B,EAAIhwB,EAAIC,EAAIgwB,GACpC,IAAI5B,EAAKD,EAAKA,EAAIE,EAAKD,EAAKD,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIC,EAAKC,GAAM0B,GAC9B,EAAI,EAAI3B,EAAK,EAAIC,GAAMtuB,GACvB,EAAI,EAAIouB,EAAK,EAAIC,EAAK,EAAIC,GAAMruB,EACjCquB,EAAK2B,GAAM,EDiCnBtc,GAAOic,GAAWD,GAAWzO,GAAOE,IAClCsM,SAAQ,SAAC9xB,GAEP,OADAA,EAAS,MAALA,EHnCc,EADF,GGoCWiB,KAAK8wB,IHnCd,EADF,GGoC8B/xB,GACvC,IAAIg0B,GAAUn2B,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAExDsB,OAAM,SAAChyB,GAEL,OADAA,EAAS,MAALA,EHxCY,GGwCSiB,KAAK8wB,IHxCd,GGwC0B/xB,GACnC,IAAIg0B,GAAUn2B,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAExDf,IAAG,WACD,IAAIxsB,EAAIqZ,MAAM3e,KAAKsF,GAAK,GAAKtF,KAAKsF,EAAI,KAAO+uB,GACzCznB,GAAK5M,KAAK4M,EACVnJ,EAAIkb,MAAM3e,KAAK+O,GAAK,EAAI/O,KAAK+O,EAAInC,GAAK,EAAIA,GAC1C6pB,EAAOrzB,KAAKmB,IAAIe,GAChBoxB,EAAOtzB,KAAKkB,IAAIgB,GACpB,OAAO,IAAIktB,GACT,KAAO5lB,EAAInJ,GAAKiyB,GAAIe,EAAOd,GAAIe,IAC/B,KAAO9pB,EAAInJ,GAAKmyB,GAAIa,EAAOZ,GAAIa,IAC/B,KAAO9pB,EAAInJ,GAAKqyB,GAAIW,IACpBz2B,KAAK6yB,aCjDI,ICRA8D,GAAA,SAAArzB,GAAC,OAAI,kBAAMA,ICE1B,SAASszB,GAAOnzB,EAAG0B,GACjB,OAAO,SAASkgB,GACd,OAAO5hB,EAAI4hB,EAAIlgB,GAUZ,SAAS0xB,GAAIpzB,EAAGC,GACrB,IAAIyB,EAAIzB,EAAID,EACZ,OAAO0B,EAAIyxB,GAAOnzB,EAAG0B,EAAI,KAAOA,GAAK,IAAMA,EAAI,IAAM/B,KAAK+vB,MAAMhuB,EAAI,KAAOA,GAAKkd,GAAS1D,MAAMlb,GAAKC,EAAID,GAGnG,SAASqzB,GAAMvzB,GACpB,OAAoB,IAAZA,GAAKA,GAAWwzB,GAAU,SAAStzB,EAAGC,GAC5C,OAAOA,EAAID,EAbf,SAAqBA,EAAGC,EAAGH,GACzB,OAAOE,EAAIL,KAAK8wB,IAAIzwB,EAAGF,GAAIG,EAAIN,KAAK8wB,IAAIxwB,EAAGH,GAAKE,EAAGF,EAAI,EAAIA,EAAG,SAAS8hB,GACrE,OAAOjiB,KAAK8wB,IAAIzwB,EAAI4hB,EAAI3hB,EAAGH,IAWZyzB,CAAYvzB,EAAGC,EAAGH,GAAK8e,GAAS1D,MAAMlb,GAAKC,EAAID,IAInD,SAASszB,GAAQtzB,EAAGC,GACjC,IAAIyB,EAAIzB,EAAID,EACZ,OAAO0B,EAAIyxB,GAAOnzB,EAAG0B,GAAKkd,GAAS1D,MAAMlb,GAAKC,EAAID,GCtBrC,IAAAwzB,GAAA,SAAUC,EAAS3zB,GAChC,IAAI2uB,EAAQ4E,GAAMvzB,GAElB,SAASuuB,EAAIlL,EAAOuQ,GAClB,IAAItyB,EAAIqtB,GAAOtL,EAAQwQ,GAASxQ,IAAQ/hB,GAAIsyB,EAAMC,GAASD,IAAMtyB,GAC7D8tB,EAAIT,EAAMtL,EAAM+L,EAAGwE,EAAIxE,GACvBjvB,EAAIwuB,EAAMtL,EAAMljB,EAAGyzB,EAAIzzB,GACvBmvB,EAAUkE,GAAQnQ,EAAMiM,QAASsE,EAAItE,SACzC,OAAO,SAASxN,GAKd,OAJAuB,EAAM/hB,EAAIA,EAAEwgB,GACZuB,EAAM+L,EAAIA,EAAEtN,GACZuB,EAAMljB,EAAIA,EAAE2hB,GACZuB,EAAMiM,QAAUA,EAAQxN,GACjBuB,EAAQ,IAMnB,OAFAkL,EAAIgF,MAAQI,EAELpF,EAnBM,CAoBZ,GAEH,SAASuF,GAAUC,GACjB,OAAO,SAASC,GACd,IAII31B,EAAGswB,EAJH1b,EAAI+gB,EAAOx1B,OACX8C,EAAI,IAAIgB,MAAM2Q,GACdmc,EAAI,IAAI9sB,MAAM2Q,GACd9S,EAAI,IAAImC,MAAM2Q,GAElB,IAAK5U,EAAI,EAAGA,EAAI4U,IAAK5U,EACnBswB,EAAQkF,GAASG,EAAO31B,IACxBiD,EAAEjD,GAAKswB,EAAMrtB,GAAK,EAClB8tB,EAAE/wB,GAAKswB,EAAMS,GAAK,EAClBjvB,EAAE9B,GAAKswB,EAAMxuB,GAAK,EAMpB,OAJAmB,EAAIyyB,EAAOzyB,GACX8tB,EAAI2E,EAAO3E,GACXjvB,EAAI4zB,EAAO5zB,GACXwuB,EAAMW,QAAU,EACT,SAASxN,GAId,OAHA6M,EAAMrtB,EAAIA,EAAEwgB,GACZ6M,EAAMS,EAAIA,EAAEtN,GACZ6M,EAAMxuB,EAAIA,EAAE2hB,GACL6M,EAAQ,KAKCmF,GH7CP,SAASrsB,GACtB,IAAIwL,EAAIxL,EAAOjJ,OAAS,EACxB,OAAO,SAASsjB,GACd,IAAIzjB,EAAIyjB,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAG7O,EAAI,GAAKpT,KAAKo0B,MAAMnS,EAAI7O,GAChEjQ,EAAKyE,EAAOpJ,GACZ4E,EAAKwE,EAAOpJ,EAAI,GAChB20B,EAAK30B,EAAI,EAAIoJ,EAAOpJ,EAAI,GAAK,EAAI2E,EAAKC,EACtCgwB,EAAK50B,EAAI4U,EAAI,EAAIxL,EAAOpJ,EAAI,GAAK,EAAI4E,EAAKD,EAC9C,OAAO+vB,IAAOjR,EAAIzjB,EAAI4U,GAAKA,EAAG+f,EAAIhwB,EAAIC,EAAIgwB,MGsClBa,GCpDb,SAASrsB,GACtB,IAAIwL,EAAIxL,EAAOjJ,OACf,OAAO,SAASsjB,GACd,IAAIzjB,EAAIwB,KAAKo0B,QAAQnS,GAAK,GAAK,IAAMA,EAAIA,GAAK7O,GAC1C+f,EAAKvrB,GAAQpJ,EAAI4U,EAAI,GAAKA,GAC1BjQ,EAAKyE,EAAOpJ,EAAI4U,GAChBhQ,EAAKwE,GAAQpJ,EAAI,GAAK4U,GACtBggB,EAAKxrB,GAAQpJ,EAAI,GAAK4U,GAC1B,OAAO8f,IAAOjR,EAAIzjB,EAAI4U,GAAKA,EAAG+f,EAAIhwB,EAAIC,EAAIgwB,MCV/B,ICAAiB,GAAA,SAASh0B,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAAS2hB,GAC9B,OAAO5hB,GAAK,EAAI4hB,GAAK3hB,EAAI2hB,ICAd,ICAXqS,GAAM,8CACNC,GAAM,IAAI1P,OAAOyP,GAAIE,OAAQ,KAclB,IAAA/hB,GAAA,SAASpS,EAAGC,GACzB,IACIm0B,EACAC,EACAC,EAHAC,EAAKN,GAAIO,UAAYN,GAAIM,UAAY,EAIrCr2B,GAAK,EACLmN,KACAmpB,KAMJ,IAHAz0B,GAAQ,GAAIC,GAAQ,IAGZm0B,EAAKH,GAAIrF,KAAK5uB,MACdq0B,EAAKH,GAAItF,KAAK3uB,MACfq0B,EAAKD,EAAGvrB,OAASyrB,IACpBD,EAAKr0B,EAAEiE,MAAMqwB,EAAID,GACbhpB,EAAEnN,GAAImN,EAAEnN,IAAMm2B,EACbhpB,IAAInN,GAAKm2B,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxB/oB,EAAEnN,GAAImN,EAAEnN,IAAMk2B,EACb/oB,IAAInN,GAAKk2B,GAEd/oB,IAAInN,GAAK,KACTs2B,EAAE51B,MAAMV,EAAGA,EAAG0B,EAAGm0B,GAAOI,EAAIC,MAE9BE,EAAKL,GAAIM,UAYX,OARID,EAAKt0B,EAAE3B,SACTg2B,EAAKr0B,EAAEiE,MAAMqwB,GACTjpB,EAAEnN,GAAImN,EAAEnN,IAAMm2B,EACbhpB,IAAInN,GAAKm2B,GAKThpB,EAAEhN,OAAS,EAAKm2B,EAAE,GA7C3B,SAAax0B,GACX,OAAO,SAAS2hB,GACd,OAAO3hB,EAAE2hB,GAAK,IA4CV8S,CAAID,EAAE,GAAG50B,GApDjB,SAAcI,GACZ,OAAO,WACL,OAAOA,GAmDH00B,CAAK10B,IACJA,EAAIw0B,EAAEn2B,OAAQ,SAASsjB,GACtB,IAAK,IAAWjN,EAAPxW,EAAI,EAAMA,EAAI8B,IAAK9B,EAAGmN,GAAGqJ,EAAI8f,EAAEt2B,IAAIA,GAAKwW,EAAE9U,EAAE+hB,GACrD,OAAOtW,EAAE8H,KAAK,OCnDT,ICRXwhB,GCFA/D,GAAU,IAAMlxB,KAAKgB,GAEdk0B,IACTC,WAAY,EACZC,WAAY,EACZC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,OAAQ,GAGKC,GAAA,SAASp1B,EAAGC,EAAG0C,EAAGjB,EAAGgf,EAAGzd,GACrC,IAAIiyB,EAAQC,EAAQF,EAKpB,OAJIC,EAASv1B,KAAK2B,KAAKtB,EAAIA,EAAIC,EAAIA,MAAID,GAAKk1B,EAAQj1B,GAAKi1B,IACrDD,EAAQj1B,EAAI2C,EAAI1C,EAAIyB,KAAGiB,GAAK3C,EAAIi1B,EAAOvzB,GAAKzB,EAAIg1B,IAChDE,EAASx1B,KAAK2B,KAAKqB,EAAIA,EAAIjB,EAAIA,MAAIiB,GAAKwyB,EAAQzzB,GAAKyzB,EAAQF,GAASE,GACtEn1B,EAAI0B,EAAIzB,EAAI0C,IAAG3C,GAAKA,EAAGC,GAAKA,EAAGg1B,GAASA,EAAOC,GAAUA,IAE3DJ,WAAYpU,EACZqU,WAAY9xB,EACZ+xB,OAAQr1B,KAAKC,MAAMK,EAAGD,GAAK6wB,GAC3BoE,MAAOt1B,KAAK01B,KAAKJ,GAASpE,GAC1BqE,OAAQA,EACRC,OAAQA,ICpBZ,SAASG,GAAqBC,EAAOC,EAASC,EAASC,GAErD,SAASzZ,EAAI3Q,GACX,OAAOA,EAAEhN,OAASgN,EAAE2Q,MAAQ,IAAM,GAsCpC,OAAO,SAASjc,EAAGC,GACjB,IAAIqL,KACAmpB,KAOJ,OANAz0B,EAAIu1B,EAAMv1B,GAAIC,EAAIs1B,EAAMt1B,GAtC1B,SAAmB01B,EAAIC,EAAIC,EAAIC,EAAIxqB,EAAGmpB,GACpC,GAAIkB,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI33B,EAAImN,EAAEzM,KAAK,aAAc,KAAM22B,EAAS,KAAMC,GAClDhB,EAAE51B,MAAMV,EAAGA,EAAI,EAAG0B,EAAGm0B,GAAO2B,EAAIE,KAAO13B,EAAGA,EAAI,EAAG0B,EAAGm0B,GAAO4B,EAAIE,UACtDD,GAAMC,IACfxqB,EAAEzM,KAAK,aAAeg3B,EAAKL,EAAUM,EAAKL,GAkC5Cl4B,CAAUyC,EAAE80B,WAAY90B,EAAE+0B,WAAY90B,EAAE60B,WAAY70B,EAAE80B,WAAYzpB,EAAGmpB,GA9BvE,SAAgBz0B,EAAGC,EAAGqL,EAAGmpB,GACnBz0B,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAcA,EAAID,EAAI,MAAKA,GAAK,KACtDy0B,EAAE51B,MAAMV,EAAGmN,EAAEzM,KAAKod,EAAI3Q,GAAK,UAAW,KAAMoqB,GAAY,EAAG71B,EAAGm0B,GAAOh0B,EAAGC,MAC/DA,GACTqL,EAAEzM,KAAKod,EAAI3Q,GAAK,UAAYrL,EAAIy1B,GA0BlCV,CAAOh1B,EAAEg1B,OAAQ/0B,EAAE+0B,OAAQ1pB,EAAGmpB,GAtBhC,SAAez0B,EAAGC,EAAGqL,EAAGmpB,GAClBz0B,IAAMC,EACRw0B,EAAE51B,MAAMV,EAAGmN,EAAEzM,KAAKod,EAAI3Q,GAAK,SAAU,KAAMoqB,GAAY,EAAG71B,EAAGm0B,GAAOh0B,EAAGC,KAC9DA,GACTqL,EAAEzM,KAAKod,EAAI3Q,GAAK,SAAWrL,EAAIy1B,GAmBjCT,CAAMj1B,EAAEi1B,MAAOh1B,EAAEg1B,MAAO3pB,EAAGmpB,GAf7B,SAAekB,EAAIC,EAAIC,EAAIC,EAAIxqB,EAAGmpB,GAChC,GAAIkB,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI33B,EAAImN,EAAEzM,KAAKod,EAAI3Q,GAAK,SAAU,KAAM,IAAK,KAAM,KACnDmpB,EAAE51B,MAAMV,EAAGA,EAAI,EAAG0B,EAAGm0B,GAAO2B,EAAIE,KAAO13B,EAAGA,EAAI,EAAG0B,EAAGm0B,GAAO4B,EAAIE,UAC/C,IAAPD,GAAmB,IAAPC,GACrBxqB,EAAEzM,KAAKod,EAAI3Q,GAAK,SAAWuqB,EAAK,IAAMC,EAAK,KAW7CC,CAAM/1B,EAAEk1B,OAAQl1B,EAAEm1B,OAAQl1B,EAAEi1B,OAAQj1B,EAAEk1B,OAAQ7pB,EAAGmpB,GACjDz0B,EAAIC,EAAI,KACD,SAAS2hB,GAEd,IADA,IAA0BjN,EAAtBxW,GAAK,EAAG4U,EAAI0hB,EAAEn2B,SACTH,EAAI4U,GAAGzH,GAAGqJ,EAAI8f,EAAEt2B,IAAIA,GAAKwW,EAAE9U,EAAE+hB,GACtC,OAAOtW,EAAE8H,KAAK,MAKb,IAAI4iB,GAA0BV,GFxD9B,SAAkB5yB,GACvB,IAAMkS,EAAI,IAA0B,mBAAdqhB,UAA2BA,UAAYC,iBAAiBxzB,EAAQ,IACtF,OAAOkS,EAAEuhB,WAAatB,GAAWO,GAAUxgB,EAAE5U,EAAG4U,EAAE3U,EAAG2U,EAAEjS,EAAGiS,EAAElT,EAAGkT,EAAE8L,EAAG9L,EAAE3R,IEsDJ,OAAQ,MAAO,QACxEmzB,GAA0Bd,GFpD9B,SAAkB5yB,GACvB,OAAa,MAATA,EAAsBmyB,IACrBD,KAASA,GAAUnmB,SAASD,gBAAgB,6BAA8B,MAC/EomB,GAAQzhB,aAAa,YAAazQ,IAC5BA,EAAQkyB,GAAQyB,UAAUC,QAAQC,gBACxC7zB,EAAQA,EAAM8zB,OACPpB,GAAU1yB,EAAM1C,EAAG0C,EAAMzC,EAAGyC,EAAMC,EAAGD,EAAMhB,EAAGgB,EAAMge,EAAGhe,EAAMO,IAFL4xB,KEgDG,KAAM,IAAK,KC9D3E4B,GAAW,MAEf,SAASzD,GAAKnzB,GACZ,QAASA,EAAIF,KAAK+2B,IAAI72B,IAAM,EAAIA,GAAK,GAWxB,SAAU82B,EAAQlzB,EAAKmzB,EAAMC,GAI1C,SAAShxB,EAAKixB,EAAI32B,GAChB,IAKIhC,EACA44B,EANAC,EAAMF,EAAG,GAAIG,EAAMH,EAAG,GAAII,EAAKJ,EAAG,GAClCK,EAAMh3B,EAAG,GAAIi3B,EAAMj3B,EAAG,GAAI0C,EAAK1C,EAAG,GAClCk3B,EAAKF,EAAMH,EACXM,EAAKF,EAAMH,EACXhuB,EAAKouB,EAAKA,EAAKC,EAAKA,EAKxB,GAAIruB,EAAKwtB,GACPM,EAAIp3B,KAAK0N,IAAIxK,EAAKq0B,GAAMzzB,EACxBtF,EAAI,SAASyjB,GACX,OACEoV,EAAMpV,EAAIyV,EACVJ,EAAMrV,EAAI0V,EACVJ,EAAKv3B,KAAK+2B,IAAIjzB,EAAMme,EAAImV,SAMzB,CACH,IAAI/tB,EAAKrJ,KAAK2B,KAAK2H,GACfsuB,GAAM10B,EAAKA,EAAKq0B,EAAKA,EAAKL,EAAO5tB,IAAO,EAAIiuB,EAAKN,EAAO5tB,GACxDwuB,GAAM30B,EAAKA,EAAKq0B,EAAKA,EAAKL,EAAO5tB,IAAO,EAAIpG,EAAK+zB,EAAO5tB,GACxDyuB,EAAK93B,KAAK0N,IAAI1N,KAAK2B,KAAKi2B,EAAKA,EAAK,GAAKA,GACvC/1B,EAAK7B,KAAK0N,IAAI1N,KAAK2B,KAAKk2B,EAAKA,EAAK,GAAKA,GAC3CT,GAAKv1B,EAAKi2B,GAAMh0B,EAChBtF,EAAI,SAASyjB,GACX,IAAItW,EAAIsW,EAAImV,EACRW,EAAS1E,GAAKyE,GACdE,EAAIT,GAAMN,EAAO5tB,IAAO0uB,EAxCpC,SAAc73B,GACZ,QAASA,EAAIF,KAAK+2B,IAAI,EAAI72B,IAAM,IAAMA,EAAI,GAuCC+3B,CAAKn0B,EAAM6H,EAAImsB,GA5C5D,SAAc53B,GACZ,QAASA,EAAIF,KAAK+2B,IAAI72B,IAAM,EAAIA,GAAK,EA2C2BozB,CAAKwE,IAC/D,OACET,EAAMW,EAAIN,EACVJ,EAAMU,EAAIL,EACVJ,EAAKQ,EAAS1E,GAAKvvB,EAAM6H,EAAImsB,KAOnC,OAFAt5B,EAAEwlB,SAAe,IAAJoT,EAAWtzB,EAAM9D,KAAKk4B,MAE5B15B,EAQT,OALA0H,EAAKpC,IAAM,SAAS0e,GAClB,IAAI2V,EAAKn4B,KAAKkF,IAAI,MAAOsd,GAAI4V,EAAKD,EAAKA,EACvC,OAAOnB,EAAQmB,EAAIC,EAD6BA,EAAKA,IAIhDlyB,GAvDM,CAwDZlG,KAAKk4B,MAAO,EAAG,GCnElB,SAAShI,GAAIuD,GACX,OAAO,SAASjQ,EAAOuQ,GACrB,IAAI7xB,EAAIuxB,GAAKjQ,EAAQ6U,GAAS7U,IAAQthB,GAAI6xB,EAAMsE,GAAStE,IAAM7xB,GAC3DyJ,EAAImjB,GAAMtL,EAAM7X,EAAGooB,EAAIpoB,GACvBnC,EAAIslB,GAAMtL,EAAMha,EAAGuqB,EAAIvqB,GACvBimB,EAAUX,GAAMtL,EAAMiM,QAASsE,EAAItE,SACvC,OAAO,SAASxN,GAKd,OAJAuB,EAAMthB,EAAIA,EAAE+f,GACZuB,EAAM7X,EAAIA,EAAEsW,GACZuB,EAAMha,EAAIA,EAAEyY,GACZuB,EAAMiM,QAAUA,EAAQxN,GACjBuB,EAAQ,KAKN0M,GAAIuD,IACEvD,GAAIpB,ICjBzB,SAASuD,GAAIoB,GACX,OAAO,SAASjQ,EAAOuQ,GACrB,IAAI7xB,EAAIuxB,GAAKjQ,EAAQ8U,GAAS9U,IAAQthB,GAAI6xB,EAAMuE,GAASvE,IAAM7xB,GAC3Dc,EAAI8rB,GAAMtL,EAAMxgB,EAAG+wB,EAAI/wB,GACvBwG,EAAIslB,GAAMtL,EAAMha,EAAGuqB,EAAIvqB,GACvBimB,EAAUX,GAAMtL,EAAMiM,QAASsE,EAAItE,SACvC,OAAO,SAASxN,GAKd,OAJAuB,EAAMthB,EAAIA,EAAE+f,GACZuB,EAAMxgB,EAAIA,EAAEif,GACZuB,EAAMha,EAAIA,EAAEyY,GACZuB,EAAMiM,QAAUA,EAAQxN,GACjBuB,EAAQ,KAKN6O,GAAIoB,IACEpB,GAAIvD,ICjBzB,SAASgE,GAAUW,GACjB,OAAQ,SAAS8E,EAAep4B,GAG9B,SAAS2yB,EAAUtP,EAAOuQ,GACxB,IAAI7xB,EAAIuxB,GAAKjQ,EAAQgV,GAAehV,IAAQthB,GAAI6xB,EAAMyE,GAAezE,IAAM7xB,GACvEyJ,EAAImjB,GAAMtL,EAAM7X,EAAGooB,EAAIpoB,GACvBnC,EAAIslB,GAAMtL,EAAMha,EAAGuqB,EAAIvqB,GACvBimB,EAAUX,GAAMtL,EAAMiM,QAASsE,EAAItE,SACvC,OAAO,SAASxN,GAKd,OAJAuB,EAAMthB,EAAIA,EAAE+f,GACZuB,EAAM7X,EAAIA,EAAEsW,GACZuB,EAAMha,EAAIA,EAAExJ,KAAK8wB,IAAI7O,EAAG9hB,IACxBqjB,EAAMiM,QAAUA,EAAQxN,GACjBuB,EAAQ,IAMnB,OAlBArjB,GAAKA,EAgBL2yB,EAAUY,MAAQ6E,EAEXzF,EAnBD,CAoBL,GAGUA,GAAUW,IACEX,GAAUhE,ICyC9B,SAAS2J,GAAWC,EAAYpqB,EAAMvL,GAC3C,IAAIuB,EAAKo0B,EAAWC,IAOpB,OALAD,EAAW1X,KAAK,WACd,IAAImD,EAAW3b,GAAI5L,KAAM0H,IACxB6f,EAASphB,QAAUohB,EAASphB,WAAauL,GAAQvL,EAAMgJ,MAAMnP,KAAM6hB,aAG/D,SAASzO,GACd,OAAO6B,GAAI7B,EAAM1L,GAAIvB,MAAMuL,IC9EhB,IAAAsqB,GAAA,SAASjoB,EAAayT,EAAS7mB,GAC5CoT,EAAYpT,UAAY6mB,EAAQ7mB,UAAYA,EAC5CA,EAAUoT,YAAcA,GAGnB,SAAS0T,GAAO9X,EAAQ+X,GAC7B,IAAI/mB,EAAYR,OAAO6a,OAAOrL,EAAOhP,WACrC,IAAK,IAAIgU,KAAO+S,EAAY/mB,EAAUgU,GAAO+S,EAAW/S,GACxD,OAAOhU,ECNF,SAASgnB,MAET,IAGHC,GAAM,sBACNC,GAAM,oDACNC,GAAM,qDACNC,GAAQ,qBACRC,GAAe,IAAIC,OAAM,UAAAC,OAAWN,GAAG,KAAAM,OAAIN,GAAG,KAAAM,OAAIN,GAAG,SACrDO,GAAe,IAAIF,OAAM,UAAAC,OAAWJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,SACrDM,GAAgB,IAAIH,OAAM,WAAAC,OAAYN,GAAG,KAAAM,OAAIN,GAAG,KAAAM,OAAIN,GAAG,KAAAM,OAAIL,GAAG,SAC9DQ,GAAgB,IAAIJ,OAAM,WAAAC,OAAYJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIL,GAAG,SAC9DS,GAAe,IAAIL,OAAM,UAAAC,OAAWL,GAAG,KAAAK,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,SACrDS,GAAgB,IAAIN,OAAM,WAAAC,OAAYL,GAAG,KAAAK,OAAIJ,GAAG,KAAAI,OAAIJ,GAAG,KAAAI,OAAIL,GAAG,SAE9DW,IACFC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAkBf,SAASC,KACP,OAAO7xB,KAAK8xB,MAAMC,YAWpB,SAASC,KACP,OAAOhyB,KAAK8xB,MAAMG,YAGL,SAASC,GAAMC,GAC5B,IAAI9Z,EAAGzL,EAEP,OADAulB,GAAUA,EAAS,IAAIrc,OAAOsc,eACtB/Z,EAAI0P,GAAMsK,KAAKF,KAAYvlB,EAAIyL,EAAE,GAAGtW,OAAQsW,EAAIia,SAASja,EAAE,GAAI,IAAW,IAANzL,EAAU2lB,GAAKla,GAC/E,IAANzL,EAAU,IAAI4lB,GAAKna,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANzL,EAAU6lB,GAAKpa,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANzL,EAAU6lB,GAAMpa,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAI2P,GAAaqK,KAAKF,IAAW,IAAIK,GAAIna,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAI8P,GAAakK,KAAKF,IAAW,IAAIK,GAAW,IAAPna,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI+P,GAAciK,KAAKF,IAAWM,GAAKpa,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIgQ,GAAcgK,KAAKF,IAAWM,GAAY,IAAPpa,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIiQ,GAAa+J,KAAKF,IAAWO,GAAKra,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIkQ,GAAc8J,KAAKF,IAAWO,GAAKra,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEmQ,GAAM1d,eAAeqnB,GAAUI,GAAK/J,GAAM2J,IAC/B,gBAAXA,EAA2B,IAAIK,GAAInd,IAAKA,IAAKA,IAAK,GAClD,KAGR,SAASkd,GAAK/b,GACZ,OAAO,IAAIgc,GAAIhc,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAASic,GAAK5tB,EAAG8tB,EAAGjvB,EAAGD,GAErB,OADIA,GAAK,IAAGoB,EAAI8tB,EAAIjvB,EAAI2R,KACjB,IAAImd,GAAI3tB,EAAG8tB,EAAGjvB,EAAGD,GAGnB,SAASmvB,GAAWxa,GAEzB,OADMA,aAAauP,KAAQvP,EAAI8Z,GAAM9Z,IAChCA,EAEE,IAAIoa,IADXpa,EAAIA,EAAE0Z,OACWjtB,EAAGuT,EAAEua,EAAGva,EAAE1U,EAAG0U,EAAEya,SAFjB,IAAIL,GASd,SAASA,GAAI3tB,EAAG8tB,EAAGjvB,EAAGmvB,GAC3B7yB,KAAK6E,GAAKA,EACV7E,KAAK2yB,GAAKA,EACV3yB,KAAK0D,GAAKA,EACV1D,KAAK6yB,SAAWA,EA+BlB,SAASC,KACP,UAAA5K,OAAW6K,GAAI/yB,KAAK6E,IAAEqjB,OAAG6K,GAAI/yB,KAAK2yB,IAAEzK,OAAG6K,GAAI/yB,KAAK0D,IAOlD,SAASsvB,KACP,IAAMvvB,EAAIwvB,GAAOjzB,KAAK6yB,SACtB,SAAA3K,OAAgB,IAANzkB,EAAU,OAAS,SAAOykB,OAAGgL,GAAOlzB,KAAK6E,GAAE,MAAAqjB,OAAKgL,GAAOlzB,KAAK2yB,GAAE,MAAAzK,OAAKgL,GAAOlzB,KAAK0D,IAAEwkB,OAAS,IAANzkB,EAAU,IAAG,KAAAykB,OAAQzkB,EAAC,MAGtH,SAASwvB,GAAOJ,GACd,OAAOlU,MAAMkU,GAAW,EAAIzvB,KAAKkF,IAAI,EAAGlF,KAAKgC,IAAI,EAAGytB,IAGtD,SAASK,GAAO/sB,GACd,OAAO/C,KAAKkF,IAAI,EAAGlF,KAAKgC,IAAI,IAAKhC,KAAK+vB,MAAMhtB,IAAU,IAGxD,SAAS4sB,GAAI5sB,GAEX,QADAA,EAAQ+sB,GAAO/sB,IACC,GAAK,IAAM,IAAMA,EAAM0f,SAAS,IAGlD,SAAS6M,GAAKptB,EAAGyJ,EAAGnC,EAAGnJ,GAIrB,OAHIA,GAAK,EAAG6B,EAAIyJ,EAAInC,EAAIyI,IACfzI,GAAK,GAAKA,GAAK,EAAGtH,EAAIyJ,EAAIsG,IAC1BtG,GAAK,IAAGzJ,EAAI+P,KACd,IAAI+d,GAAI9tB,EAAGyJ,EAAGnC,EAAGnJ,GAGnB,SAAS4vB,GAAWjb,GACzB,GAAIA,aAAagb,GAAK,OAAO,IAAIA,GAAIhb,EAAE9S,EAAG8S,EAAErJ,EAAGqJ,EAAExL,EAAGwL,EAAEya,SAEtD,GADMza,aAAauP,KAAQvP,EAAI8Z,GAAM9Z,KAChCA,EAAG,OAAO,IAAIgb,GACnB,GAAIhb,aAAagb,GAAK,OAAOhb,EAE7B,IAAIvT,GADJuT,EAAIA,EAAE0Z,OACIjtB,EAAI,IACV8tB,EAAIva,EAAEua,EAAI,IACVjvB,EAAI0U,EAAE1U,EAAI,IACV0B,EAAMhC,KAAKgC,IAAIP,EAAG8tB,EAAGjvB,GACrB4E,EAAMlF,KAAKkF,IAAIzD,EAAG8tB,EAAGjvB,GACrB4B,EAAI+P,IACJtG,EAAIzG,EAAMlD,EACVwH,GAAKtE,EAAMlD,GAAO,EAUtB,OATI2J,GACazJ,EAAXT,IAAMyD,GAAUqqB,EAAIjvB,GAAKqL,EAAc,GAAT4jB,EAAIjvB,GAC7BivB,IAAMrqB,GAAU5E,EAAImB,GAAKkK,EAAI,GAC5BlK,EAAI8tB,GAAK5jB,EAAI,EACvBA,GAAKnC,EAAI,GAAMtE,EAAMlD,EAAM,EAAIkD,EAAMlD,EACrCE,GAAK,IAELyJ,EAAInC,EAAI,GAAKA,EAAI,EAAI,EAAItH,EAEpB,IAAI8tB,GAAI9tB,EAAGyJ,EAAGnC,EAAGwL,EAAEya,SAO5B,SAASO,GAAI9tB,EAAGyJ,EAAGnC,EAAGimB,GACpB7yB,KAAKsF,GAAKA,EACVtF,KAAK+O,GAAKA,EACV/O,KAAK4M,GAAKA,EACV5M,KAAK6yB,SAAWA,EAuClB,SAASU,GAAOptB,GAEd,OADAA,GAASA,GAAS,GAAK,KACR,EAAIA,EAAQ,IAAMA,EAGnC,SAASqtB,GAAOrtB,GACd,OAAO/C,KAAKkF,IAAI,EAAGlF,KAAKgC,IAAI,EAAGe,GAAS,IAI1C,SAASstB,GAAQnuB,EAAG+d,EAAIqQ,GACtB,OAGY,KAHJpuB,EAAI,GAAK+d,GAAMqQ,EAAKrQ,GAAM/d,EAAI,GAChCA,EAAI,IAAMouB,EACVpuB,EAAI,IAAM+d,GAAMqQ,EAAKrQ,IAAO,IAAM/d,GAAK,GACvC+d,GAjORnJ,GAAOyN,GAAOuK,IACZyB,KAAI,SAACC,GACH,OAAOzzB,OAAO0zB,OAAO,IAAI7zB,KAAK+T,YAAa/T,KAAM4zB,IAEnDE,YAAW,WACT,OAAO9zB,KAAK8xB,MAAMgC,eAEpBf,IAAKlB,GACLE,UAAWF,GACXkC,WAUF,WACE,OAAO/zB,KAAK8xB,MAAMiC,cAVlBC,UAaF,WACE,OAAOX,GAAWrzB,MAAMg0B,aAbxB/B,UAAWD,GACXnM,SAAUmM,KAiEZ9X,GAAOsY,GAXA,SAAa3tB,EAAG8tB,EAAGjvB,EAAGmvB,GAC3B,OAA4B,IAArBhR,UAAU9f,OAAe6wB,GAAW/tB,GAAK,IAAI2tB,GAAI3tB,EAAG8tB,EAAGjvB,EAAc,MAAXmvB,EAAkB,EAAIA,IAUxEpL,GAAOE,IACtBsM,SAAQ,SAAC9xB,GAEP,OADAA,EAAS,MAALA,EAnPc,EADF,GAoPWiB,KAAK8wB,IAnPd,EADF,GAoP8B/xB,GACvC,IAAIqwB,GAAIxyB,KAAK6E,EAAI1C,EAAGnC,KAAK2yB,EAAIxwB,EAAGnC,KAAK0D,EAAIvB,EAAGnC,KAAK6yB,UAE1DsB,OAAM,SAAChyB,GAEL,OADAA,EAAS,MAALA,EAxPY,GAwPSiB,KAAK8wB,IAxPd,GAwP0B/xB,GACnC,IAAIqwB,GAAIxyB,KAAK6E,EAAI1C,EAAGnC,KAAK2yB,EAAIxwB,EAAGnC,KAAK0D,EAAIvB,EAAGnC,KAAK6yB,UAE1Df,IAAG,WACD,OAAO9xB,MAETo0B,MAAK,WACH,OAAO,IAAI5B,GAAIU,GAAOlzB,KAAK6E,GAAIquB,GAAOlzB,KAAK2yB,GAAIO,GAAOlzB,KAAK0D,GAAIuvB,GAAOjzB,KAAK6yB,WAE7EiB,YAAW,WACT,OAAS,IAAO9zB,KAAK6E,GAAK7E,KAAK6E,EAAI,QAC1B,IAAO7E,KAAK2yB,GAAK3yB,KAAK2yB,EAAI,QAC1B,IAAO3yB,KAAK0D,GAAK1D,KAAK0D,EAAI,OAC3B,GAAK1D,KAAK6yB,SAAW7yB,KAAK6yB,SAAW,GAE/CE,IAAKD,GACLf,UAAWe,GACXiB,WASF,WACE,UAAA7L,OAAW6K,GAAI/yB,KAAK6E,IAAEqjB,OAAG6K,GAAI/yB,KAAK2yB,IAAEzK,OAAG6K,GAAI/yB,KAAK0D,IAAEwkB,OAAG6K,GAA+C,KAA1CpU,MAAM3e,KAAK6yB,SAAW,EAAI7yB,KAAK6yB,YATzFZ,UAAWe,GACXnN,SAAUmN,MAyEZ9Y,GAAOkZ,GAXA,SAAa9tB,EAAGyJ,EAAGnC,EAAGimB,GAC3B,OAA4B,IAArBhR,UAAU9f,OAAesxB,GAAW/tB,GAAK,IAAI8tB,GAAI9tB,EAAGyJ,EAAGnC,EAAc,MAAXimB,EAAkB,EAAIA,IAUxEpL,GAAOE,IACtBsM,SAAQ,SAAC9xB,GAEP,OADAA,EAAS,MAALA,EArVc,EADF,GAsVWiB,KAAK8wB,IArVd,EADF,GAsV8B/xB,GACvC,IAAIixB,GAAIpzB,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAElDsB,OAAM,SAAChyB,GAEL,OADAA,EAAS,MAALA,EA1VY,GA0VSiB,KAAK8wB,IA1Vd,GA0V0B/xB,GACnC,IAAIixB,GAAIpzB,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAElDf,IAAG,WACD,IAAIxsB,EAAItF,KAAKsF,EAAI,IAAqB,KAAdtF,KAAKsF,EAAI,GAC7ByJ,EAAI4P,MAAMrZ,IAAMqZ,MAAM3e,KAAK+O,GAAK,EAAI/O,KAAK+O,EACzCnC,EAAI5M,KAAK4M,EACT8mB,EAAK9mB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKmC,EACjCsU,EAAK,EAAIzW,EAAI8mB,EACjB,OAAO,IAAIlB,GACTiB,GAAQnuB,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAK+d,EAAIqQ,GAC1CD,GAAQnuB,EAAG+d,EAAIqQ,GACfD,GAAQnuB,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAK+d,EAAIqQ,GACzC1zB,KAAK6yB,UAGTuB,MAAK,WACH,OAAO,IAAIhB,GAAIG,GAAOvzB,KAAKsF,GAAIkuB,GAAOxzB,KAAK+O,GAAIykB,GAAOxzB,KAAK4M,GAAIqmB,GAAOjzB,KAAK6yB,WAE7EiB,YAAW,WACT,OAAQ,GAAK9zB,KAAK+O,GAAK/O,KAAK+O,GAAK,GAAK4P,MAAM3e,KAAK+O,KACzC,GAAK/O,KAAK4M,GAAK5M,KAAK4M,GAAK,GACzB,GAAK5M,KAAK6yB,SAAW7yB,KAAK6yB,SAAW,GAE/CmB,UAAS,WACP,IAAMvwB,EAAIwvB,GAAOjzB,KAAK6yB,SACtB,SAAA3K,OAAgB,IAANzkB,EAAU,OAAS,SAAOykB,OAAGqL,GAAOvzB,KAAKsF,GAAE,MAAA4iB,OAAsB,IAAjBsL,GAAOxzB,KAAK+O,GAAQ,OAAAmZ,OAAuB,IAAjBsL,GAAOxzB,KAAK4M,GAAQ,KAAAsb,OAAU,IAANzkB,EAAU,IAAG,KAAAykB,OAAQzkB,EAAC,UCxX/H,IAAM4wB,GAAUjxB,KAAKgB,GAAK,IACpBkwB,GAAU,IAAMlxB,KAAKgB,GCK9BmwB,GAAK,OACLC,GAAK,EACLC,GAAK,OACLC,GAAK,EAAI,GACTC,GAAK,EAAI,GACTC,GAAK,EAAID,GAAKA,GACdE,GAAKF,GAAKA,GAAKA,GAEnB,SAASG,GAAW1c,GAClB,GAAIA,aAAa2c,GAAK,OAAO,IAAIA,GAAI3c,EAAExL,EAAGwL,EAAE3U,EAAG2U,EAAE1U,EAAG0U,EAAEya,SACtD,GAAIza,aAAa4c,GAAK,OAAOC,GAAQ7c,GAC/BA,aAAaoa,KAAMpa,EAAIwa,GAAWxa,IACxC,IAGuE9U,EAAG4xB,EAHtErwB,EAAIswB,GAAS/c,EAAEvT,GACf8tB,EAAIwC,GAAS/c,EAAEua,GACfjvB,EAAIyxB,GAAS/c,EAAE1U,GACfH,EAAI6xB,IAAS,SAAYvwB,EAAI,SAAY8tB,EAAI,SAAYjvB,GAAK8wB,IAKlE,OAJI3vB,IAAM8tB,GAAKA,IAAMjvB,EAAGJ,EAAI4xB,EAAI3xB,GAC9BD,EAAI8xB,IAAS,SAAYvwB,EAAI,SAAY8tB,EAAI,SAAYjvB,GAAK6wB,IAC9DW,EAAIE,IAAS,SAAYvwB,EAAI,SAAY8tB,EAAI,SAAYjvB,GAAK+wB,KAEzD,IAAIM,GAAI,IAAMxxB,EAAI,GAAI,KAAOD,EAAIC,GAAI,KAAOA,EAAI2xB,GAAI9c,EAAEya,SAWxD,SAASkC,GAAInoB,EAAGnJ,EAAGC,EAAGmvB,GAC3B7yB,KAAK4M,GAAKA,EACV5M,KAAKyD,GAAKA,EACVzD,KAAK0D,GAAKA,EACV1D,KAAK6yB,SAAWA,EA0BlB,SAASuC,GAAQ/P,GACf,OAAOA,EAAIwP,GAAKzxB,KAAK8wB,IAAI7O,EAAG,EAAI,GAAKA,EAAIuP,GAAKF,GAGhD,SAASY,GAAQjQ,GACf,OAAOA,EAAIsP,GAAKtP,EAAIA,EAAIA,EAAIuP,IAAMvP,EAAIqP,IAGxC,SAASa,GAASjyB,GAChB,OAAO,KAAOA,GAAK,SAAY,MAAQA,EAAI,MAAQF,KAAK8wB,IAAI5wB,EAAG,EAAI,KAAO,MAG5E,SAAS6xB,GAAS7xB,GAChB,OAAQA,GAAK,MAAQ,OAAUA,EAAI,MAAQF,KAAK8wB,KAAK5wB,EAAI,MAAS,MAAO,KAG3E,SAASkyB,GAAWpd,GAClB,GAAIA,aAAa4c,GAAK,OAAO,IAAIA,GAAI5c,EAAE9S,EAAG8S,EAAEhS,EAAGgS,EAAExL,EAAGwL,EAAEya,SAEtD,GADMza,aAAa2c,KAAM3c,EAAI0c,GAAW1c,IAC5B,IAARA,EAAE3U,GAAmB,IAAR2U,EAAE1U,EAAS,OAAO,IAAIsxB,GAAI3f,IAAK,EAAI+C,EAAExL,GAAKwL,EAAExL,EAAI,IAAM,EAAIyI,IAAK+C,EAAExL,EAAGwL,EAAEya,SACvF,IAAIvtB,EAAIlC,KAAKC,MAAM+U,EAAE1U,EAAG0U,EAAE3U,GAAK6wB,GAC/B,OAAO,IAAIU,GAAI1vB,EAAI,EAAIA,EAAI,IAAMA,EAAGlC,KAAK2B,KAAKqT,EAAE3U,EAAI2U,EAAE3U,EAAI2U,EAAE1U,EAAI0U,EAAE1U,GAAI0U,EAAExL,EAAGwL,EAAEya,SAWxE,SAASmC,GAAI1vB,EAAGc,EAAGwG,EAAGimB,GAC3B7yB,KAAKsF,GAAKA,EACVtF,KAAKoG,GAAKA,EACVpG,KAAK4M,GAAKA,EACV5M,KAAK6yB,SAAWA,EAGlB,SAASoC,GAAQ7c,GACf,GAAIuG,MAAMvG,EAAE9S,GAAI,OAAO,IAAIyvB,GAAI3c,EAAExL,EAAG,EAAG,EAAGwL,EAAEya,SAC5C,IAAIvtB,EAAI8S,EAAE9S,EAAI+uB,GACd,OAAO,IAAIU,GAAI3c,EAAExL,EAAGxJ,KAAKmB,IAAIe,GAAK8S,EAAEhS,EAAGhD,KAAKkB,IAAIgB,GAAK8S,EAAEhS,EAAGgS,EAAEya,SAjE9D3Y,GAAO6a,GAXQ,SAAanoB,EAAGnJ,EAAGC,EAAGmvB,GACnC,OAA4B,IAArBhR,UAAU9f,OAAe+yB,GAAWloB,GAAK,IAAImoB,GAAInoB,EAAGnJ,EAAGC,EAAc,MAAXmvB,EAAkB,EAAIA,IAUxEpL,GAAOE,IACtBsM,SAAQ,SAAC9xB,GACP,OAAO,IAAI4yB,GAAI/0B,KAAK4M,EAzCd,IAyC4B,MAALzK,EAAY,EAAIA,GAAInC,KAAKyD,EAAGzD,KAAK0D,EAAG1D,KAAK6yB,UAExEsB,OAAM,SAAChyB,GACL,OAAO,IAAI4yB,GAAI/0B,KAAK4M,EA5Cd,IA4C4B,MAALzK,EAAY,EAAIA,GAAInC,KAAKyD,EAAGzD,KAAK0D,EAAG1D,KAAK6yB,UAExEf,IAAG,WACD,IAAIvuB,GAAKvD,KAAK4M,EAAI,IAAM,IACpBtJ,EAAIqb,MAAM3e,KAAKyD,GAAKF,EAAIA,EAAIvD,KAAKyD,EAAI,IACrCyxB,EAAIvW,MAAM3e,KAAK0D,GAAKH,EAAIA,EAAIvD,KAAK0D,EAAI,IAIzC,OAAO,IAAI8uB,GACT+C,GAAU,WAJZjyB,EAAIixB,GAAKe,GAAQhyB,IAIW,WAH5BC,EAAIixB,GAAKc,GAAQ/xB,IAG2B,UAF5C2xB,EAAIT,GAAKa,GAAQJ,KAGfK,IAAU,SAAYjyB,EAAI,UAAYC,EAAI,QAAY2xB,GACtDK,GAAU,SAAYjyB,EAAI,SAAYC,EAAI,UAAY2xB,GACtDl1B,KAAK6yB,aAkDX3Y,GAAO8a,GAjBA,SAAa1vB,EAAGc,EAAGwG,EAAGimB,GAC3B,OAA4B,IAArBhR,UAAU9f,OAAeyzB,GAAWlwB,GAAK,IAAI0vB,GAAI1vB,EAAGc,EAAGwG,EAAc,MAAXimB,EAAkB,EAAIA,IAgBxEpL,GAAOE,IACtBsM,SAAQ,SAAC9xB,GACP,OAAO,IAAI6yB,GAAIh1B,KAAKsF,EAAGtF,KAAKoG,EAAGpG,KAAK4M,EA7G9B,IA6G4C,MAALzK,EAAY,EAAIA,GAAInC,KAAK6yB,UAExEsB,OAAM,SAAChyB,GACL,OAAO,IAAI6yB,GAAIh1B,KAAKsF,EAAGtF,KAAKoG,EAAGpG,KAAK4M,EAhH9B,IAgH4C,MAALzK,EAAY,EAAIA,GAAInC,KAAK6yB,UAExEf,IAAG,WACD,OAAOmD,GAAQj1B,MAAM8xB,UCpHzB,IAEI8D,IAAK,OACLC,IAAK,OACLC,GAAI,QACJC,GAAKD,GAAID,GACTG,GALI,QAKCF,GACLG,GANI,QAMQL,KAPR,OAOYC,GAoBb,SAASM,GAAU7wB,EAAGyJ,EAAGnC,EAAGimB,GACjC7yB,KAAKsF,GAAKA,EACVtF,KAAK+O,GAAKA,EACV/O,KAAK4M,GAAKA,EACV5M,KAAK6yB,SAAWA,EAGlB3Y,GAAOic,GAXQ,SAAmB7wB,EAAGyJ,EAAGnC,EAAGimB,GACzC,OAA4B,IAArBhR,UAAU9f,OAfnB,SAA0BqW,GACxB,GAAIA,aAAa+d,GAAW,OAAO,IAAIA,GAAU/d,EAAE9S,EAAG8S,EAAErJ,EAAGqJ,EAAExL,EAAGwL,EAAEya,SAC5Dza,aAAaoa,KAAMpa,EAAIwa,GAAWxa,IACxC,IAAIvT,EAAIuT,EAAEvT,EAAI,IACV8tB,EAAIva,EAAEua,EAAI,IACVjvB,EAAI0U,EAAE1U,EAAI,IACVkJ,GAAKqpB,GAAQvyB,EAAIqyB,GAAKlxB,EAAImxB,GAAKrD,IAAMsD,GAAQF,GAAKC,IAClDI,EAAK1yB,EAAIkJ,EACTzK,GAAK2zB,IAAKnD,EAAI/lB,GAAKgpB,GAAIQ,GAAMP,GAC7B9mB,EAAI3L,KAAK2B,KAAK5C,EAAIA,EAAIi0B,EAAKA,IAAON,GAAIlpB,GAAK,EAAIA,IAC/CtH,EAAIyJ,EAAI3L,KAAKC,MAAMlB,EAAGi0B,GAAM9B,GAAU,IAAMjf,IAChD,OAAO,IAAI8gB,GAAU7wB,EAAI,EAAIA,EAAI,IAAMA,EAAGyJ,EAAGnC,EAAGwL,EAAEya,SAIlBwD,CAAiB/wB,GAAK,IAAI6wB,GAAU7wB,EAAGyJ,EAAGnC,EAAc,MAAXimB,EAAkB,EAAIA,IAUxEpL,GAAOE,IAClCsM,SAAQ,SAAC9xB,GAEP,OADAA,EAAS,MAALA,EHnCc,EADF,GGoCWiB,KAAK8wB,IHnCd,EADF,GGoC8B/xB,GACvC,IAAIg0B,GAAUn2B,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAExDsB,OAAM,SAAChyB,GAEL,OADAA,EAAS,MAALA,EHxCY,GGwCSiB,KAAK8wB,IHxCd,GGwC0B/xB,GACnC,IAAIg0B,GAAUn2B,KAAKsF,EAAGtF,KAAK+O,EAAG/O,KAAK4M,EAAIzK,EAAGnC,KAAK6yB,UAExDf,IAAG,WACD,IAAIxsB,EAAIqZ,MAAM3e,KAAKsF,GAAK,GAAKtF,KAAKsF,EAAI,KAAO+uB,GACzCznB,GAAK5M,KAAK4M,EACVnJ,EAAIkb,MAAM3e,KAAK+O,GAAK,EAAI/O,KAAK+O,EAAInC,GAAK,EAAIA,GAC1C6pB,EAAOrzB,KAAKmB,IAAIe,GAChBoxB,EAAOtzB,KAAKkB,IAAIgB,GACpB,OAAO,IAAIktB,GACT,KAAO5lB,EAAInJ,IAlDT,OAkDkBgzB,EAjDlB,QAiD6BC,IAC/B,KAAO9pB,EAAInJ,GAAKmyB,GAAIa,EAAOZ,GAAIa,IAC/B,KAAO9pB,EAAInJ,GAAKqyB,GAAIW,IACpBz2B,KAAK6yB,aCtDI,IAAAoJ,GAAA,SAASx4B,EAAGC,GACzB,IAAI0C,EACJ,OAAqB,iBAAN1C,EAAiBw4B,GAC1Bx4B,aAAawuB,GAAQiK,IACpB/1B,EAAI8rB,GAAMxuB,KAAOA,EAAI0C,EAAG+1B,IACzBC,IAAmB34B,EAAGC,ICAf,ICNXyd,GAAYG,GAAU3gB,UAAUoT,YCiBpC,SAASsoB,GAAY3qB,GACnB,OAAO,WACL1R,KAAKyV,MAAMmP,eAAelT,ICC9B,IAAIhK,GAAK,EAEF,SAAS40B,GAAWvb,EAAQK,EAAS1P,EAAMhK,GAChD1H,KAAKihB,QAAUF,EACf/gB,KAAKqhB,SAAWD,EAChBphB,KAAKu8B,MAAQ7qB,EACb1R,KAAK+7B,IAAMr0B,EAON,SAAS80B,KACd,QAAS90B,GAGX,IAAI+0B,GAAsBnb,GAAU3gB,UAEpC27B,GAAW37B,UAVI,SAAoB+Q,GACjC,OAAO4P,KAAYwa,WAAWpqB,IASE/Q,gIAAY+7B,EAC5C3oB,YAAauoB,GACb9a,OCvCa,SAASA,GACtB,IAAI9P,EAAO1R,KAAKu8B,MACZ70B,EAAK1H,KAAK+7B,IAEQ,mBAAXva,IAAuBA,EAAS/O,EAAS+O,IAEpD,IAAK,IAAIT,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ0f,EAAY,IAAI5b,MAAMwS,GAAIrW,EAAI,EAAGA,EAAIqW,IAAKrW,EAC3F,IAAK,IAAiFoR,EAAMsO,EAAnFtN,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAQ4f,EAAWF,EAAUzf,GAAK,IAAI6D,MAAM2Q,GAAmB5U,EAAI,EAAGA,EAAI4U,IAAK5U,GAC9GwR,EAAOgB,EAAMxS,MAAQ8f,EAAUF,EAAOzhB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,MAClE,aAAchB,IAAMsO,EAAQ5N,SAAWV,EAAKU,UAChD6N,EAAS/f,GAAK8f,EACd6F,GAAS5F,EAAS/f,GAAI8P,EAAMhK,EAAI9F,EAAG+f,EAAU1M,GAAI7B,EAAM1L,KAK7D,OAAO,IAAI40B,GAAW7a,EAAWzhB,KAAKqhB,SAAU3P,EAAMhK,IDwBtDka,UExCa,SAASJ,GACtB,IAAI9P,EAAO1R,KAAKu8B,MACZ70B,EAAK1H,KAAK+7B,IAEQ,mBAAXva,IAAuBA,EAASzO,EAAYyO,IAEvD,IAAK,IAAIT,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ0f,KAAgBL,KAAcpf,EAAI,EAAGA,EAAIqW,IAAKrW,EAC/F,IAAK,IAAyCoR,EAArCgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAcH,EAAI,EAAGA,EAAI4U,IAAK5U,EAClE,GAAIwR,EAAOgB,EAAMxS,GAAI,CACnB,IAAK,IAA2DqS,EAAvDV,EAAWiO,EAAOzhB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,GAAeuoB,EAAU1nB,GAAI7B,EAAM1L,GAAKvF,EAAI,EAAGyK,EAAI2G,EAASxR,OAAQI,EAAIyK,IAAKzK,GAC/H8R,EAAQV,EAASpR,KACnBolB,GAAStT,EAAOvC,EAAMhK,EAAIvF,EAAGoR,EAAUopB,GAG3Clb,EAAUnf,KAAKiR,GACf6N,EAAQ9e,KAAK8Q,GAKnB,OAAO,IAAIkpB,GAAW7a,EAAWL,EAAS1P,EAAMhK,IFqBhDqa,YAAa0a,GAAoB1a,YACjCG,eAAgBua,GAAoBva,eACpCzf,OG5Ca,SAASuf,GACD,mBAAVA,IAAsBA,EAAQ/O,EAAQ+O,IAEjD,IAAK,IAAIjB,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQ0f,EAAY,IAAI5b,MAAMwS,GAAIrW,EAAI,EAAGA,EAAIqW,IAAKrW,EAC3F,IAAK,IAAuEoR,EAAnEgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAQ4f,EAAWF,EAAUzf,MAAeJ,EAAI,EAAGA,EAAI4U,IAAK5U,GAC3FwR,EAAOgB,EAAMxS,KAAOogB,EAAMjiB,KAAKqT,EAAMA,EAAKU,SAAUlS,EAAGwS,IAC1DuN,EAASrf,KAAK8Q,GAKpB,OAAO,IAAIkpB,GAAW7a,EAAWzhB,KAAKqhB,SAAUrhB,KAAKu8B,MAAOv8B,KAAK+7B,MHkCjE/Y,MI9Ca,SAAS8Y,GACtB,GAAIA,EAAWC,MAAQ/7B,KAAK+7B,IAAK,MAAM,IAAIzgB,MAE3C,IAAK,IAAI4H,EAAUljB,KAAKihB,QAASkC,EAAU2Y,EAAW7a,QAASmC,EAAKF,EAAQnhB,OAAQshB,EAAKF,EAAQphB,OAAQsW,EAAIjV,KAAKgC,IAAIge,EAAIC,GAAKC,EAAS,IAAIzd,MAAMud,GAAKphB,EAAI,EAAGA,EAAIqW,IAAKrW,EACrK,IAAK,IAAmGoR,EAA/FmQ,EAASL,EAAQlhB,GAAIwhB,EAASL,EAAQnhB,GAAIwU,EAAI+M,EAAOxhB,OAAQihB,EAAQM,EAAOthB,GAAK,IAAI6D,MAAM2Q,GAAU5U,EAAI,EAAGA,EAAI4U,IAAK5U,GACxHwR,EAAOmQ,EAAO3hB,IAAM4hB,EAAO5hB,MAC7BohB,EAAMphB,GAAKwR,GAKjB,KAAOpR,EAAIohB,IAAMphB,EACfshB,EAAOthB,GAAKkhB,EAAQlhB,GAGtB,OAAO,IAAIs6B,GAAWhZ,EAAQtjB,KAAKqhB,SAAUrhB,KAAKu8B,MAAOv8B,KAAK+7B,MJgC9Dza,UF7Ca,WACb,OAAO,IAAIH,GAAUnhB,KAAKihB,QAASjhB,KAAKqhB,WE6CxCya,WK/Ca,WAKb,IAJA,IAAIpqB,EAAO1R,KAAKu8B,MACZK,EAAM58B,KAAK+7B,IACXc,EAAML,KAEDzb,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQC,EAAI,EAAGA,EAAIqW,IAAKrW,EACjE,IAAK,IAAyCoR,EAArCgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAcH,EAAI,EAAGA,EAAI4U,IAAK5U,EAClE,GAAIwR,EAAOgB,EAAMxS,GAAI,CACnB,IAAI+6B,EAAU1nB,GAAI7B,EAAMwpB,GACxBrV,GAASnU,EAAM1B,EAAMmrB,EAAKj7B,EAAGwS,GAC3B+S,KAAMwV,EAAQxV,KAAOwV,EAAQzV,MAAQyV,EAAQvV,SAC7CF,MAAO,EACPE,SAAUuV,EAAQvV,SAClBC,KAAMsV,EAAQtV,OAMtB,OAAO,IAAIiV,GAAWvb,EAAQ/gB,KAAKqhB,SAAU3P,EAAMmrB,IL6BnD98B,KAAM08B,GAAoB18B,KAC1BgkB,MAAO0Y,GAAoB1Y,MAC3B3Q,KAAMqpB,GAAoBrpB,KAC1BzI,KAAM8xB,GAAoB9xB,KAC1BmI,MAAO2pB,GAAoB3pB,MAC3BsR,KAAMqY,GAAoBrY,KAC1BlM,GMhCa,SAASxG,EAAM8G,GAC5B,IAAI9Q,EAAK1H,KAAK+7B,IAEd,OAAOla,UAAU9f,OAAS,EACpBkT,GAAIjV,KAAKoT,OAAQ1L,GAAIwQ,GAAGA,GAAGxG,GAC3B1R,KAAKokB,KApBb,SAAoB1c,EAAIgK,EAAM8G,GAC5B,IAAIskB,EAAKC,EAAKC,EAThB,SAAetrB,GACb,OAAQA,EAAO,IAAIoE,OAAOC,MAAM,SAASknB,MAAM,SAAS5X,GACtD,IAAIzjB,EAAIyjB,EAAEthB,QAAQ,KAElB,OADInC,GAAK,IAAGyjB,EAAIA,EAAE1d,MAAM,EAAG/F,KACnByjB,GAAW,UAANA,IAKKuB,CAAMlV,GAAQ4V,GAAO1b,GACzC,OAAO,WACL,IAAI2b,EAAWyV,EAAIh9B,KAAM0H,GACrBwQ,EAAKqP,EAASrP,GAKdA,IAAO4kB,IAAMC,GAAOD,EAAM5kB,GAAIyb,QAAQzb,GAAGxG,EAAM8G,GAEnD+O,EAASrP,GAAK6kB,GASAG,CAAWx1B,EAAIgK,EAAM8G,KN4BrC6L,KOaa,SAAS3S,EAAMvL,GAC5B,IAAI4L,EAAWN,EAAUC,GAAO9P,EAAiB,cAAbmQ,EAA2BgnB,GAAuBoE,GACtF,OAAOn9B,KAAKo9B,UAAU1rB,EAAuB,mBAAVvL,GAC5B4L,EAASF,MAlBlB,SAAwBE,EAAUorB,EAAah3B,GAC7C,IAAIk3B,EACAC,EACAC,EACJ,OAAO,WACL,IAAIC,EAA+BC,EAAtBC,EAASv3B,EAAMnG,MAC5B,GAAc,MAAV09B,EAGJ,OAFAF,EAAUx9B,KAAKskB,eAAevS,EAASH,MAAOG,EAASF,WACvD4rB,EAAUC,EAAS,IACU,KACvBF,IAAYH,GAAYI,IAAYH,EAAWC,GAC9CD,EAAWG,EAASF,EAAeJ,EAAYE,EAAWG,EAASE,IAL1C19B,KAAKukB,kBAAkBxS,EAASH,MAAOG,EAASF,SArBpF,SAAsBH,EAAMyrB,EAAah3B,GACvC,IAAIk3B,EACAC,EACAC,EACJ,OAAO,WACL,IAAIC,EAA+BC,EAAtBC,EAASv3B,EAAMnG,MAC5B,GAAc,MAAV09B,EAGJ,OAFAF,EAAUx9B,KAAKoW,aAAa1E,OAC5B+rB,EAAUC,EAAS,IACU,KACvBF,IAAYH,GAAYI,IAAYH,EAAWC,GAC9CD,EAAWG,EAASF,EAAeJ,EAAYE,EAAWG,EAASE,IAL1C19B,KAAKwkB,gBAAgB9S,MA2BAK,EAAUnQ,EAAGi6B,GAAW77B,KAAM,QAAU0R,EAAMvL,IACtF,MAATA,GAAiB4L,EAASF,MAhElC,SAAsBE,GACpB,OAAO,WACL/R,KAAKukB,kBAAkBxS,EAASH,MAAOG,EAASF,SARpD,SAAoBH,GAClB,OAAO,WACL1R,KAAKwkB,gBAAgB9S,MAoE4CK,IAC5DA,EAASF,MA/ClB,SAAwBE,EAAUorB,EAAaO,GAC7C,IAAIL,EAEAE,EADAE,EAAUC,EAAS,GAEvB,OAAO,WACL,IAAIF,EAAUx9B,KAAKskB,eAAevS,EAASH,MAAOG,EAASF,OAC3D,OAAO2rB,IAAYC,EAAU,KACvBD,IAAYH,EAAWE,EACvBA,EAAeJ,EAAYE,EAAWG,EAASE,KApBzD,SAAsBhsB,EAAMyrB,EAAaO,GACvC,IAAIL,EAEAE,EADAE,EAAUC,EAAS,GAEvB,OAAO,WACL,IAAIF,EAAUx9B,KAAKoW,aAAa1E,GAChC,OAAO8rB,IAAYC,EAAU,KACvBD,IAAYH,EAAWE,EACvBA,EAAeJ,EAAYE,EAAWG,EAASE,MAmDA3rB,EAAUnQ,EAAGuE,KPjBpEi3B,UQvBa,SAAS1rB,EAAMvL,GAC5B,IAAIwO,EAAM,QAAUjD,EACpB,GAAImQ,UAAU9f,OAAS,EAAG,OAAQ4S,EAAM3U,KAAK2mB,MAAMhS,KAASA,EAAIgpB,OAChE,GAAa,MAATx3B,EAAe,OAAOnG,KAAK2mB,MAAMhS,EAAK,MAC1C,GAAqB,mBAAVxO,EAAsB,MAAM,IAAImV,MAC3C,IAAIvJ,EAAWN,EAAUC,GACzB,OAAO1R,KAAK2mB,MAAMhS,GAAM5C,EAASF,MA5BnC,SAAqBE,EAAU5L,GAC7B,IAAIuuB,EAAIlS,EACR,SAASmE,IACP,IAAI/kB,EAAIuE,EAAMgJ,MAAMnP,KAAM6hB,WAE1B,OADIjgB,IAAM4gB,IAAIkS,GAAMlS,EAAK5gB,IAV7B,SAA2BmQ,EAAUnQ,GACnC,OAAO,SAASyjB,GACdrlB,KAAK0kB,eAAe3S,EAASH,MAAOG,EAASF,MAAOjQ,EAAE7B,KAAKC,KAAMqlB,KAQlCuY,CAAkB7rB,EAAUnQ,IACpD8yB,EAGT,OADA/N,EAAMgX,OAASx3B,EACRwgB,GAGT,SAAmBjV,EAAMvL,GACvB,IAAIuuB,EAAIlS,EACR,SAASmE,IACP,IAAI/kB,EAAIuE,EAAMgJ,MAAMnP,KAAM6hB,WAE1B,OADIjgB,IAAM4gB,IAAIkS,GAAMlS,EAAK5gB,IA3B7B,SAAyB8P,EAAM9P,GAC7B,OAAO,SAASyjB,GACdrlB,KAAK4W,aAAalF,EAAM9P,EAAE7B,KAAKC,KAAMqlB,KAyBNwY,CAAgBnsB,EAAM9P,IAC9C8yB,EAGT,OADA/N,EAAMgX,OAASx3B,EACRwgB,IAS2D5U,EAAU5L,KRkB5EsP,MDQa,SAAS/D,EAAMvL,EAAOwe,GACnC,IAAI/iB,EAAqB,cAAhB8P,GAAQ,IAAsBqnB,GAAuBoE,GAC9D,OAAgB,MAATh3B,EAAgBnG,KAClB89B,WAAWpsB,EAjElB,SAAmBA,EAAMyrB,GACvB,IAAIE,EACAC,EACAC,EACJ,OAAO,WACL,IAAIC,EAAU/nB,GAAMzV,KAAM0R,GACtB+rB,GAAWz9B,KAAKyV,MAAMmP,eAAelT,GAAO+D,GAAMzV,KAAM0R,IAC5D,OAAO8rB,IAAYC,EAAU,KACvBD,IAAYH,GAAYI,IAAYH,EAAWC,EAC/CA,EAAeJ,EAAYE,EAAWG,EAASF,EAAWG,IAwD5CM,CAAUrsB,EAAM9P,IACjCsW,GAAG,aAAexG,EAAM2qB,GAAY3qB,IACpB,mBAAVvL,EAAuBnG,KAC7B89B,WAAWpsB,EArClB,SAAuBA,EAAMyrB,EAAah3B,GACxC,IAAIk3B,EACAC,EACAC,EACJ,OAAO,WACL,IAAIC,EAAU/nB,GAAMzV,KAAM0R,GACtBgsB,EAASv3B,EAAMnG,MACfy9B,EAAUC,EAAS,GAEvB,OADc,MAAVA,IAAoC19B,KAAKyV,MAAMmP,eAAelT,GAA9C+rB,EAAUC,EAA2CjoB,GAAMzV,KAAM0R,IAC9E8rB,IAAYC,EAAU,KACvBD,IAAYH,GAAYI,IAAYH,EAAWC,GAC9CD,EAAWG,EAASF,EAAeJ,EAAYE,EAAWG,EAASE,KA0BtDM,CAActsB,EAAM9P,EAAGi6B,GAAW77B,KAAM,SAAW0R,EAAMvL,KAC1Eie,KAvBP,SAA0B1c,EAAIgK,GAC5B,IAAIorB,EAAKC,EAAKkB,EAAwDtnB,EAA7ChC,EAAM,SAAWjD,EAAMiH,EAAQ,OAAShE,EACjE,OAAO,WACL,IAAI4S,EAAW3b,GAAI5L,KAAM0H,GACrBwQ,EAAKqP,EAASrP,GACdM,EAAkC,MAAvB+O,EAASphB,MAAMwO,GAAegC,IAAWA,EAAS0lB,GAAY3qB,SAASvK,EAKlF+Q,IAAO4kB,GAAOmB,IAAczlB,IAAWukB,GAAOD,EAAM5kB,GAAIyb,QAAQzb,GAAGS,EAAOslB,EAAYzlB,GAE1F+O,EAASrP,GAAK6kB,GAWNmB,CAAiBl+B,KAAK+7B,IAAKrqB,IACjC1R,KACC89B,WAAWpsB,EApDlB,SAAuBA,EAAMyrB,EAAaO,GACxC,IAAIL,EAEAE,EADAE,EAAUC,EAAS,GAEvB,OAAO,WACL,IAAIF,EAAU/nB,GAAMzV,KAAM0R,GAC1B,OAAO8rB,IAAYC,EAAU,KACvBD,IAAYH,EAAWE,EACvBA,EAAeJ,EAAYE,EAAWG,EAASE,IA4CjCS,CAAczsB,EAAM9P,EAAGuE,GAAQwe,GAChDzM,GAAG,aAAexG,EAAM,OCjB7BosB,WS5Ca,SAASpsB,EAAMvL,EAAOwe,GACnC,IAAIhQ,EAAM,UAAYjD,GAAQ,IAC9B,GAAImQ,UAAU9f,OAAS,EAAG,OAAQ4S,EAAM3U,KAAK2mB,MAAMhS,KAASA,EAAIgpB,OAChE,GAAa,MAATx3B,EAAe,OAAOnG,KAAK2mB,MAAMhS,EAAK,MAC1C,GAAqB,mBAAVxO,EAAsB,MAAM,IAAImV,MAC3C,OAAOtb,KAAK2mB,MAAMhS,EAhBpB,SAAoBjD,EAAMvL,EAAOwe,GAC/B,IAAIU,EAAG7C,EACP,SAASmE,IACP,IAAI/kB,EAAIuE,EAAMgJ,MAAMnP,KAAM6hB,WAE1B,OADIjgB,IAAM4gB,IAAI6C,GAAK7C,EAAK5gB,IAV5B,SAA0B8P,EAAM9P,EAAG+iB,GACjC,OAAO,SAASU,GACdrlB,KAAKyV,MAAMoP,YAAYnT,EAAM9P,EAAE7B,KAAKC,KAAMqlB,GAAIV,IAQhByZ,CAAiB1sB,EAAM9P,EAAG+iB,IACjDU,EAGT,OADAsB,EAAMgX,OAASx3B,EACRwgB,EAQgBmX,CAAWpsB,EAAMvL,EAAmB,MAAZwe,EAAmB,GAAKA,KTwCvEK,KU/Ca,SAAS7e,GACtB,OAAOnG,KAAK2mB,MAAM,OAAyB,mBAAVxgB,EARnC,SAAsBA,GACpB,OAAO,WACL,IAAIu3B,EAASv3B,EAAMnG,MACnBA,KAAKiX,YAAwB,MAAVymB,EAAiB,GAAKA,GAMrCW,CAAaxC,GAAW77B,KAAM,OAAQmG,IAf9C,SAAsBA,GACpB,OAAO,WACLnG,KAAKiX,YAAc9Q,GAcfm4B,CAAsB,MAATn4B,EAAgB,GAAKA,EAAQ,MV6ChDo4B,UW9Ca,SAASp4B,GACtB,IAAIwO,EAAM,OACV,GAAIkN,UAAU9f,OAAS,EAAG,OAAQ4S,EAAM3U,KAAK2mB,MAAMhS,KAASA,EAAIgpB,OAChE,GAAa,MAATx3B,EAAe,OAAOnG,KAAK2mB,MAAMhS,EAAK,MAC1C,GAAqB,mBAAVxO,EAAsB,MAAM,IAAImV,MAC3C,OAAOtb,KAAK2mB,MAAMhS,EAhBpB,SAAmBxO,GACjB,IAAIuuB,EAAIlS,EACR,SAASmE,IACP,IAAI/kB,EAAIuE,EAAMgJ,MAAMnP,KAAM6hB,WAE1B,OADIjgB,IAAM4gB,IAAIkS,GAAMlS,EAAK5gB,IAV7B,SAAyBA,GACvB,OAAO,SAASyjB,GACdrlB,KAAKiX,YAAcrV,EAAE7B,KAAKC,KAAMqlB,IAQDmZ,CAAgB58B,IACxC8yB,EAGT,OADA/N,EAAMgX,OAASx3B,EACRwgB,EAQgB4X,CAAUp4B,KX0CjCwQ,OHxDa,WACb,OAAO3W,KAAKkY,GAAG,aATjB,SAAwBxQ,GACtB,OAAO,WACL,IAAIiI,EAAS3P,KAAKsX,WAClB,IAAK,IAAI1V,KAAK5B,KAAK0mB,aAAc,IAAK9kB,IAAM8F,EAAI,OAC5CiI,GAAQA,EAAOgI,YAAY3X,OAKJy+B,CAAez+B,KAAK+7B,OGwDjDpV,MVda,SAASjV,EAAMvL,GAC5B,IAAIuB,EAAK1H,KAAK+7B,IAId,GAFArqB,GAAQ,GAEJmQ,UAAU9f,OAAS,EAAG,CAExB,IADA,IACkCsjB,EAD9BsB,EAAQ1R,GAAIjV,KAAKoT,OAAQ1L,GAAIif,MACxB/kB,EAAI,EAAG4U,EAAImQ,EAAM5kB,OAAWH,EAAI4U,IAAK5U,EAC5C,IAAKyjB,EAAIsB,EAAM/kB,IAAI8P,OAASA,EAC1B,OAAO2T,EAAElf,MAGb,OAAO,KAGT,OAAOnG,KAAKokB,MAAe,MAATje,EAhEpB,SAAqBuB,EAAIgK,GACvB,IAAIgtB,EAAQC,EACZ,OAAO,WACL,IAAIpX,EAAW3b,GAAI5L,KAAM0H,GACrBif,EAAQY,EAASZ,MAKrB,GAAIA,IAAU+X,EAEZ,IAAK,IAAI98B,EAAI,EAAG4U,GADhBmoB,EAASD,EAAS/X,GACS5kB,OAAQH,EAAI4U,IAAK5U,EAC1C,GAAI+8B,EAAO/8B,GAAG8P,OAASA,EAAM,EAC3BitB,EAASA,EAAOh3B,SACTmP,OAAOlV,EAAG,GACjB,MAKN2lB,EAASZ,MAAQgY,IAIrB,SAAuBj3B,EAAIgK,EAAMvL,GAC/B,IAAIu4B,EAAQC,EACZ,GAAqB,mBAAVx4B,EAAsB,MAAM,IAAImV,MAC3C,OAAO,WACL,IAAIiM,EAAW3b,GAAI5L,KAAM0H,GACrBif,EAAQY,EAASZ,MAKrB,GAAIA,IAAU+X,EAAQ,CACpBC,GAAUD,EAAS/X,GAAOhf,QAC1B,IAAK,IAAI0d,GAAK3T,KAAMA,EAAMvL,MAAOA,GAAQvE,EAAI,EAAG4U,EAAImoB,EAAO58B,OAAQH,EAAI4U,IAAK5U,EAC1E,GAAI+8B,EAAO/8B,GAAG8P,OAASA,EAAM,CAC3BitB,EAAO/8B,GAAKyjB,EACZ,MAGAzjB,IAAM4U,GAAGmoB,EAAOr8B,KAAK+iB,GAG3BkC,EAASZ,MAAQgY,KAmB4Cj3B,EAAIgK,EAAMvL,KUAzE+gB,MYpDa,SAAS/gB,GACtB,IAAIuB,EAAK1H,KAAK+7B,IAEd,OAAOla,UAAU9f,OACX/B,KAAKokB,MAAuB,mBAAVje,EAhB1B,SAAuBuB,EAAIvB,GACzB,OAAO,WACLmhB,GAAKtnB,KAAM0H,GAAIwf,OAAS/gB,EAAMgJ,MAAMnP,KAAM6hB,aAI9C,SAAuBna,EAAIvB,GACzB,OAAOA,GAASA,EAAO,WACrBmhB,GAAKtnB,KAAM0H,GAAIwf,MAAQ/gB,KAUAuB,EAAIvB,IACvB8O,GAAIjV,KAAKoT,OAAQ1L,GAAIwf,OZ8C3BE,SarDa,SAASjhB,GACtB,IAAIuB,EAAK1H,KAAK+7B,IAEd,OAAOla,UAAU9f,OACX/B,KAAKokB,MAAuB,mBAAVje,EAhB1B,SAA0BuB,EAAIvB,GAC5B,OAAO,WACLyF,GAAI5L,KAAM0H,GAAI0f,UAAYjhB,EAAMgJ,MAAMnP,KAAM6hB,aAIhD,SAA0Bna,EAAIvB,GAC5B,OAAOA,GAASA,EAAO,WACrByF,GAAI5L,KAAM0H,GAAI0f,SAAWjhB,KAUCuB,EAAIvB,IAC1B8O,GAAIjV,KAAKoT,OAAQ1L,GAAI0f,Ub+C3BC,Kc3Da,SAASlhB,GACtB,IAAIuB,EAAK1H,KAAK+7B,IAEd,OAAOla,UAAU9f,OACX/B,KAAKokB,KAXb,SAAsB1c,EAAIvB,GACxB,GAAqB,mBAAVA,EAAsB,MAAM,IAAImV,MAC3C,OAAO,WACL1P,GAAI5L,KAAM0H,GAAI2f,KAAOlhB,GAQPy4B,CAAal3B,EAAIvB,IAC3B8O,GAAIjV,KAAKoT,OAAQ1L,GAAI2f,MduD3BwX,Ye3Da,SAAS14B,GACtB,GAAqB,mBAAVA,EAAsB,MAAM,IAAImV,MAC3C,OAAOtb,KAAKokB,KAVd,SAAqB1c,EAAIvB,GACvB,OAAO,WACL,IAAIse,EAAIte,EAAMgJ,MAAMnP,KAAM6hB,WAC1B,GAAiB,mBAAN4C,EAAkB,MAAM,IAAInJ,MACvC1P,GAAI5L,KAAM0H,GAAI2f,KAAO5C,GAMNoa,CAAY7+B,KAAK+7B,IAAK51B,Kf0DvCgxB,IgBpEa,WACb,IAAI2F,EAAKC,EAAK+B,EAAO9+B,KAAM0H,EAAKo3B,EAAK/C,IAAKpxB,EAAOm0B,EAAKn0B,OACtD,OAAO,IAAI0U,QAAQ,SAASpC,EAASC,GACnC,IAAI6hB,GAAU54B,MAAO+W,GACjBia,GAAOhxB,MAAO,WAA4B,KAATwE,GAAYsS,MAEjD6hB,EAAK1a,KAAK,WACR,IAAImD,EAAW3b,GAAI5L,KAAM0H,GACrBwQ,EAAKqP,EAASrP,GAKdA,IAAO4kB,KACTC,GAAOD,EAAM5kB,GAAIyb,QACb/N,EAAEmZ,OAAOz8B,KAAKy8B,GAClBhC,EAAInX,EAAEoZ,UAAU18B,KAAKy8B,GACrBhC,EAAInX,EAAEuR,IAAI70B,KAAK60B,IAGjB5P,EAASrP,GAAK6kB,IAIH,IAATpyB,GAAYsS,QhB6CjBtD,OAAOE,SAAW4iB,GAAoB9iB,OAAOE,YiBrE3B,SAASolB,EAAO9a,GAGnC,SAAS+a,EAAO7Z,GACd,OAAOjiB,KAAK8wB,IAAI7O,EAAGlB,GAKrB,OARAA,GAAKA,EAML+a,EAAOC,SAAWF,EAEXC,GATY,CAFN,GAcO,SAASD,EAAO9a,GAGpC,SAASib,EAAQ/Z,GACf,OAAO,EAAIjiB,KAAK8wB,IAAI,EAAI7O,EAAGlB,GAK7B,OARAA,GAAKA,EAMLib,EAAQD,SAAWF,EAEZG,EATa,CAdP,GA0BS,SAASH,EAAO9a,GAGtC,SAASkb,EAAUha,GACjB,QAASA,GAAK,IAAM,EAAIjiB,KAAK8wB,IAAI7O,EAAGlB,GAAK,EAAI/gB,KAAK8wB,IAAI,EAAI7O,EAAGlB,IAAM,EAKrE,OARAA,GAAKA,EAMLkb,EAAUF,SAAWF,EAEdI,EATe,CA1BT,GCANj8B,KAAKgB,GCCP,SAASk7B,GAAKh8B,GACnB,OAA+C,oBAAvCF,KAAK8wB,IAAI,GAAI,GAAK5wB,GAAK,cCAZ,SAAS27B,EAAOlwB,GAGnC,SAASwwB,EAAOla,GACd,OAAQA,GAAKA,GAAKA,GAAKtW,GAAKsW,EAAI,GAAKA,GAKvC,OARAtW,GAAKA,EAMLwwB,EAAOC,UAAYP,EAEZM,GATY,CAFL,SAcM,SAASN,EAAOlwB,GAGpC,SAAS0wB,EAAQpa,GACf,QAASA,EAAIA,IAAMA,EAAI,GAAKtW,EAAIsW,GAAK,EAKvC,OARAtW,GAAKA,EAML0wB,EAAQD,UAAYP,EAEbQ,EATa,CAdN,SA0BQ,SAASR,EAAOlwB,GAGtC,SAAS2wB,EAAUra,GACjB,QAASA,GAAK,GAAK,EAAIA,EAAIA,IAAMtW,EAAI,GAAKsW,EAAItW,IAAMsW,GAAK,GAAKA,IAAMtW,EAAI,GAAKsW,EAAItW,GAAK,GAAK,EAK7F,OARAA,GAAKA,EAML2wB,EAAUF,UAAYP,EAEfS,EATe,CA1BR,SAAhB,ICEIC,GAAM,EAAIv8B,KAAKgB,GCGfw7B,IDCoB,SAASX,EAAOx7B,EAAGrB,GACzC,IAAI2M,EAAI3L,KAAKy8B,KAAK,GAAKp8B,EAAIL,KAAKkF,IAAI,EAAG7E,MAAQrB,GAAKu9B,IAEpD,SAASG,EAAUza,GACjB,OAAO5hB,EAAI67B,OAASja,GAAMjiB,KAAKkB,KAAKyK,EAAIsW,GAAKjjB,GAM/C,OAHA09B,EAAUC,UAAY,SAASt8B,GAAK,OAAOw7B,EAAOx7B,EAAGrB,EAAIu9B,KACzDG,EAAUE,OAAS,SAAS59B,GAAK,OAAO68B,EAAOx7B,EAAGrB,IAE3C09B,EAVe,CAHR,EACH,IAeY,SAASb,EAAOx7B,EAAGrB,GAC1C,IAAI2M,EAAI3L,KAAKy8B,KAAK,GAAKp8B,EAAIL,KAAKkF,IAAI,EAAG7E,MAAQrB,GAAKu9B,IAEpD,SAASM,EAAW5a,GAClB,OAAO,EAAI5hB,EAAI67B,GAAKja,GAAKA,GAAKjiB,KAAKkB,KAAK+gB,EAAItW,GAAK3M,GAMnD,OAHA69B,EAAWF,UAAY,SAASt8B,GAAK,OAAOw7B,EAAOx7B,EAAGrB,EAAIu9B,KAC1DM,EAAWD,OAAS,SAAS59B,GAAK,OAAO68B,EAAOx7B,EAAGrB,IAE5C69B,EAVgB,CAhBT,EACH,IA4Bc,SAAShB,EAAOx7B,EAAGrB,GAC5C,IAAI2M,EAAI3L,KAAKy8B,KAAK,GAAKp8B,EAAIL,KAAKkF,IAAI,EAAG7E,MAAQrB,GAAKu9B,IAEpD,SAASO,EAAa7a,GACpB,QAASA,EAAQ,EAAJA,EAAQ,GAAK,EACpB5hB,EAAI67B,IAAMja,GAAKjiB,KAAKkB,KAAKyK,EAAIsW,GAAKjjB,GAClC,EAAIqB,EAAI67B,GAAKja,GAAKjiB,KAAKkB,KAAKyK,EAAIsW,GAAKjjB,IAAM,EAMnD,OAHA89B,EAAaH,UAAY,SAASt8B,GAAK,OAAOw7B,EAAOx7B,EAAGrB,EAAIu9B,KAC5DO,EAAaF,OAAS,SAAS59B,GAAK,OAAO68B,EAAOx7B,EAAGrB,IAE9C89B,EAZkB,CA7BX,EACH,KCEX/Y,KAAM,KACND,MAAO,EACPE,SAAU,IACVC,KCDK,SAAoBhC,GACzB,QAASA,GAAK,IAAM,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,KDG9D,SAASsX,GAAQvpB,EAAM1L,GAErB,IADA,IAAI8e,IACKA,EAASpT,EAAKsT,iBAAmBF,EAASA,EAAO9e,KACxD,KAAM0L,EAAOA,EAAKkE,YAChB,MAAM,IAAIgE,MAAK,cAAA4M,OAAexgB,EAAE,eAGpC,OAAO8e,EEfTlF,GAAU3gB,UAAUq+B,UCFL,SAASttB,GACtB,OAAO1R,KAAKokB,KAAK,Y1DDJ,SAAShR,EAAM1B,GAC5B,IACI6V,EACA4Y,EAEAv+B,EAJA6kB,EAAYrT,EAAKsT,aAGjB5T,GAAQ,EAGZ,GAAK2T,EAAL,CAIA,IAAK7kB,KAFL8P,EAAe,MAARA,EAAe,KAAOA,EAAO,GAE1B+U,GACHc,EAAWd,EAAU7kB,IAAI8P,OAASA,GACvCyuB,EAAS5Y,EAASlf,MAAQ6d,IAAYqB,EAASlf,MAAQge,GACvDkB,EAASlf,MAAQie,GACjBiB,EAASR,MAAMjH,OACfyH,EAASrP,GAAGnY,KAAKogC,EAAS,YAAc,SAAU/sB,EAAMA,EAAKU,SAAUyT,EAAShb,MAAOgb,EAASnT,cACzFqS,EAAU7kB,IAL8BkR,GAAQ,EAQrDA,UAAcM,EAAKsT,c0DlBrBsY,CAAUh/B,KAAM0R,MDCpB4P,GAAU3gB,UAAUm7B,WFiBL,SAASpqB,GACtB,IAAIhK,EACA8e,EAEA9U,aAAgB4qB,IAClB50B,EAAKgK,EAAKqqB,IAAKrqB,EAAOA,EAAK6qB,QAE3B70B,EAAK80B,MAAUhW,EAASoZ,IAAezY,KAAOiZ,eAAO1uB,EAAe,MAARA,EAAe,KAAOA,EAAO,IAG3F,IAAK,IAAIqP,EAAS/gB,KAAKihB,QAAS5I,EAAI0I,EAAOhf,OAAQC,EAAI,EAAGA,EAAIqW,IAAKrW,EACjE,IAAK,IAAyCoR,EAArCgB,EAAQ2M,EAAO/e,GAAIwU,EAAIpC,EAAMrS,OAAcH,EAAI,EAAGA,EAAI4U,IAAK5U,GAC9DwR,EAAOgB,EAAMxS,KACf2lB,GAASnU,EAAM1B,EAAMhK,EAAI9F,EAAGwS,EAAOoS,GAAUmW,GAAQvpB,EAAM1L,IAKjE,OAAO,IAAI40B,GAAWvb,EAAQ/gB,KAAKqhB,SAAU3P,EAAMhK,II8TrD,SAAA24B,GAAA13B,EAAA23B,EAAAC,GACA,IAA8C3+B,EAAAyW,EAA9CmoB,EAAAF,EAAA,GAAA19B,OAAsCD,EAAQ29B,EAAA,GAAA33B,GAC9C,IAAA/G,EAAA,EAAeA,EAAA0+B,EAAAv+B,SAAqBH,GACpCyW,EAAAioB,EAAA1+B,GAAAgB,OAAiCD,EAAQ29B,EAAA1+B,GAAA+G,KACzC63B,IACAA,EAAAnoB,GAIA,IAAAzW,EAAA,EAAeA,EAAA2+B,EAAAx+B,SAAqBH,GACpCyW,EAAY1V,EAAQ49B,EAAA3+B,GAAA+G,GAAA43B,EAAA3+B,GAAAgB,SACpB49B,IACAA,EAAAnoB,GAGA,OAAAmoB,EAMO,SAAAC,GAAAH,EAAAC,GAGP,IAAA3+B,EAAA+D,KACA,IAAA/D,EAAA,EAAeA,EAAA0+B,EAAAv+B,SAAqBH,EAAA,CACpC,IAAAwE,EAAAk6B,EAAA1+B,GACA+D,EAAArD,MAAqBgB,EAAA8C,EAAA9C,EAAAC,EAAA6C,EAAA7C,IACrBoC,EAAArD,MAAqBgB,EAAA8C,EAAA9C,EAAA8C,EAAAxD,OAAA,EAAAW,EAAA6C,EAAA7C,IACrBoC,EAAArD,MAAqBgB,EAAA8C,EAAA9C,EAAA8C,EAAAxD,OAAA,EAAAW,EAAA6C,EAAA7C,IACrBoC,EAAArD,MAAqBgB,EAAA8C,EAAA9C,EAAAC,EAAA6C,EAAA7C,EAAA6C,EAAAxD,OAAA,IACrB+C,EAAArD,MAAqBgB,EAAA8C,EAAA9C,EAAAC,EAAA6C,EAAA7C,EAAA6C,EAAAxD,OAAA,IAErB,IAAA+G,EAAAhE,EAAA,GAAA66B,EAAAH,GAAA16B,EAAA,GAAA26B,EAAAC,GACA,IAAA3+B,EAAA,EAAeA,EAAA+D,EAAA5D,SAAmBH,EAAA,CAClC,IAAAyW,EAAAgoB,GAAA16B,EAAA/D,GAAA0+B,EAAAC,GACAloB,GAAAmoB,IACA72B,EAAAhE,EAAA/D,GACA4+B,EAAAnoB,GAKA,IAAA9I,EAAmB9I,EACnB,SAAArE,GAA6B,SAAAi+B,IAA2B/8B,EAAAlB,EAAA,GAAAmB,EAAAnB,EAAA,IAAiBk+B,EAAAC,KACzE52B,EAAArG,EAAAqG,EAAApG,IACiBsD,cAAA,IAAAG,cAAA,QAAuC1D,EACxDxB,GAAewB,EAAAiM,EAAA,GAAAhM,EAAAgM,EAAA,IAIfmxB,GAAA,EACA,IAAA9+B,EAAA,EAAeA,EAAA0+B,EAAAv+B,SAAqBH,EACpC,GAAYe,EAAQb,EAAAw+B,EAAA1+B,IAAA0+B,EAAA1+B,GAAAgB,OAAA,CACpB89B,GAAA,EACA,MAIA,IAAA9+B,EAAA,EAAeA,EAAA2+B,EAAAx+B,SAAqBH,EACpC,GAAYe,EAAQb,EAAAy+B,EAAA3+B,IAAA2+B,EAAA3+B,GAAAgB,OAAA,CACpB89B,GAAA,EACA,MAIA,IAAAA,EACA,MAAAJ,EAAAv+B,OACAD,GAAmBwB,EAAAg9B,EAAA,GAAAh9B,EAAAC,EAAA+8B,EAAA,GAAA/8B,OACV,CACT,IAAAo9B,KACYl/B,EAAgB6+B,EAAAK,GAG5B7+B,EADA,IAAA6+B,EAAA39B,KAAAjB,QACuBuB,EAAA,EAAAC,GAAA,IAAAmB,UAAA,GAEV,GAAAi8B,EAAA39B,KAAAjB,QACUuB,EAAAq9B,EAAA39B,KAAA,GAAAgB,OAAAV,EACvBC,EAAAo9B,EAAA39B,KAAA,GAAAgB,OAAAT,GAEag9B,EAAAx+B,OAEb0+B,GAAAH,MAOsBp9B,EAASy9B,EAAA39B,KAAA+C,IAAA,SAAAtC,GAAkC,OAAAA,EAAAG,MAKjE,OAAA9B,EAKA,SAAA8+B,GAAAl/B,GACA,IAAAI,KAAgB++B,KAChB,QAAAC,KAAAp/B,EACAm/B,EAAAv+B,KAAAw+B,GACAh/B,EAAAg/B,MAEA,QAAAl/B,EAAA,EAAoBA,EAAAi/B,EAAA9+B,OAAsBH,IAE1C,IADA,IAAA6B,EAAA/B,EAAAm/B,EAAAj/B,IACAI,EAAAJ,EAAA,EAA2BI,EAAA6+B,EAAA9+B,SAAsBC,EAAA,CACjD,IAAA0B,EAAAhC,EAAAm/B,EAAA7+B,IACAmD,EAAoBxC,EAAQc,EAAAC,GAE5ByB,EAAAzB,EAAAd,QAAAa,EAAAb,OAAA,MACAd,EAAA++B,EAAA7+B,IAAAM,KAAAu+B,EAAAj/B,IAEauD,EAAA1B,EAAAb,QAAAc,EAAAd,OAAA,OACbd,EAAA++B,EAAAj/B,IAAAU,KAAAu+B,EAAA7+B,IAIA,OAAAF,EAGO,SAAAi/B,GAAAr/B,EAAAwI,GAEP,IADA,IAAApI,KAAgBk/B,EAAAJ,GAAAl/B,GAChBE,EAAA,EAAmBA,EAAAsI,EAAAnI,SAAkBH,EAAA,CAErC,IADA,IAAAgD,EAAAsF,EAAAtI,GAAA8I,KAAAu2B,KAA8CC,KAC9Cl/B,EAAA,EAAuBA,EAAA4C,EAAA7C,SAAiBC,EAAA,CACxCi/B,EAAAr8B,EAAA5C,KAAA,EAKA,IAJA,IAAAqM,EAAA2yB,EAAAp8B,EAAA5C,IAIAG,EAAA,EAA2BA,EAAAkM,EAAAtM,SAAqBI,EAChD++B,EAAA7yB,EAAAlM,KAAA,EAIA,IAAAm+B,KAAAC,KACA,QAAAp2B,KAAAzI,EACAyI,KAAA82B,EACAX,EAAAh+B,KAAAZ,EAAAyI,IACaA,KAAA+2B,GACbX,EAAAj+B,KAAAZ,EAAAyI,IAGA,IAAAg3B,EAAAV,GAAAH,EAAAC,GACAz+B,EAAA8C,GAAAu8B,EACAA,EAAAz8B,UAAAwF,EAAAtI,GAAA+I,KAAA,GACAkG,QAAAC,IAAA,iBAAAlM,EAAA,8BAGA,OAAA9C,EAwEO,SAAAs/B,GAAA1/B,GACP,IAAAC,KACIF,EAAgBC,EAAAC,GACpB,IAAAqB,EAAArB,EAAAqB,KAEA,OAAAA,EAAAjB,OACA,cAEK,MAAAiB,EAAAjB,OAAA,CACL,IAAAiC,EAAAhB,EAAA,GAAAgB,OACA,OA7BO,SAAAV,EAAAC,EAAAsB,GACP,IAAA/C,KAKA,OAJAA,EAAAQ,KAAA,MAAAgB,EAAAC,GACAzB,EAAAQ,KAAA,OAAAuC,EAAA,GACA/C,EAAAQ,KAAA,MAAAuC,IAAA,QAAAA,EAAA,GACA/C,EAAAQ,KAAA,MAAAuC,IAAA,SAAAA,EAAA,GACA/C,EAAA+U,KAAA,KAuBAwqB,CAAAr9B,EAAAV,EAAAU,EAAAT,EAAAS,EAAApB,QAKA,IADA,IAAAd,GAAA,MAAAkB,EAAA,GAAAW,GAAAL,EAAAN,EAAA,GAAAW,GAAAJ,GACA3B,EAAA,EAAuBA,EAAAoB,EAAAjB,SAAiBH,EAAA,CACxC,IAAAkC,EAAAd,EAAApB,GAAAiD,EAAAf,EAAAE,OAAApB,OAAA0+B,EAAAx9B,EAAAO,MAAAQ,EACA/C,EAAAQ,KAAA,MAAAuC,IAAA,EAAAy8B,EAAA,MACAx9B,EAAAF,GAAAN,EAAAQ,EAAAF,GAAAL,GAEA,OAAAzB,EAAA+U,KAAA,KCtjBA,IAAA0qB,GAAA,SAAA3hC,GAyBC,SAAA4hC,IAAA,IAAA1hC,EACCF,EAAAG,KAAAC,OAAOA,YANDF,EAAA8C,OAAiB,EAOvB9C,EAAKG,UAAY,qBAEjBH,EAAK2hC,OAAOvpB,GAAG,oBAAqB,WAC/BpY,EAAK4hC,WAGP5hC,GAAM,GAETA,EAAKI,eA0FP,OA7HwCC,OAAAC,EAAA,EAAAD,CAAAqhC,EAAA5hC,GA2CvCO,OAAAga,eAAWqnB,EAAA7gC,UAAA,qBAOX,WACC,OAAOX,KAAK2hC,WAAWC,mBARxB,SAAyBz7B,GACxBnG,KAAK6kB,YAAY,gBAAiB1e,oCAkB5Bq7B,EAAA7gC,UAAAkhC,KAAP,SAAYza,EAAmBF,EAAgB4a,EAAkBC,GAAjE,IAAAjiC,EAAAE,KAYC,OAVKA,KAAK4hC,eACT5hC,KAAK0hC,UAAUM,UAAU5d,KAAK,SAAC6d,GAC1BA,GAAYniC,GAAQmiC,EAASL,gBACsB,GAAlDK,EAASL,cAAc79B,QAAQjE,EAAKoiC,WACvCD,EAASJ,KAAKza,EAAUF,EAAO4a,EAASC,KAMrCniC,EAAAe,UAAMkhC,KAAI9hC,KAAAC,KAAConB,EAAUF,EAAO4a,EAASC,IActCP,EAAA7gC,UAAAwhC,KAAP,SAAY/a,EAAmBF,EAAgB6a,GAA/C,IAAAjiC,EAAAE,KAYC,OAVKA,KAAK4hC,eACT5hC,KAAK0hC,UAAUM,UAAU5d,KAAK,SAAC6d,GAC1BA,GAAYniC,GAAQmiC,EAASL,gBACsB,GAAlDK,EAASL,cAAc79B,QAAQjE,EAAKoiC,WACvCD,EAASE,KAAK/a,EAAUF,EAAO6a,KAM5BniC,EAAAe,UAAMwhC,KAAIpiC,KAAAC,KAAConB,EAAUF,EAAO6a,IAU7BP,EAAA7gC,UAAAyhC,cAAP,SAAqBN,EAAiB1a,EAAkBib,GAAxD,IAAAviC,EAAAE,KACKsiC,EAAYtiC,KAAKuiC,SAAUzd,SAAU,SAAU0d,GAAIV,GAAW1a,EAAUib,GAC5EriC,KAAKyiC,WAAWngC,KAAKggC,GACrBtiC,KAAKyiC,WAAWngC,KAAKggC,EAAUb,OAAOvpB,GAAG,oBAAqB,SAACS,GAC9D,IAAI/V,EAAS9C,EAAK8C,OACd8/B,EAAOC,EAAA,QAAer/B,GAAIV,EAAQW,EAAG,IACzCm/B,GAAQC,EAAA,YAAmBr/B,EAAGV,EAAQW,EAAG,GAAKX,EAAQA,GAAQ,GAC9D8/B,GAAQC,EAAA,YAAmBr/B,GAAIV,EAAQW,EAAG,GAAKX,EAAQA,GAAQ,GAC/D9C,EAAK6H,MAAM+6B,KAAOA,EAEd5iC,EAAK6H,MAAMi7B,SACd9iC,EAAK4hC,UAAUmB,kBAAkB/iC,EAAK6H,WAI1C65B,EA7HA,CAAwCsB,EAAA,GAwLxCC,GAAA,SAAAnjC,GAsEC,SAAAojC,IAAA,IAAAljC,EACCF,EAAAG,KAAAC,OAAOA,KAEPF,EAAKG,UAAY,aAEjBH,EAAKuE,MAAQlE,OAAA8iC,EAAA,EAAA9iC,CAAQ,KACrBL,EAAK8Q,OAASzQ,OAAA8iC,EAAA,EAAA9iC,CAAQ,KACtBL,EAAKW,OAAS,WAEdX,EAAKojC,gBAAgB7+B,MAAQlE,OAAA8iC,EAAA,EAAA9iC,CAAQ,KACrCL,EAAKojC,gBAAgBtyB,OAASzQ,OAAA8iC,EAAA,EAAA9iC,CAAQ,KACtCL,EAAKojC,gBAAgBziC,OAAS,OAE9B,IAAIW,EAAWtB,EAAKqjC,OAAO/hC,SAC3BA,EAASgiC,YAAc,EACvBhiC,EAASiiC,OAASljC,OAAAwnB,EAAA,EAAAxnB,CAAM,WAExBL,EAAK2iC,WAAWngC,KAAKxC,EAAK2hC,OAAOvpB,GAAG,iBAAkB,WACrDpY,EAAKwjC,cAAWn8B,EAChBrH,EAAKyjC,uBACHzjC,GAAM,IAETA,EAAK0jC,gBAAgB/iC,OAAS,OAE9BX,EAAK2jC,eAAiB,aAEtB,IAAIC,EAAc5jC,EAAKojC,gBAAgBS,YAAYC,EAAA,GACnDF,EAAYG,cAAgB,EAC5BH,EAAYN,YAAc,EAC1BM,EAAYL,QAAS,IAAIS,EAAA,GAAoBC,OAAO,cACpDL,EAAYM,gBAAkB,MAC9BN,EAAYO,OAASC,OAAOC,UAC5BT,EAAYU,qBAAsB,EAClCV,EAAYW,KAAOlkC,OAAAwnB,EAAA,EAAAxnB,GACnBujC,EAAYY,iBAAmB,EAE/B,IAAIC,EAAKb,EAAYc,OAAOxpB,OAAO,gBACnCupB,EAAG5C,WAAW2C,iBAAmB,IACjCC,EAAGE,mBAAqB,IAExB3kC,EAAK4jC,YAAcA,EAEnBtiC,EAASqgC,OAAOvpB,GAAG,OAAQ,SAACS,GAC3B+qB,EAAY7B,KAAK,GACjB6B,EAAYvB,OACZuB,EAAYd,SAAU,EACtB9iC,EAAK+iC,kBAAkBlqB,EAAM+rB,UAG9BtjC,EAASqgC,OAAOvpB,GAAG,MAAO,SAACS,GAC1B+qB,EAAYd,SAAU,IAGvBxhC,EAASqgC,OAAOvpB,GAAG,oBAAqB,SAACS,GACnB,GAAjBA,EAAMgsB,SACT7kC,EAAK4jC,YAAY7B,SAInBzgC,EAASqgC,OAAOvpB,GAAG,MAAO,SAACS,GAC1B7Y,EAAK4jC,YAAY7B,SAGlB/hC,EAAKI,eAwOP,OA7WgCC,OAAAC,EAAA,EAAAD,CAAA6iC,EAAApjC,GA6IrBojC,EAAAriC,UAAAikC,YAAV,WACC,OAAO,IAAIhB,EAAA,GAOFZ,EAAAriC,UAAAC,sBAAV,WACChB,EAAAe,UAAMC,sBAAqBb,KAAAC,MACtBa,EAAA,SAAeb,KAAKc,eACxBd,KAAKc,YAAcd,KAAKe,SAASC,UAAU,iBAUnCgiC,EAAAriC,UAAAkkC,eAAV,WACC,OAAO,IAAItD,IAQFyB,EAAAriC,UAAAmkC,UAAV,SAAoBn9B,GACnBA,EAAMo9B,YAAa,EACnBp9B,EAAMq9B,YAAc,cAQXhC,EAAAriC,UAAAskC,UAAV,SAAoBC,GACnBA,EAAMC,eAAiB,SACvBD,EAAME,iBAAmB,SACzBF,EAAMH,YAAa,EACnBG,EAAMlgB,KAAO,cAMPge,EAAAriC,UAAAkiC,kBAAP,SAAyBwC,GACxBrlC,KAAK0jC,YAAYhB,KAAO2C,EAAO3C,KAC/B1iC,KAAK0jC,YAAYpgC,EAAI+hC,EAAO/hC,EAC5BtD,KAAK0jC,YAAYngC,EAAI8hC,EAAO9hC,GAStBy/B,EAAAriC,UAAA2kC,qBAAP,eAAAxlC,EAAAE,KACCJ,EAAAe,UAAM2kC,qBAAoBvlC,KAAAC,MAE1B,IAAIkjC,EAAkBljC,KAAKkjC,gBACvBM,EAAkBxjC,KAAKwjC,gBACvB+B,EAAgBvlC,KAAKwlC,OAAOpkC,SAE5BpB,KAAKylC,aACRF,EAAcnB,qBAAsB,EACpClB,EAAgB6B,YAAa,EAC7BvB,EAAgBuB,YAAa,IAG7BQ,EAAcnB,qBAAsB,EACpClB,EAAgB6B,YAAa,EAC7BvB,EAAgBuB,YAAa,GAG9B,IAAIr6B,KAEJ1K,KAAKgiC,UAAU5d,KAAK,SAAC6d,GACpB,IAAIr2B,KACAq2B,EAASL,cACZh2B,EAAIlB,KAAOu3B,EAASL,cAGpBh2B,EAAIlB,MAAQu3B,EAASC,UAEtBt2B,EAAIjB,KAAOs3B,EAASyD,SAAS,SAC7B,IAAIC,GAAW,EACf,GAAI1D,EAASL,cAAe,CAC3B,IAAK,IAAIhgC,EAAI,EAAGA,EAAIqgC,EAASL,cAAc7/B,OAAQH,IAAK,CACvD,IAAIsgC,EAAWD,EAASL,cAAchgC,GAClCgkC,EAAK9lC,EAAK+lC,sBAAsB3D,IAEhC0D,EAAGE,UAAaF,EAAGjB,UACtBgB,GAAW,GAGTA,GAAY1D,EAAS0C,SACxB1C,EAASJ,KAAK,GAIZj2B,EAAIjB,KAAO,IAAMg7B,IAAa1D,EAAS6D,UAAY7D,EAAS0C,SAC/Dj6B,EAAKpI,KAAKsJ,KAIZ,IAAIm6B,EAAUr7B,EAAKmb,WAEnB,GAAIkgB,GAAW/lC,KAAKsjC,WAEnBtjC,KAAKsjC,SAAWyC,EAEZr7B,EAAK3I,OAAS,GAAG,CACpB,IAAIuhC,EAAWr5B,EAAUS,GAIzB44B,EAAW3yB,EAFX2yB,EAAWh0B,EAAuBg0B,EAAU,KAAM,MAEVtjC,KAAKgmC,WAAYhmC,KAAKimC,YAAa,GAE3E,IAAIC,KACJ,IAAK,IAAIC,KAAQ7C,EAAU,CAC1B,IAAI8C,EAAO9C,EAAS6C,GAEhBvjC,EAASwjC,EAAKxjC,OAEdq/B,EAAWjiC,KAAK6lC,sBAAsBM,GAC1C,GAAInmC,KAAKqmC,sBAAwB,EAChCpE,EAASG,cAAcx/B,EAAQ5C,KAAKqmC,sBAAuBrmC,KAAKsmC,yBAE5D,CACJ,IAAI5D,EAAOC,EAAA,QAAer/B,GAAIV,EAAQW,EAAG,IACzCm/B,GAAQC,EAAA,YAAmBr/B,EAAGV,EAAQW,EAAG,GAAKX,EAAQA,GAAQ,GAC9D8/B,GAAQC,EAAA,YAAmBr/B,GAAIV,EAAQW,EAAG,GAAKX,EAAQA,GAAQ,GAC/Dq/B,EAASt6B,MAAM+6B,KAAOA,EAElBT,EAASt6B,MAAMi7B,SAClB5iC,KAAK6iC,kBAAkBZ,EAASt6B,OAGlC,IAAIA,EAAQs6B,EAASt6B,WAENR,GAAXQ,EAAMrE,QAA6B6D,GAAXQ,EAAMpE,GACjCoE,EAAMrE,EAAI8iC,EAAK9iC,EACfqE,EAAMpE,EAAI6iC,EAAK7iC,GAGfoE,EAAM46B,UAAWzd,SAAU,IAAK0d,GAAI4D,EAAK9iC,IAAOwhB,SAAU,IAAK0d,GAAI4D,EAAK7iC,IAAMvD,KAAKqmC,sBAAuBrmC,KAAKsmC,qBAGhHJ,EAAQC,GAAQC,EAGjB,IAAIG,EAAexF,GAAwBmF,EAASx7B,GAEhD87B,EAAI,EACRxmC,KAAKgiC,UAAU5d,KAAK,SAAC6d,GACpB,IAAIvwB,EAAOuwB,EAASC,SAChBj/B,EAASsjC,EAAQ70B,GACrB,GAAIuwB,EAASL,gBACZlwB,EAAOuwB,EAASL,cAAc/b,WAC9B5iB,EAASsjC,EAAQ70B,IACL,CAIX,IAHA,IAAI9F,EAAMq2B,EAASL,cACf6E,KAEK13B,EAAI,EAAGA,EAAInD,EAAI7J,OAAQgN,IAC/B03B,EAAGnkC,KAAK4jC,EAAQt6B,EAAImD,KAErB,IAAI23B,EAAmBtF,GAA0BqF,GAE7C9+B,EAAQs6B,EAASt6B,MACrBA,EAAM+6B,KAAOgE,EAEb/+B,EAAMg/B,SAAW1jC,EAAOK,EACxBqE,EAAMi/B,SAAW3jC,EAAOM,EAI1B,GAAIN,EAAQ,CACX,IAAIiiC,EAAQjD,EAASiD,WACN/9B,GAAX+9B,EAAM5hC,QAA6B6D,GAAX+9B,EAAM3hC,GACjC2hC,EAAM5hC,EAAIL,EAAOK,EACjB4hC,EAAM3hC,EAAIN,EAAOM,GAGjB2hC,EAAM3C,UAAWzd,SAAU,IAAK0d,GAAIv/B,EAAOK,IAAOwhB,SAAU,IAAK0d,GAAIv/B,EAAOM,IAAMzD,EAAKumC,sBAAuBvmC,EAAKwmC,qBAOrHxmC,EAAK+mC,kBAAkB5E,GAElBniC,EAAKqjC,OAAO/hC,SAAS0lC,eAAe7C,SACxChC,EAASt6B,MAAMs8B,OAASuC,GAEzBA,QAaGxD,EAAAriC,UAAAklC,sBAAP,SAA6B3D,GAC5B,IAAI0D,EAMJ,OALA5lC,KAAKgiC,UAAU5d,KAAK,SAAC6d,GAChBA,EAASC,UAAYA,IACxB0D,EAAK3D,KAGA2D,GAET5C,EA7WA,CAAgCF,EAAA,GAqXhCxhC,EAAA,EAASC,kBAA8B,WAAIwhC,GAC3CzhC,EAAA,EAASC,kBAAsC,mBAAIggC,GChlBnDxoB,OAAAguB,gBAAyBC","file":"./plugins/venn.js","sourcesContent":["/**\r\n * Venn Diagram module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentChart, IPercentChartProperties, IPercentChartDataFields, IPercentChartAdapters, IPercentChartEvents, PercentChartDataItem } from \"../../charts/types/PercentChart\";\r\nimport { VennSeries } from \"./VennSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Legend } from \"../../charts/Legend\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[VennDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class VennDiagramDataItem extends PercentChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: VennDiagram;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"VennDiagramDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[VennDiagram]].\r\n */\r\nexport interface IVennDiagramDataFields extends IPercentChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[VennDiagram]]\r\n */\r\nexport interface IVennDiagramProperties extends IPercentChartProperties { }\r\n\r\n/**\r\n * Defines events for [[VennDiagram]].\r\n */\r\nexport interface IVennDiagramEvents extends IPercentChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[VennDiagram]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IVennDiagramAdapters extends IPercentChartAdapters, IVennDiagramProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Venn Diagram.\r\n * \r\n * Venn diagram uses Ben Frederickson's [venn.js](https://github.com/benfred/venn.js).\r\n *\r\n * @see {@link IVennDiagramEvents} for a list of available Events\r\n * @see {@link IVennDiagramAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/venn/} for documentation\r\n * @important\r\n * @since 4.9.0\r\n */\r\nexport class VennDiagram extends PercentChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IVennDiagramDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IVennDiagramProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IVennDiagramAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IVennDiagramEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: VennSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"VennDiagram\";\r\n\r\n\t\tthis.seriesContainer.layout = \"horizontal\";\r\n\r\n\t\tthis.padding(15, 15, 15, 15);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Venn Diagram\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setLegend(legend: Legend) {\r\n\t\tsuper.setLegend(legend);\r\n\t\tif (legend) {\r\n\t\t\tlegend.valueLabels.template.disabled = true;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"VennDiagram\"] = VennDiagram;\r\nregistry.registeredClasses[\"VennDiagramDataItem\"] = VennDiagramDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/plugins/venn/VennDiagram.ts","var SMALL = 1e-10;\n\n/** Returns the intersection area of a bunch of circles (where each circle\n is an object having an x,y and radius property) */\nexport function intersectionArea(circles, stats) {\n // get all the intersection points of the circles\n var intersectionPoints = getIntersectionPoints(circles);\n\n // filter out points that aren't included in all the circles\n var innerPoints = intersectionPoints.filter(function (p) {\n return containedInCircles(p, circles);\n });\n\n var arcArea = 0, polygonArea = 0, arcs = [], i;\n\n // if we have intersection points that are within all the circles,\n // then figure out the area contained by them\n if (innerPoints.length > 1) {\n // sort the points by angle from the center of the polygon, which lets\n // us just iterate over points to get the edges\n var center = getCenter(innerPoints);\n for (i = 0; i < innerPoints.length; ++i ) {\n var p = innerPoints[i];\n p.angle = Math.atan2(p.x - center.x, p.y - center.y);\n }\n innerPoints.sort(function(a,b) { return b.angle - a.angle;});\n\n // iterate over all points, get arc between the points\n // and update the areas\n var p2 = innerPoints[innerPoints.length - 1];\n for (i = 0; i < innerPoints.length; ++i) {\n var p1 = innerPoints[i];\n\n // polygon area updates easily ...\n polygonArea += (p2.x + p1.x) * (p1.y - p2.y);\n\n // updating the arc area is a little more involved\n var midPoint = {x : (p1.x + p2.x) / 2,\n y : (p1.y + p2.y) / 2},\n arc = null;\n\n for (var j = 0; j < p1.parentIndex.length; ++j) {\n if (p2.parentIndex.indexOf(p1.parentIndex[j]) > -1) {\n // figure out the angle halfway between the two points\n // on the current circle\n var circle = circles[p1.parentIndex[j]],\n a1 = Math.atan2(p1.x - circle.x, p1.y - circle.y),\n a2 = Math.atan2(p2.x - circle.x, p2.y - circle.y);\n\n var angleDiff = (a2 - a1);\n if (angleDiff < 0) {\n angleDiff += 2*Math.PI;\n }\n\n // and use that angle to figure out the width of the\n // arc\n var a = a2 - angleDiff/2,\n width = distance(midPoint, {\n x : circle.x + circle.radius * Math.sin(a),\n y : circle.y + circle.radius * Math.cos(a)\n });\n\n // clamp the width to the largest is can actually be\n // (sometimes slightly overflows because of FP errors)\n if (width > circle.radius * 2) {\n width = circle.radius * 2;\n }\n\n // pick the circle whose arc has the smallest width\n if ((arc === null) || (arc.width > width)) {\n arc = { circle : circle,\n width : width,\n p1 : p1,\n p2 : p2};\n }\n }\n }\n\n if (arc !== null) {\n arcs.push(arc);\n arcArea += circleArea(arc.circle.radius, arc.width);\n p2 = p1;\n }\n }\n } else {\n // no intersection points, is either disjoint - or is completely\n // overlapped. figure out which by examining the smallest circle\n var smallest = circles[0];\n for (i = 1; i < circles.length; ++i) {\n if (circles[i].radius < smallest.radius) {\n smallest = circles[i];\n }\n }\n\n // make sure the smallest circle is completely contained in all\n // the other circles\n var disjoint = false;\n for (i = 0; i < circles.length; ++i) {\n if (distance(circles[i], smallest) > Math.abs(smallest.radius - circles[i].radius)) {\n disjoint = true;\n break;\n }\n }\n\n if (disjoint) {\n arcArea = polygonArea = 0;\n\n } else {\n arcArea = smallest.radius * smallest.radius * Math.PI;\n arcs.push({circle : smallest,\n p1: { x: smallest.x, y : smallest.y + smallest.radius},\n p2: { x: smallest.x - SMALL, y : smallest.y + smallest.radius},\n width : smallest.radius * 2 });\n }\n }\n\n polygonArea /= 2;\n if (stats) {\n stats.area = arcArea + polygonArea;\n stats.arcArea = arcArea;\n stats.polygonArea = polygonArea;\n stats.arcs = arcs;\n stats.innerPoints = innerPoints;\n stats.intersectionPoints = intersectionPoints;\n }\n\n return arcArea + polygonArea;\n}\n\n/** returns whether a point is contained by all of a list of circles */\nexport function containedInCircles(point, circles) {\n for (var i = 0; i < circles.length; ++i) {\n if (distance(point, circles[i]) > circles[i].radius + SMALL) {\n return false;\n }\n }\n return true;\n}\n\n/** Gets all intersection points between a bunch of circles */\nfunction getIntersectionPoints(circles) {\n var ret = [];\n for (var i = 0; i < circles.length; ++i) {\n for (var j = i + 1; j < circles.length; ++j) {\n var intersect = circleCircleIntersection(circles[i],\n circles[j]);\n for (var k = 0; k < intersect.length; ++k) {\n var p = intersect[k];\n p.parentIndex = [i,j];\n ret.push(p);\n }\n }\n }\n return ret;\n}\n\n/** Circular segment area calculation. See http://mathworld.wolfram.com/CircularSegment.html */\nexport function circleArea(r, width) {\n return r * r * Math.acos(1 - width/r) - (r - width) * Math.sqrt(width * (2 * r - width));\n}\n\n/** euclidean distance between two points */\nexport function distance(p1, p2) {\n return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) +\n (p1.y - p2.y) * (p1.y - p2.y));\n}\n\n\n/** Returns the overlap area of two circles of radius r1 and r2 - that\nhave their centers separated by distance d. Simpler faster\ncircle intersection for only two circles */\nexport function circleOverlap(r1, r2, d) {\n // no overlap\n if (d >= r1 + r2) {\n return 0;\n }\n\n // completely overlapped\n if (d <= Math.abs(r1 - r2)) {\n return Math.PI * Math.min(r1, r2) * Math.min(r1, r2);\n }\n\n var w1 = r1 - (d * d - r2 * r2 + r1 * r1) / (2 * d),\n w2 = r2 - (d * d - r1 * r1 + r2 * r2) / (2 * d);\n return circleArea(r1, w1) + circleArea(r2, w2);\n}\n\n/** Given two circles (containing a x/y/radius attributes),\nreturns the intersecting points if possible.\nnote: doesn't handle cases where there are infinitely many\nintersection points (circles are equivalent):, or only one intersection point*/\nexport function circleCircleIntersection(p1, p2) {\n var d = distance(p1, p2),\n r1 = p1.radius,\n r2 = p2.radius;\n\n // if to far away, or self contained - can't be done\n if ((d >= (r1 + r2)) || (d <= Math.abs(r1 - r2))) {\n return [];\n }\n\n var a = (r1 * r1 - r2 * r2 + d * d) / (2 * d),\n h = Math.sqrt(r1 * r1 - a * a),\n x0 = p1.x + a * (p2.x - p1.x) / d,\n y0 = p1.y + a * (p2.y - p1.y) / d,\n rx = -(p2.y - p1.y) * (h / d),\n ry = -(p2.x - p1.x) * (h / d);\n\n return [{x: x0 + rx, y : y0 - ry },\n {x: x0 - rx, y : y0 + ry }];\n}\n\n/** Returns the center of a bunch of points */\nexport function getCenter(points) {\n var center = {x: 0, y: 0};\n for (var i =0; i < points.length; ++i ) {\n center.x += points[i].x;\n center.y += points[i].y;\n }\n center.x /= points.length;\n center.y /= points.length;\n return center;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/circleintersection.js\n// module id = null\n// module chunks = ","// need some basic operations on vectors, rather than adding a dependency,\n// just define here\nexport function zeros(x) { var r = new Array(x); for (var i = 0; i < x; ++i) { r[i] = 0; } return r; }\nexport function zerosM(x,y) { return zeros(x).map(function() { return zeros(y); }); }\n\nexport function dot(a, b) {\n var ret = 0;\n for (var i = 0; i < a.length; ++i) {\n ret += a[i] * b[i];\n }\n return ret;\n}\n\nexport function norm2(a) {\n return Math.sqrt(dot(a, a));\n}\n\nexport function scale(ret, value, c) {\n for (var i = 0; i < value.length; ++i) {\n ret[i] = value[i] * c;\n }\n}\n\nexport function weightedSum(ret, w1, v1, w2, v2) {\n for (var j = 0; j < ret.length; ++j) {\n ret[j] = w1 * v1[j] + w2 * v2[j];\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/fmin/blas1.js\n// module id = null\n// module chunks = ","import {dot, norm2, weightedSum} from \"./blas1\";\n\n/** minimizes a function using the downhill simplex method */\nexport function nelderMead(f, x0, parameters) {\n parameters = parameters || {};\n\n var maxIterations = parameters.maxIterations || x0.length * 200,\n nonZeroDelta = parameters.nonZeroDelta || 1.05,\n zeroDelta = parameters.zeroDelta || 0.001,\n minErrorDelta = parameters.minErrorDelta || 1e-6,\n minTolerance = parameters.minErrorDelta || 1e-5,\n rho = (parameters.rho !== undefined) ? parameters.rho : 1,\n chi = (parameters.chi !== undefined) ? parameters.chi : 2,\n psi = (parameters.psi !== undefined) ? parameters.psi : -0.5,\n sigma = (parameters.sigma !== undefined) ? parameters.sigma : 0.5,\n maxDiff;\n\n // initialize simplex.\n var N = x0.length,\n simplex = new Array(N + 1);\n simplex[0] = x0;\n simplex[0].fx = f(x0);\n simplex[0].id = 0;\n for (var i = 0; i < N; ++i) {\n var point = x0.slice();\n point[i] = point[i] ? point[i] * nonZeroDelta : zeroDelta;\n simplex[i+1] = point;\n simplex[i+1].fx = f(point);\n simplex[i+1].id = i+1;\n }\n\n function updateSimplex(value) {\n for (var i = 0; i < value.length; i++) {\n simplex[N][i] = value[i];\n }\n simplex[N].fx = value.fx;\n }\n\n var sortOrder = function(a, b) { return a.fx - b.fx; };\n\n var centroid = x0.slice(),\n reflected = x0.slice(),\n contracted = x0.slice(),\n expanded = x0.slice();\n\n for (var iteration = 0; iteration < maxIterations; ++iteration) {\n simplex.sort(sortOrder);\n\n if (parameters.history) {\n // copy the simplex (since later iterations will mutate) and\n // sort it to have a consistent order between iterations\n var sortedSimplex = simplex.map(function (x) {\n var state = x.slice();\n state.fx = x.fx;\n state.id = x.id;\n return state;\n });\n sortedSimplex.sort(function(a,b) { return a.id - b.id; });\n\n parameters.history.push({x: simplex[0].slice(),\n fx: simplex[0].fx,\n simplex: sortedSimplex});\n }\n\n maxDiff = 0;\n for (i = 0; i < N; ++i) {\n maxDiff = Math.max(maxDiff, Math.abs(simplex[0][i] - simplex[1][i]));\n }\n\n if ((Math.abs(simplex[0].fx - simplex[N].fx) < minErrorDelta) &&\n (maxDiff < minTolerance)) {\n break;\n }\n\n // compute the centroid of all but the worst point in the simplex\n for (i = 0; i < N; ++i) {\n centroid[i] = 0;\n for (var j = 0; j < N; ++j) {\n centroid[i] += simplex[j][i];\n }\n centroid[i] /= N;\n }\n\n // reflect the worst point past the centroid and compute loss at reflected\n // point\n var worst = simplex[N];\n weightedSum(reflected, 1+rho, centroid, -rho, worst);\n reflected.fx = f(reflected);\n\n // if the reflected point is the best seen, then possibly expand\n if (reflected.fx < simplex[0].fx) {\n weightedSum(expanded, 1+chi, centroid, -chi, worst);\n expanded.fx = f(expanded);\n if (expanded.fx < reflected.fx) {\n updateSimplex(expanded);\n } else {\n updateSimplex(reflected);\n }\n }\n\n // if the reflected point is worse than the second worst, we need to\n // contract\n else if (reflected.fx >= simplex[N-1].fx) {\n var shouldReduce = false;\n\n if (reflected.fx > worst.fx) {\n // do an inside contraction\n weightedSum(contracted, 1+psi, centroid, -psi, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < worst.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n } else {\n // do an outside contraction\n weightedSum(contracted, 1-psi * rho, centroid, psi*rho, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < reflected.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n }\n\n if (shouldReduce) {\n // if we don't contract here, we're done\n if (sigma >= 1) break;\n\n // do a reduction\n for (i = 1; i < simplex.length; ++i) {\n weightedSum(simplex[i], 1 - sigma, simplex[0], sigma, simplex[i]);\n simplex[i].fx = f(simplex[i]);\n }\n }\n } else {\n updateSimplex(reflected);\n }\n }\n\n simplex.sort(sortOrder);\n return {fx : simplex[0].fx,\n x : simplex[0]};\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/fmin/nelderMead.js\n// module id = null\n// module chunks = ","import {dot, weightedSum} from \"./blas1\";\n\n\n/// searches along line 'pk' for a point that satifies the wolfe conditions\n/// See 'Numerical Optimization' by Nocedal and Wright p59-60\n/// f : objective function\n/// pk : search direction\n/// current: object containing current gradient/loss\n/// next: output: contains next gradient/loss\n/// returns a: step size taken\nexport function wolfeLineSearch(f, pk, current, next, a, c1, c2) {\n var phi0 = current.fx, phiPrime0 = dot(current.fxprime, pk),\n phi = phi0, phi_old = phi0,\n phiPrime = phiPrime0,\n a0 = 0;\n\n a = a || 1;\n c1 = c1 || 1e-6;\n c2 = c2 || 0.1;\n\n function zoom(a_lo, a_high, phi_lo) {\n for (var iteration = 0; iteration < 16; ++iteration) {\n a = (a_lo + a_high)/2;\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (phi >= phi_lo)) {\n a_high = a;\n\n } else {\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime * (a_high - a_lo) >=0) {\n a_high = a_lo;\n }\n\n a_lo = a;\n phi_lo = phi;\n }\n }\n\n return 0;\n }\n\n for (var iteration = 0; iteration < 10; ++iteration) {\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (iteration && (phi >= phi_old))) {\n return zoom(a0, a, phi_old);\n }\n\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime >= 0 ) {\n return zoom(a, a0, phi);\n }\n\n phi_old = phi;\n a0 = a;\n a *= 2;\n }\n\n return a;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/fmin/linesearch.js\n// module id = null\n// module chunks = ","import {dot, norm2, scale, weightedSum} from \"./blas1\";\nimport {wolfeLineSearch} from \"./linesearch\";\n\nexport function conjugateGradient(f, initial, params) {\n // allocate all memory up front here, keep out of the loop for perfomance\n // reasons\n var current = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n next = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n yk = initial.slice(),\n pk, temp,\n a = 1,\n maxIterations;\n\n params = params || {};\n maxIterations = params.maxIterations || initial.length * 20;\n\n current.fx = f(current.x, current.fxprime);\n pk = current.fxprime.slice();\n scale(pk, current.fxprime,-1);\n\n for (var i = 0; i < maxIterations; ++i) {\n a = wolfeLineSearch(f, pk, current, next, a);\n\n // todo: history in wrong spot?\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n if (!a) {\n // faiiled to find point that satifies wolfe conditions.\n // reset direction for next iteration\n scale(pk, current.fxprime, -1);\n\n } else {\n // update direction using Polak–Ribiere CG method\n weightedSum(yk, 1, next.fxprime, -1, current.fxprime);\n\n var delta_k = dot(current.fxprime, current.fxprime),\n beta_k = Math.max(0, dot(yk, next.fxprime) / delta_k);\n\n weightedSum(pk, beta_k, pk, -1, next.fxprime);\n\n temp = current;\n current = next;\n next = temp;\n }\n\n if (norm2(current.fxprime) <= 1e-5) {\n break;\n }\n }\n\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n return current;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/fmin/conjugateGradient.js\n// module id = null\n// module chunks = ","import {nelderMead, bisect, conjugateGradient, zeros, zerosM, norm2,\n scale} from './fmin/index.js';\nimport {intersectionArea, circleOverlap, circleCircleIntersection, distance} from './circleintersection';\n\n/** given a list of set objects, and their corresponding overlaps.\nupdates the (x, y, radius) attribute on each set such that their positions\nroughly correspond to the desired overlaps */\nexport function venn(areas, parameters) {\n parameters = parameters || {};\n parameters.maxIterations = parameters.maxIterations || 500;\n var initialLayout = parameters.initialLayout || bestInitialLayout;\n var loss = parameters.lossFunction || lossFunction;\n\n // add in missing pairwise areas as having 0 size\n areas = addMissingAreas(areas);\n\n // initial layout is done greedily\n var circles = initialLayout(areas, parameters);\n\n // transform x/y coordinates to a vector to optimize\n var initial = [], setids = [], setid;\n for (setid in circles) {\n if (circles.hasOwnProperty(setid)) {\n initial.push(circles[setid].x);\n initial.push(circles[setid].y);\n setids.push(setid);\n }\n }\n\n // optimize initial layout from our loss function\n var totalFunctionCalls = 0;\n var solution = nelderMead(\n function(values) {\n totalFunctionCalls += 1;\n var current = {};\n for (var i = 0; i < setids.length; ++i) {\n var setid = setids[i];\n current[setid] = {x: values[2 * i],\n y: values[2 * i + 1],\n radius : circles[setid].radius,\n // size : circles[setid].size\n };\n }\n return loss(current, areas);\n },\n initial,\n parameters);\n\n // transform solution vector back to x/y points\n var positions = solution.x;\n for (var i = 0; i < setids.length; ++i) {\n setid = setids[i];\n circles[setid].x = positions[2 * i];\n circles[setid].y = positions[2 * i + 1];\n }\n\n return circles;\n}\n\nvar SMALL = 1e-10;\n\n/** Returns the distance necessary for two circles of radius r1 + r2 to\nhave the overlap area 'overlap' */\nexport function distanceFromIntersectArea(r1, r2, overlap) {\n // handle complete overlapped circles\n if (Math.min(r1, r2) * Math.min(r1,r2) * Math.PI <= overlap + SMALL) {\n return Math.abs(r1 - r2);\n }\n\n return bisect(function(distance) {\n return circleOverlap(r1, r2, distance) - overlap;\n }, 0, r1 + r2);\n}\n\n/** Missing pair-wise intersection area data can cause problems:\n treating as an unknown means that sets will be laid out overlapping,\n which isn't what people expect. To reflect that we want disjoint sets\n here, set the overlap to 0 for all missing pairwise set intersections */\nfunction addMissingAreas(areas) {\n areas = areas.slice();\n\n // two circle intersections that aren't defined\n var ids = [], pairs = {}, i, j, a, b;\n for (i = 0; i < areas.length; ++i) {\n var area = areas[i];\n if (area.sets.length == 1) {\n ids.push(area.sets[0]);\n } else if (area.sets.length == 2) {\n a = area.sets[0];\n b = area.sets[1];\n pairs[[a, b]] = true;\n pairs[[b, a]] = true;\n }\n }\n ids.sort(function(a, b) { return a > b; });\n\n for (i = 0; i < ids.length; ++i) {\n a = ids[i];\n for (j = i + 1; j < ids.length; ++j) {\n b = ids[j];\n if (!([a, b] in pairs)) {\n areas.push({'sets': [a, b],\n 'size': 0});\n }\n }\n }\n return areas;\n}\n\n/// Returns two matrices, one of the euclidean distances between the sets\n/// and the other indicating if there are subset or disjoint set relationships\nexport function getDistanceMatrices(areas, sets, setids) {\n // initialize an empty distance matrix between all the points\n var distances = zerosM(sets.length, sets.length),\n constraints = zerosM(sets.length, sets.length);\n\n // compute required distances between all the sets such that\n // the areas match\n areas.filter(function(x) { return x.sets.length == 2; })\n .map(function(current) {\n var left = setids[current.sets[0]],\n right = setids[current.sets[1]],\n r1 = Math.sqrt(sets[left].size / Math.PI),\n r2 = Math.sqrt(sets[right].size / Math.PI),\n distance = distanceFromIntersectArea(r1, r2, current.size);\n\n distances[left][right] = distances[right][left] = distance;\n\n // also update constraints to indicate if its a subset or disjoint\n // relationship\n var c = 0;\n if (current.size + 1e-10 >= Math.min(sets[left].size,\n sets[right].size)) {\n c = 1;\n } else if (current.size <= 1e-10) {\n c = -1;\n }\n constraints[left][right] = constraints[right][left] = c;\n });\n\n return {distances: distances, constraints: constraints};\n}\n\n/// computes the gradient and loss simulatenously for our constrained MDS optimizer\nfunction constrainedMDSGradient(x, fxprime, distances, constraints) {\n var loss = 0, i;\n for (i = 0; i < fxprime.length; ++i) {\n fxprime[i] = 0;\n }\n\n for (i = 0; i < distances.length; ++i) {\n var xi = x[2 * i], yi = x[2 * i + 1];\n for (var j = i + 1; j < distances.length; ++j) {\n var xj = x[2 * j], yj = x[2 * j + 1],\n dij = distances[i][j],\n constraint = constraints[i][j];\n\n var squaredDistance = (xj - xi) * (xj - xi) + (yj - yi) * (yj - yi),\n distance = Math.sqrt(squaredDistance),\n delta = squaredDistance - dij * dij;\n\n if (((constraint > 0) && (distance <= dij)) ||\n ((constraint < 0) && (distance >= dij))) {\n continue;\n }\n\n loss += 2 * delta * delta;\n\n fxprime[2*i] += 4 * delta * (xi - xj);\n fxprime[2*i + 1] += 4 * delta * (yi - yj);\n\n fxprime[2*j] += 4 * delta * (xj - xi);\n fxprime[2*j + 1] += 4 * delta * (yj - yi);\n }\n }\n return loss;\n}\n\n/// takes the best working variant of either constrained MDS or greedy\nexport function bestInitialLayout(areas, params) {\n var initial = greedyLayout(areas, params);\n var loss = params.lossFunction || lossFunction;\n\n // greedylayout is sufficient for all 2/3 circle cases. try out\n // constrained MDS for higher order problems, take its output\n // if it outperforms. (greedy is aesthetically better on 2/3 circles\n // since it axis aligns)\n if (areas.length >= 8) {\n var constrained = constrainedMDSLayout(areas, params),\n constrainedLoss = loss(constrained, areas),\n greedyLoss = loss(initial, areas);\n\n if (constrainedLoss + 1e-8 < greedyLoss) {\n initial = constrained;\n }\n }\n return initial;\n}\n\n/// use the constrained MDS variant to generate an initial layout\nexport function constrainedMDSLayout(areas, params) {\n params = params || {};\n var restarts = params.restarts || 10;\n\n // bidirectionally map sets to a rowid (so we can create a matrix)\n var sets = [], setids = {}, i;\n for (i = 0; i < areas.length; ++i ) {\n var area = areas[i];\n if (area.sets.length == 1) {\n setids[area.sets[0]] = sets.length;\n sets.push(area);\n }\n }\n\n var matrices = getDistanceMatrices(areas, sets, setids),\n distances = matrices.distances,\n constraints = matrices.constraints;\n\n // keep distances bounded, things get messed up otherwise.\n // TODO: proper preconditioner?\n var norm = norm2(distances.map(norm2))/(distances.length);\n distances = distances.map(function (row) {\n return row.map(function (value) { return value / norm; });});\n\n var obj = function(x, fxprime) {\n return constrainedMDSGradient(x, fxprime, distances, constraints);\n };\n\n var best, current;\n for (i = 0; i < restarts; ++i) {\n var initial = zeros(distances.length*2).map(Math.random);\n\n current = conjugateGradient(obj, initial, params);\n if (!best || (current.fx < best.fx)) {\n best = current;\n }\n }\n var positions = best.x;\n\n // translate rows back to (x,y,radius) coordinates\n var circles = {};\n for (i = 0; i < sets.length; ++i) {\n var set = sets[i];\n circles[set.sets[0]] = {\n x: positions[2*i] * norm,\n y: positions[2*i + 1] * norm,\n radius: Math.sqrt(set.size / Math.PI)\n };\n }\n\n if (params.history) {\n for (i = 0; i < params.history.length; ++i) {\n scale(params.history[i].x, norm);\n }\n }\n return circles;\n}\n\n/** Lays out a Venn diagram greedily, going from most overlapped sets to\nleast overlapped, attempting to position each new set such that the\noverlapping areas to already positioned sets are basically right */\nexport function greedyLayout(areas, params) {\n var loss = params && params.lossFunction ? params.lossFunction : lossFunction;\n // define a circle for each set\n var circles = {}, setOverlaps = {}, set;\n for (var i = 0; i < areas.length; ++i) {\n var area = areas[i];\n if (area.sets.length == 1) {\n set = area.sets[0];\n circles[set] = {x: 1e10, y: 1e10,\n rowid: circles.length,\n size: area.size,\n radius: Math.sqrt(area.size / Math.PI)};\n setOverlaps[set] = [];\n }\n }\n areas = areas.filter(function(a) { return a.sets.length == 2; });\n\n // map each set to a list of all the other sets that overlap it\n for (i = 0; i < areas.length; ++i) {\n var current = areas[i];\n var weight = current.hasOwnProperty('weight') ? current.weight : 1.0;\n var left = current.sets[0], right = current.sets[1];\n\n // completely overlapped circles shouldn't be positioned early here\n if (current.size + SMALL >= Math.min(circles[left].size,\n circles[right].size)) {\n weight = 0;\n }\n\n setOverlaps[left].push ({set:right, size:current.size, weight:weight});\n setOverlaps[right].push({set:left, size:current.size, weight:weight});\n }\n\n // get list of most overlapped sets\n var mostOverlapped = [];\n for (set in setOverlaps) {\n if (setOverlaps.hasOwnProperty(set)) {\n var size = 0;\n for (i = 0; i < setOverlaps[set].length; ++i) {\n size += setOverlaps[set][i].size * setOverlaps[set][i].weight;\n }\n\n mostOverlapped.push({set: set, size:size});\n }\n }\n\n // sort by size desc\n function sortOrder(a,b) {\n return b.size - a.size;\n }\n mostOverlapped.sort(sortOrder);\n\n // keep track of what sets have been laid out\n var positioned = {};\n function isPositioned(element) {\n return element.set in positioned;\n }\n\n // adds a point to the output\n function positionSet(point, index) {\n circles[index].x = point.x;\n circles[index].y = point.y;\n positioned[index] = true;\n }\n\n // add most overlapped set at (0,0)\n positionSet({x: 0, y: 0}, mostOverlapped[0].set);\n\n // get distances between all points. TODO, necessary?\n // answer: probably not\n // var distances = venn.getDistanceMatrices(circles, areas).distances;\n for (i = 1; i < mostOverlapped.length; ++i) {\n var setIndex = mostOverlapped[i].set,\n overlap = setOverlaps[setIndex].filter(isPositioned);\n set = circles[setIndex];\n overlap.sort(sortOrder);\n\n if (overlap.length === 0) {\n // this shouldn't happen anymore with addMissingAreas\n throw \"ERROR: missing pairwise overlap information\";\n }\n\n var points = [];\n for (var j = 0; j < overlap.length; ++j) {\n // get appropriate distance from most overlapped already added set\n var p1 = circles[overlap[j].set],\n d1 = distanceFromIntersectArea(set.radius, p1.radius,\n overlap[j].size);\n\n // sample positions at 90 degrees for maximum aesthetics\n points.push({x : p1.x + d1, y : p1.y});\n points.push({x : p1.x - d1, y : p1.y});\n points.push({y : p1.y + d1, x : p1.x});\n points.push({y : p1.y - d1, x : p1.x});\n\n // if we have at least 2 overlaps, then figure out where the\n // set should be positioned analytically and try those too\n for (var k = j + 1; k < overlap.length; ++k) {\n var p2 = circles[overlap[k].set],\n d2 = distanceFromIntersectArea(set.radius, p2.radius,\n overlap[k].size);\n\n var extraPoints = circleCircleIntersection(\n { x: p1.x, y: p1.y, radius: d1},\n { x: p2.x, y: p2.y, radius: d2});\n\n for (var l = 0; l < extraPoints.length; ++l) {\n points.push(extraPoints[l]);\n }\n }\n }\n\n // we have some candidate positions for the set, examine loss\n // at each position to figure out where to put it at\n var bestLoss = 1e50, bestPoint = points[0];\n for (j = 0; j < points.length; ++j) {\n circles[setIndex].x = points[j].x;\n circles[setIndex].y = points[j].y;\n var localLoss = loss(circles, areas);\n if (localLoss < bestLoss) {\n bestLoss = localLoss;\n bestPoint = points[j];\n }\n }\n\n positionSet(bestPoint, setIndex);\n }\n\n return circles;\n}\n\n/** Given a bunch of sets, and the desired overlaps between these sets - computes\nthe distance from the actual overlaps to the desired overlaps. Note that\nthis method ignores overlaps of more than 2 circles */\nexport function lossFunction(sets, overlaps) {\n var output = 0;\n\n function getCircles(indices) {\n return indices.map(function(i) { return sets[i]; });\n }\n\n for (var i = 0; i < overlaps.length; ++i) {\n var area = overlaps[i], overlap;\n if (area.sets.length == 1) {\n continue;\n } else if (area.sets.length == 2) {\n var left = sets[area.sets[0]],\n right = sets[area.sets[1]];\n overlap = circleOverlap(left.radius, right.radius,\n distance(left, right));\n } else {\n overlap = intersectionArea(getCircles(area.sets));\n }\n\n var weight = area.hasOwnProperty('weight') ? area.weight : 1.0;\n output += weight * (overlap - area.size) * (overlap - area.size);\n }\n\n return output;\n}\n\n// orientates a bunch of circles to point in orientation\nfunction orientateCircles(circles, orientation, orientationOrder) {\n if (orientationOrder === null) {\n circles.sort(function (a, b) { return b.radius - a.radius; });\n } else {\n circles.sort(orientationOrder);\n }\n\n var i;\n // shift circles so largest circle is at (0, 0)\n if (circles.length > 0) {\n var largestX = circles[0].x,\n largestY = circles[0].y;\n\n for (i = 0; i < circles.length; ++i) {\n circles[i].x -= largestX;\n circles[i].y -= largestY;\n }\n }\n\n if (circles.length == 2) {\n // if the second circle is a subset of the first, arrange so that\n // it is off to one side. hack for https://github.com/benfred/venn.js/issues/120\n var dist = distance(circles[0], circles[1]);\n if (dist < Math.abs(circles[1].radius - circles[0].radius)) {\n circles[1].x = circles[0].x + circles[0].radius - circles[1].radius - 1e-10;\n circles[1].y = circles[0].y;\n }\n }\n\n // rotate circles so that second largest is at an angle of 'orientation'\n // from largest\n if (circles.length > 1) {\n var rotation = Math.atan2(circles[1].x, circles[1].y) - orientation,\n c = Math.cos(rotation),\n s = Math.sin(rotation), x, y;\n\n for (i = 0; i < circles.length; ++i) {\n x = circles[i].x;\n y = circles[i].y;\n circles[i].x = c * x - s * y;\n circles[i].y = s * x + c * y;\n }\n }\n\n // mirror solution if third solution is above plane specified by\n // first two circles\n if (circles.length > 2) {\n var angle = Math.atan2(circles[2].x, circles[2].y) - orientation;\n while (angle < 0) { angle += 2* Math.PI; }\n while (angle > 2*Math.PI) { angle -= 2* Math.PI; }\n if (angle > Math.PI) {\n var slope = circles[1].y / (1e-10 + circles[1].x);\n for (i = 0; i < circles.length; ++i) {\n var d = (circles[i].x + slope * circles[i].y) / (1 + slope*slope);\n circles[i].x = 2 * d - circles[i].x;\n circles[i].y = 2 * d * slope - circles[i].y;\n }\n }\n }\n}\n\nexport function disjointCluster(circles) {\n // union-find clustering to get disjoint sets\n circles.map(function(circle) { circle.parent = circle; });\n\n // path compression step in union find\n function find(circle) {\n if (circle.parent !== circle) {\n circle.parent = find(circle.parent);\n }\n return circle.parent;\n }\n\n function union(x, y) {\n var xRoot = find(x), yRoot = find(y);\n xRoot.parent = yRoot;\n }\n\n // get the union of all overlapping sets\n for (var i = 0; i < circles.length; ++i) {\n for (var j = i + 1; j < circles.length; ++j) {\n var maxDistance = circles[i].radius + circles[j].radius;\n if (distance(circles[i], circles[j]) + 1e-10 < maxDistance) {\n union(circles[j], circles[i]);\n }\n }\n }\n\n // find all the disjoint clusters and group them together\n var disjointClusters = {}, setid;\n for (i = 0; i < circles.length; ++i) {\n setid = find(circles[i]).parent.setid;\n if (!(setid in disjointClusters)) {\n disjointClusters[setid] = [];\n }\n disjointClusters[setid].push(circles[i]);\n }\n\n // cleanup bookkeeping\n circles.map(function(circle) { delete circle.parent; });\n\n // return in more usable form\n var ret = [];\n for (setid in disjointClusters) {\n if (disjointClusters.hasOwnProperty(setid)) {\n ret.push(disjointClusters[setid]);\n }\n }\n return ret;\n}\n\nfunction getBoundingBox(circles) {\n var minMax = function(d) {\n var hi = Math.max.apply(null, circles.map(\n function(c) { return c[d] + c.radius; } )),\n lo = Math.min.apply(null, circles.map(\n function(c) { return c[d] - c.radius;} ));\n return {max:hi, min:lo};\n };\n\n return {xRange: minMax('x'), yRange: minMax('y')};\n}\n\nexport function normalizeSolution(solution, orientation, orientationOrder) {\n if (orientation === null){\n orientation = Math.PI/2;\n }\n\n // work with a list instead of a dictionary, and take a copy so we\n // don't mutate input\n var circles = [], i, setid;\n for (setid in solution) {\n if (solution.hasOwnProperty(setid)) {\n var previous = solution[setid];\n circles.push({x: previous.x,\n y: previous.y,\n radius: previous.radius,\n setid: setid});\n }\n }\n\n // get all the disjoint clusters\n var clusters = disjointCluster(circles);\n\n // orientate all disjoint sets, get sizes\n for (i = 0; i < clusters.length; ++i) {\n orientateCircles(clusters[i], orientation, orientationOrder);\n var bounds = getBoundingBox(clusters[i]);\n clusters[i].size = (bounds.xRange.max - bounds.xRange.min) * (bounds.yRange.max - bounds.yRange.min);\n clusters[i].bounds = bounds;\n }\n clusters.sort(function(a, b) { return b.size - a.size; });\n\n // orientate the largest at 0,0, and get the bounds\n circles = clusters[0];\n var returnBounds = circles.bounds;\n\n var spacing = (returnBounds.xRange.max - returnBounds.xRange.min)/50;\n\n function addCluster(cluster, right, bottom) {\n if (!cluster) return;\n\n var bounds = cluster.bounds, xOffset, yOffset, centreing;\n\n if (right) {\n xOffset = returnBounds.xRange.max - bounds.xRange.min + spacing;\n } else {\n xOffset = returnBounds.xRange.max - bounds.xRange.max;\n centreing = (bounds.xRange.max - bounds.xRange.min) / 2 -\n (returnBounds.xRange.max - returnBounds.xRange.min) / 2;\n if (centreing < 0) xOffset += centreing;\n }\n\n if (bottom) {\n yOffset = returnBounds.yRange.max - bounds.yRange.min + spacing;\n } else {\n yOffset = returnBounds.yRange.max - bounds.yRange.max;\n centreing = (bounds.yRange.max - bounds.yRange.min) / 2 -\n (returnBounds.yRange.max - returnBounds.yRange.min) / 2;\n if (centreing < 0) yOffset += centreing;\n }\n\n for (var j = 0; j < cluster.length; ++j) {\n cluster[j].x += xOffset;\n cluster[j].y += yOffset;\n circles.push(cluster[j]);\n }\n }\n\n var index = 1;\n while (index < clusters.length) {\n addCluster(clusters[index], true, false);\n addCluster(clusters[index+1], false, true);\n addCluster(clusters[index+2], true, true);\n index += 3;\n\n // have one cluster (in top left). lay out next three relative\n // to it in a grid\n returnBounds = getBoundingBox(circles);\n }\n\n // convert back to solution form\n var ret = {};\n for (i = 0; i < circles.length; ++i) {\n ret[circles[i].setid] = circles[i];\n }\n return ret;\n}\n\n/** Scales a solution from venn.venn or venn.greedyLayout such that it fits in\na rectangle of width/height - with padding around the borders. also\ncenters the diagram in the available space at the same time */\nexport function scaleSolution(solution, width, height, padding) {\n var circles = [], setids = [];\n for (var setid in solution) {\n if (solution.hasOwnProperty(setid)) {\n setids.push(setid);\n circles.push(solution[setid]);\n }\n }\n\n width -= 2*padding;\n height -= 2*padding;\n\n var bounds = getBoundingBox(circles),\n xRange = bounds.xRange,\n yRange = bounds.yRange;\n\n if ((xRange.max == xRange.min) ||\n (yRange.max == yRange.min)) {\n console.log(\"not scaling solution: zero size detected\");\n return solution;\n }\n\n var xScaling = width / (xRange.max - xRange.min),\n yScaling = height / (yRange.max - yRange.min),\n scaling = Math.min(yScaling, xScaling),\n\n // while we're at it, center the diagram too\n xOffset = (width - (xRange.max - xRange.min) * scaling) / 2,\n yOffset = (height - (yRange.max - yRange.min) * scaling) / 2;\n\n var scaled = {};\n for (var i = 0; i < circles.length; ++i) {\n var circle = circles[i];\n scaled[setids[i]] = {\n radius: scaling * circle.radius,\n x: padding + xOffset + (circle.x - xRange.min) * scaling,\n y: padding + yOffset + (circle.y - yRange.min) * scaling,\n };\n }\n\n return scaled;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/layout.js\n// module id = null\n// module chunks = ","/** finds the zeros of a function, given two starting points (which must\n * have opposite signs */\nexport function bisect(f, a, b, parameters) {\n parameters = parameters || {};\n var maxIterations = parameters.maxIterations || 100,\n tolerance = parameters.tolerance || 1e-10,\n fA = f(a),\n fB = f(b),\n delta = b - a;\n\n if (fA * fB > 0) {\n throw \"Initial bisect points must have opposite signs\";\n }\n\n if (fA === 0) return a;\n if (fB === 0) return b;\n\n for (var i = 0; i < maxIterations; ++i) {\n delta /= 2;\n var mid = a + delta,\n fMid = f(mid);\n\n if (fMid * fA >= 0) {\n a = mid;\n }\n\n if ((Math.abs(delta) < tolerance) || (fMid === 0)) {\n return mid;\n }\n }\n return a + delta;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/fmin/bisect.js\n// module id = null\n// module chunks = ","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespaces.js","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespace.js","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/creator.js","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selector.js","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/array.js","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selectorAll.js","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectAll.js","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/matcher.js","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectChild.js","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectChildren.js","export default function(update) {\n return new Array(update.length);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sparse.js","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/enter.js","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/data.js","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sort.js","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/attr.js","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/window.js","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/style.js","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/classed.js","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/text.js","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/html.js","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/raise.js","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/lower.js","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/insert.js","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/remove.js","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/clone.js","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/on.js","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/dispatch.js","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/iterator.js","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/index.js","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/select.js","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/filter.js","export default function(x) {\n return function() {\n return x;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/constant.js","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/exit.js","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/join.js","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/merge.js","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/order.js","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/call.js","export default function() {\n return Array.from(this);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/nodes.js","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/node.js","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/size.js","export default function() {\n return !this.node();\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/empty.js","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/each.js","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/property.js","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/append.js","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/datum.js","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/local.js","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/sourceEvent.js","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/schedule.js","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/interrupt.js","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/define.js","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/color.js","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/math.js","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/lab.js","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/node_modules/d3-color/src/cubehelix.js","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basis.js","export default x => () => x;\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/constant.js","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/color.js","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/rgb.js","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basisClosed.js","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/date.js","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/number.js","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/object.js","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/string.js","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/value.js","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/parse.js","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/decompose.js","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/index.js","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/zoom.js","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hsl.js","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hcl.js","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/cubehelix.js","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/tween.js","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/define.js","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/color.js","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/math.js","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/lab.js","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/node_modules/d3-color/src/cubehelix.js","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/interpolate.js","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/remove.js","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selection.js","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/style.js","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/index.js","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/select.js","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selectAll.js","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/filter.js","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/merge.js","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/transition.js","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/on.js","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attr.js","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attrTween.js","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/styleTween.js","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/text.js","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/textTween.js","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/delay.js","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/duration.js","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/ease.js","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/easeVarying.js","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/end.js","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/poly.js","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/sin.js","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/math.js","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/back.js","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/elastic.js","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/transition.js","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/cubic.js","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/index.js","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/interrupt.js","import {select, selectAll} from \"d3-selection\";\nimport {transition} from \"d3-transition\";\n\nimport {venn, lossFunction, normalizeSolution, scaleSolution} from \"./layout\";\nimport {intersectionArea, distance, getCenter} from \"./circleintersection\";\nimport {nelderMead} from \"./fmin/index.js\";\n\n/*global console:true*/\n\nexport function VennDiagram() {\n var width = 600,\n height = 350,\n padding = 15,\n duration = 1000,\n orientation = Math.PI / 2,\n normalize = true,\n wrap = true,\n styled = true,\n fontSize = null,\n orientationOrder = null,\n\n // mimic the behaviour of d3.scale.category10 from the previous\n // version of d3\n colourMap = {},\n\n // so this is the same as d3.schemeCategory10, which is only defined in d3 4.0\n // since we can support older versions of d3 as long as we don't force this,\n // I'm hackily redefining below. TODO: remove this and change to d3.schemeCategory10\n colourScheme = [\"#1f77b4\", \"#ff7f0e\", \"#2ca02c\", \"#d62728\", \"#9467bd\", \"#8c564b\", \"#e377c2\", \"#7f7f7f\", \"#bcbd22\", \"#17becf\"],\n colourIndex = 0,\n colours = function(key) {\n if (key in colourMap) {\n return colourMap[key];\n }\n var ret = colourMap[key] = colourScheme[colourIndex];\n colourIndex += 1;\n if (colourIndex >= colourScheme.length) {\n colourIndex = 0;\n }\n return ret;\n },\n layoutFunction = venn,\n loss = lossFunction;\n\n\n function chart(selection) {\n var data = selection.datum();\n\n // handle 0-sized sets by removing from input\n var toremove = {};\n data.forEach(function(datum) {\n if ((datum.size == 0) && datum.sets.length == 1) {\n toremove[datum.sets[0]] = 1;\n }\n });\n data = data.filter(function(datum) {\n return !datum.sets.some(function(set) { return set in toremove; });\n });\n\n var circles = {};\n var textCentres = {};\n\n if (data.length > 0) {\n var solution = layoutFunction(data, {lossFunction: loss});\n\n if (normalize) {\n solution = normalizeSolution(solution,\n orientation,\n orientationOrder);\n }\n\n circles = scaleSolution(solution, width, height, padding);\n textCentres = computeTextCentres(circles, data);\n }\n\n // Figure out the current label for each set. These can change\n // and D3 won't necessarily update (fixes https://github.com/benfred/venn.js/issues/103)\n var labels = {};\n data.forEach(function(datum) {\n if (datum.label) {\n labels[datum.sets] = datum.label;\n }\n });\n\n function label(d) {\n if (d.sets in labels) {\n return labels[d.sets];\n }\n if (d.sets.length == 1) {\n return '' + d.sets[0];\n }\n }\n\n // create svg if not already existing\n selection.selectAll(\"svg\").data([circles]).enter().append(\"svg\");\n\n var svg = selection.select(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n // to properly transition intersection areas, we need the\n // previous circles locations. load from elements\n var previous = {}, hasPrevious = false;\n svg.selectAll(\".venn-area path\").each(function (d) {\n var path = select(this).attr(\"d\");\n if ((d.sets.length == 1) && path) {\n hasPrevious = true;\n previous[d.sets[0]] = circleFromPath(path);\n }\n });\n\n // interpolate intersection area paths between previous and\n // current paths\n var pathTween = function(d) {\n return function(t) {\n var c = d.sets.map(function(set) {\n var start = previous[set], end = circles[set];\n if (!start) {\n start = {x : width/2, y : height/2, radius : 1};\n }\n if (!end) {\n end = {x : width/2, y : height/2, radius : 1};\n }\n return {'x' : start.x * (1 - t) + end.x * t,\n 'y' : start.y * (1 - t) + end.y * t,\n 'radius' : start.radius * (1 - t) + end.radius * t};\n });\n return intersectionAreaPath(c);\n };\n };\n\n // update data, joining on the set ids\n var nodes = svg.selectAll(\".venn-area\")\n .data(data, function(d) { return d.sets; });\n\n // create new nodes\n var enter = nodes.enter()\n .append('g')\n .attr(\"class\", function(d) {\n return \"venn-area venn-\" +\n (d.sets.length == 1 ? \"circle\" : \"intersection\");\n })\n .attr(\"data-venn-sets\", function(d) {\n return d.sets.join(\"_\");\n });\n\n var enterPath = enter.append(\"path\"),\n enterText = enter.append(\"text\")\n .attr(\"class\", \"label\")\n .text(function (d) { return label(d); } )\n .attr(\"text-anchor\", \"middle\")\n .attr(\"dy\", \".35em\")\n .attr(\"x\", width/2)\n .attr(\"y\", height/2);\n\n\n // apply minimal style if wanted\n if (styled) {\n enterPath.style(\"fill-opacity\", \"0\")\n .filter(function (d) { return d.sets.length == 1; } )\n .style(\"fill\", function(d) { return colours(d.sets); })\n .style(\"fill-opacity\", \".25\");\n\n enterText\n .style(\"fill\", function(d) { return d.sets.length == 1 ? colours(d.sets) : \"#444\"; });\n }\n\n // update existing, using pathTween if necessary\n var update = selection;\n if (hasPrevious) {\n update = selection.transition(\"venn\").duration(duration);\n update.selectAll(\"path\")\n .attrTween(\"d\", pathTween);\n } else {\n update.selectAll(\"path\")\n .attr(\"d\", function(d) {\n return intersectionAreaPath(d.sets.map(function (set) { return circles[set]; }));\n });\n }\n\n var updateText = update.selectAll(\"text\")\n .filter(function (d) { return d.sets in textCentres; })\n .text(function (d) { return label(d); } )\n .attr(\"x\", function(d) { return Math.floor(textCentres[d.sets].x);})\n .attr(\"y\", function(d) { return Math.floor(textCentres[d.sets].y);});\n\n if (wrap) {\n if (hasPrevious) {\n // d3 4.0 uses 'on' for events on transitions,\n // but d3 3.0 used 'each' instead. switch appropiately\n if ('on' in updateText) {\n updateText.on(\"end\", wrapText(circles, label));\n } else {\n updateText.each(\"end\", wrapText(circles, label));\n }\n } else {\n updateText.each(wrapText(circles, label));\n }\n }\n\n // remove old\n var exit = nodes.exit().transition('venn').duration(duration).remove();\n exit.selectAll(\"path\")\n .attrTween(\"d\", pathTween);\n\n var exitText = exit.selectAll(\"text\")\n .attr(\"x\", width/2)\n .attr(\"y\", height/2);\n\n // if we've been passed a fontSize explicitly, use it to\n // transition\n if (fontSize !== null) {\n enterText.style(\"font-size\", \"0px\");\n updateText.style(\"font-size\", fontSize);\n exitText.style(\"font-size\", \"0px\");\n }\n\n\n return {'circles': circles,\n 'textCentres': textCentres,\n 'nodes': nodes,\n 'enter': enter,\n 'update': update,\n 'exit': exit};\n }\n\n chart.wrap = function(_) {\n if (!arguments.length) return wrap;\n wrap = _;\n return chart;\n };\n\n chart.width = function(_) {\n if (!arguments.length) return width;\n width = _;\n return chart;\n };\n\n chart.height = function(_) {\n if (!arguments.length) return height;\n height = _;\n return chart;\n };\n\n chart.padding = function(_) {\n if (!arguments.length) return padding;\n padding = _;\n return chart;\n };\n\n chart.colours = function(_) {\n if (!arguments.length) return colours;\n colours = _;\n return chart;\n };\n\n chart.fontSize = function(_) {\n if (!arguments.length) return fontSize;\n fontSize = _;\n return chart;\n };\n\n chart.duration = function(_) {\n if (!arguments.length) return duration;\n duration = _;\n return chart;\n };\n\n chart.layoutFunction = function(_) {\n if (!arguments.length) return layoutFunction;\n layoutFunction = _;\n return chart;\n };\n\n chart.normalize = function(_) {\n if (!arguments.length) return normalize;\n normalize = _;\n return chart;\n };\n\n chart.styled = function(_) {\n if (!arguments.length) return styled;\n styled = _;\n return chart;\n };\n\n chart.orientation = function(_) {\n if (!arguments.length) return orientation;\n orientation = _;\n return chart;\n };\n\n chart.orientationOrder = function(_) {\n if (!arguments.length) return orientationOrder;\n orientationOrder = _;\n return chart;\n };\n\n chart.lossFunction = function(_) {\n if (!arguments.length) return loss;\n loss = _;\n return chart;\n };\n\n return chart;\n}\n// sometimes text doesn't fit inside the circle, if thats the case lets wrap\n// the text here such that it fits\n// todo: looks like this might be merged into d3 (\n// https://github.com/mbostock/d3/issues/1642),\n// also worth checking out is\n// http://engineering.findthebest.com/wrapping-axis-labels-in-d3-js/\n// this seems to be one of those things that should be easy but isn't\nexport function wrapText(circles, labeller) {\n return function() {\n var text = select(this),\n data = text.datum(),\n width = circles[data.sets[0]].radius || 50,\n label = labeller(data) || '';\n\n var words = label.split(/\\s+/).reverse(),\n maxLines = 3,\n minChars = (label.length + words.length) / maxLines,\n word = words.pop(),\n line = [word],\n joined,\n lineNumber = 0,\n lineHeight = 1.1, // ems\n tspan = text.text(null).append(\"tspan\").text(word);\n\n while (true) {\n word = words.pop();\n if (!word) break;\n line.push(word);\n joined = line.join(\" \");\n tspan.text(joined);\n if (joined.length > minChars && tspan.node().getComputedTextLength() > width) {\n line.pop();\n tspan.text(line.join(\" \"));\n line = [word];\n tspan = text.append(\"tspan\").text(word);\n lineNumber++;\n }\n }\n\n var initial = 0.35 - lineNumber * lineHeight / 2,\n x = text.attr(\"x\"),\n y = text.attr(\"y\");\n\n text.selectAll(\"tspan\")\n .attr(\"x\", x)\n .attr(\"y\", y)\n .attr(\"dy\", function(d, i) {\n return (initial + i * lineHeight) + \"em\";\n });\n };\n}\n\nfunction circleMargin(current, interior, exterior) {\n var margin = interior[0].radius - distance(interior[0], current), i, m;\n for (i = 1; i < interior.length; ++i) {\n m = interior[i].radius - distance(interior[i], current);\n if (m <= margin) {\n margin = m;\n }\n }\n\n for (i = 0; i < exterior.length; ++i) {\n m = distance(exterior[i], current) - exterior[i].radius;\n if (m <= margin) {\n margin = m;\n }\n }\n return margin;\n}\n\n// compute the center of some circles by maximizing the margin of\n// the center point relative to the circles (interior) after subtracting\n// nearby circles (exterior)\nexport function computeTextCentre(interior, exterior) {\n // get an initial estimate by sampling around the interior circles\n // and taking the point with the biggest margin\n var points = [], i;\n for (i = 0; i < interior.length; ++i) {\n var c = interior[i];\n points.push({x: c.x, y: c.y});\n points.push({x: c.x + c.radius/2, y: c.y});\n points.push({x: c.x - c.radius/2, y: c.y});\n points.push({x: c.x, y: c.y + c.radius/2});\n points.push({x: c.x, y: c.y - c.radius/2});\n }\n var initial = points[0], margin = circleMargin(points[0], interior, exterior);\n for (i = 1; i < points.length; ++i) {\n var m = circleMargin(points[i], interior, exterior);\n if (m >= margin) {\n initial = points[i];\n margin = m;\n }\n }\n\n // maximize the margin numerically\n var solution = nelderMead(\n function(p) { return -1 * circleMargin({x: p[0], y: p[1]}, interior, exterior); },\n [initial.x, initial.y],\n {maxIterations:500, minErrorDelta:1e-10}).x;\n var ret = {x: solution[0], y: solution[1]};\n\n // check solution, fallback as needed (happens if fully overlapped\n // etc)\n var valid = true;\n for (i = 0; i < interior.length; ++i) {\n if (distance(ret, interior[i]) > interior[i].radius) {\n valid = false;\n break;\n }\n }\n\n for (i = 0; i < exterior.length; ++i) {\n if (distance(ret, exterior[i]) < exterior[i].radius) {\n valid = false;\n break;\n }\n }\n\n if (!valid) {\n if (interior.length == 1) {\n ret = {x: interior[0].x, y: interior[0].y};\n } else {\n var areaStats = {};\n intersectionArea(interior, areaStats);\n\n if (areaStats.arcs.length === 0) {\n ret = {'x': 0, 'y': -1000, disjoint:true};\n\n } else if (areaStats.arcs.length == 1) {\n ret = {'x': areaStats.arcs[0].circle.x,\n 'y': areaStats.arcs[0].circle.y};\n\n } else if (exterior.length) {\n // try again without other circles\n ret = computeTextCentre(interior, []);\n\n } else {\n // take average of all the points in the intersection\n // polygon. this should basically never happen\n // and has some issues:\n // https://github.com/benfred/venn.js/issues/48#issuecomment-146069777\n ret = getCenter(areaStats.arcs.map(function (a) { return a.p1; }));\n }\n }\n }\n\n return ret;\n}\n\n// given a dictionary of {setid : circle}, returns\n// a dictionary of setid to list of circles that completely overlap it\nfunction getOverlappingCircles(circles) {\n var ret = {}, circleids = [];\n for (var circleid in circles) {\n circleids.push(circleid);\n ret[circleid] = [];\n }\n for (var i = 0; i < circleids.length; i++) {\n var a = circles[circleids[i]];\n for (var j = i + 1; j < circleids.length; ++j) {\n var b = circles[circleids[j]],\n d = distance(a, b);\n\n if (d + b.radius <= a.radius + 1e-10) {\n ret[circleids[j]].push(circleids[i]);\n\n } else if (d + a.radius <= b.radius + 1e-10) {\n ret[circleids[i]].push(circleids[j]);\n }\n }\n }\n return ret;\n}\n\nexport function computeTextCentres(circles, areas) {\n var ret = {}, overlapped = getOverlappingCircles(circles);\n for (var i = 0; i < areas.length; ++i) {\n var area = areas[i].sets, areaids = {}, exclude = {};\n for (var j = 0; j < area.length; ++j) {\n areaids[area[j]] = true;\n var overlaps = overlapped[area[j]];\n // keep track of any circles that overlap this area,\n // and don't consider for purposes of computing the text\n // centre\n for (var k = 0; k < overlaps.length; ++k) {\n exclude[overlaps[k]] = true;\n }\n }\n\n var interior = [], exterior = [];\n for (var setid in circles) {\n if (setid in areaids) {\n interior.push(circles[setid]);\n } else if (!(setid in exclude)) {\n exterior.push(circles[setid]);\n }\n }\n var centre = computeTextCentre(interior, exterior);\n ret[area] = centre;\n if (centre.disjoint && (areas[i].size > 0)) {\n console.log(\"WARNING: area \" + area + \" not represented on screen\");\n }\n }\n return ret;\n}\n\n// sorts all areas in the venn diagram, so that\n// a particular area is on top (relativeTo) - and\n// all other areas are so that the smallest areas are on top\nexport function sortAreas(div, relativeTo) {\n\n // figure out sets that are completly overlapped by relativeTo\n var overlaps = getOverlappingCircles(div.selectAll(\"svg\").datum());\n var exclude = {};\n for (var i = 0; i < relativeTo.sets.length; ++i) {\n var check = relativeTo.sets[i];\n for (var setid in overlaps) {\n var overlap = overlaps[setid];\n for (var j = 0; j < overlap.length; ++j) {\n if (overlap[j] == check) {\n exclude[setid] = true;\n break;\n }\n }\n }\n }\n\n // checks that all sets are in exclude;\n function shouldExclude(sets) {\n for (var i = 0; i < sets.length; ++i) {\n if (!(sets[i] in exclude)) {\n return false;\n }\n }\n return true;\n }\n\n // need to sort div's so that Z order is correct\n div.selectAll(\"g\").sort(function (a, b) {\n // highest order set intersections first\n if (a.sets.length != b.sets.length) {\n return a.sets.length - b.sets.length;\n }\n\n if (a == relativeTo) {\n return shouldExclude(b.sets) ? -1 : 1;\n }\n if (b == relativeTo) {\n return shouldExclude(a.sets) ? 1 : -1;\n }\n\n // finally by size\n return b.size - a.size;\n });\n}\n\nexport function circlePath(x, y, r) {\n var ret = [];\n ret.push(\"\\nM\", x, y);\n ret.push(\"\\nm\", -r, 0);\n ret.push(\"\\na\", r, r, 0, 1, 0, r *2, 0);\n ret.push(\"\\na\", r, r, 0, 1, 0,-r *2, 0);\n return ret.join(\" \");\n}\n\n// inverse of the circlePath function, returns a circle object from an svg path\nexport function circleFromPath(path) {\n var tokens = path.split(' ');\n return {'x' : parseFloat(tokens[1]),\n 'y' : parseFloat(tokens[2]),\n 'radius' : -parseFloat(tokens[4])\n };\n}\n\n/** returns a svg path of the intersection area of a bunch of circles */\nexport function intersectionAreaPath(circles) {\n var stats = {};\n intersectionArea(circles, stats);\n var arcs = stats.arcs;\n\n if (arcs.length === 0) {\n return \"M 0 0\";\n\n } else if (arcs.length == 1) {\n var circle = arcs[0].circle;\n return circlePath(circle.x, circle.y, circle.radius);\n\n } else {\n // draw path around arcs\n var ret = [\"\\nM\", arcs[0].p2.x, arcs[0].p2.y];\n for (var i = 0; i < arcs.length; ++i) {\n var arc = arcs[i], r = arc.circle.radius, wide = arc.width > r;\n ret.push(\"\\nA\", r, r, 0, wide ? 1 : 0, 1,\n arc.p1.x, arc.p1.y);\n }\n return ret.join(\" \");\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../es2015/.internal/venn.js/diagram.js\n// module id = null\n// module chunks = ","/**\r\n * Defines Venn Diagram Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPercentSeriesAdapters, IPercentSeriesDataFields, IPercentSeriesEvents, IPercentSeriesProperties, PercentSeries, PercentSeriesDataItem } from \"../../charts/series/PercentSeries\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { VennDiagram } from \"./VennDiagram\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as venn from \"../../venn.js/index.js\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[VennSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class VennSeriesDataItem extends PercentSeriesDataItem {\r\n\r\n\t/**\r\n\t * A type of slice used for this series.\r\n\t */\r\n\tpublic _slice: Sprite;\r\n\r\n\t/**\r\n\t * A reference to a label element.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: VennSeries;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic radius: number = 0;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"VennSeriesDataItem\";\r\n\t\t// this helps to invalidate series when value is 0 an it is hidden (no other events are triggered then)\r\n\t\tthis.events.on(\"visibilitychanged\", () => {\r\n\t\t\tif (this.component) {\r\n\t\t\t\t//this.component.invalidateDataItems();\r\n\t\t\t}\r\n\t\t}, this, false);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * List of categories this data item represents intersection of.\r\n\t *\r\n\t * @param value Array of intersecting categories\r\n\t */\r\n\tpublic set intersections(value: string[]) {\r\n\t\tthis.setProperty(\"intersections\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Array of intersecting categories\r\n\t */\r\n\tpublic get intersections(): string[] {\r\n\t\treturn this.properties.intersections;\r\n\t}\r\n\r\n\t/**\r\n\t * Hide the data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param toValue Target value for animation\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional {\r\n\r\n\t\tif (!this.intersections) {\r\n\t\t\tthis.component.dataItems.each((dataItem) => {\r\n\t\t\t\tif (dataItem != this && dataItem.intersections) {\r\n\t\t\t\t\tif (dataItem.intersections.indexOf(this.category) != -1) {\r\n\t\t\t\t\t\tdataItem.hide(duration, delay, toValue, fields);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn super.hide(duration, delay, toValue, fields);\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.invalidateProcessedData();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Show hidden data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional {\r\n\r\n\t\tif (!this.intersections) {\r\n\t\t\tthis.component.dataItems.each((dataItem) => {\r\n\t\t\t\tif (dataItem != this && dataItem.intersections) {\r\n\t\t\t\t\tif (dataItem.intersections.indexOf(this.category) != -1) {\r\n\t\t\t\t\t\tdataItem.show(duration, delay, fields);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn super.show(duration, delay, fields);\r\n\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.invalidateProcessedData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic animateRadius(toValue: number, duration: number, easing: (value: number) => number) {\r\n\t\tlet animation = this.animate({ property: \"radius\", to: toValue }, duration, easing);\r\n\t\tthis._disposers.push(animation);\r\n\t\tthis._disposers.push(animation.events.on(\"animationprogress\", (event) => {\r\n\t\t\tlet radius = this.radius\r\n\t\t\tlet path = $path.moveTo({ x: -radius, y: 0 });\r\n\t\t\tpath += $path.arcToPoint({ x: radius, y: 0 }, radius, radius, true);\r\n\t\t\tpath += $path.arcToPoint({ x: -radius, y: 0 }, radius, radius, true);\r\n\t\t\tthis.slice.path = path;\r\n\r\n\t\t\tif (this.slice.isHover) {\r\n\t\t\t\tthis.component.updateHoverSprite(this.slice);\r\n\t\t\t}\r\n\t\t}))\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[VennSeries]].\r\n */\r\nexport interface IVennSeriesDataFields extends IPercentSeriesDataFields {\r\n\r\n\t/**\r\n\t * A field that may hold an array of categories. If present, this data item\r\n\t * will represent an intersection of categories listed in an array.\r\n\t */\r\n\tintersections?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[VennSeries]].\r\n */\r\nexport interface IVennSeriesProperties extends IPercentSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[VennSeries]].\r\n */\r\nexport interface IVennSeriesEvents extends IPercentSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[VennSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IVennSeriesAdapters extends IPercentSeriesAdapters, IVennSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates Venn Diagram Series.\r\n *\r\n * Venn series uses Ben Frederickson's [venn.js](https://github.com/benfred/venn.js).\r\n *\r\n * @see {@link IVennSeriesEvents} for a list of available Events\r\n * @see {@link IVennSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/venn/} for documentation\r\n * @important\r\n * @since 4.9.0\r\n */\r\nexport class VennSeries extends PercentSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _slice: Sprite;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * A reference to chart this series is for.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _chart: VennDiagram;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IVennSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IVennSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IVennSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IVennSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: VennSeriesDataItem;\r\n\r\n\t/**\r\n\t * Holds sum of values for all slices.\r\n\t */\r\n\tprotected _total: number;\r\n\r\n\t/**\r\n\t * Holds number of slices.\r\n\t */\r\n\tprotected _count: number;\r\n\r\n\t/**\r\n\t * A sprite which is visible when slice is hovered.\r\n\t *\r\n\t * This sprite gets the path of a hovered slice so the shape is identical. It\r\n\t * helps create nice hover effect.\r\n\t */\r\n\tpublic hoverSprite: Sprite;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected vennData: string;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"VennSeries\";\r\n\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\t\tthis.layout = \"absolute\";\r\n\r\n\t\tthis.slicesContainer.width = percent(100);\r\n\t\tthis.slicesContainer.height = percent(100);\r\n\t\tthis.slicesContainer.layout = \"none\";\r\n\r\n\t\tlet template = this.slices.template;\r\n\t\ttemplate.strokeWidth = 0;\r\n\t\ttemplate.stroke = color(\"#ffffff\");\r\n\r\n\t\tthis._disposers.push(this.events.on(\"maxsizechanged\", () => {\r\n\t\t\tthis.vennData = undefined;\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}, this, false));\r\n\r\n\t\tthis.labelsContainer.layout = \"none\";\r\n\r\n\t\tthis.itemReaderText = \"{category}\";\r\n\r\n\t\tlet hoverSprite = this.slicesContainer.createChild(Sprite);\r\n\t\thoverSprite.strokeOpacity = 1;\r\n\t\thoverSprite.strokeWidth = 2;\r\n\t\thoverSprite.stroke = new InterfaceColorSet().getFor(\"background\");\r\n\t\thoverSprite.strokeDasharray = \"3,3\";\r\n\t\thoverSprite.zIndex = Number.MAX_VALUE;\r\n\t\thoverSprite.interactionsEnabled = false;\r\n\t\thoverSprite.fill = color();\r\n\t\thoverSprite.strokeDashoffset = 0;\r\n\r\n\t\tlet hs = hoverSprite.states.create(\"hover\");\r\n\t\ths.properties.strokeDashoffset = 1000;\r\n\t\ths.transitionDuration = 100000;\r\n\r\n\t\tthis.hoverSprite = hoverSprite;\r\n\r\n\t\ttemplate.events.on(\"over\", (event) => {\r\n\t\t\thoverSprite.hide(0);\r\n\t\t\thoverSprite.show();\r\n\t\t\thoverSprite.isHover = true;\r\n\t\t\tthis.updateHoverSprite(event.target);\r\n\t\t})\r\n\r\n\t\ttemplate.events.on(\"out\", (event) => {\r\n\t\t\thoverSprite.isHover = false;\r\n\t\t})\r\n\r\n\t\ttemplate.events.on(\"visibilitychanged\", (event) => {\r\n\t\t\tif (event.visible == false) {\r\n\t\t\t\tthis.hoverSprite.hide();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\ttemplate.events.on(\"out\", (event) => {\r\n\t\t\tthis.hoverSprite.hide();\r\n\t\t})\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Sprite element.\r\n\t *\r\n\t * @return Sprite\r\n\t */\r\n\tprotected createSlice(): Sprite {\r\n\t\treturn new Sprite();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Venn Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new VennSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Inits Slice.\r\n\t *\r\n\t * @param Slice to init\r\n\t */\r\n\tprotected initSlice(slice: this[\"_slice\"]) {\r\n\t\tslice.isMeasured = false;\r\n\t\tslice.tooltipText = \"{category}\";\r\n\t}\r\n\r\n\t/**\r\n\t * Inits a Slice label.\r\n\t *\r\n\t * @param Label\r\n\t */\r\n\tprotected initLabel(label: this[\"_label\"]) {\r\n\t\tlabel.verticalCenter = \"middle\";\r\n\t\tlabel.horizontalCenter = \"middle\";\r\n\t\tlabel.isMeasured = false;\r\n\t\tlabel.text = \"{category}\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic updateHoverSprite(sprite: Sprite) {\r\n\t\tthis.hoverSprite.path = sprite.path;\r\n\t\tthis.hoverSprite.x = sprite.x;\r\n\t\tthis.hoverSprite.y = sprite.y;\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElements description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataElements() {\r\n\t\tsuper.validateDataElements();\r\n\r\n\t\tlet slicesContainer = this.slicesContainer;\r\n\t\tlet labelsContainer = this.labelsContainer;\r\n\t\tlet labelTemplate = this.labels.template;\r\n\r\n\t\tif (this.alignLabels) {\r\n\t\t\tlabelTemplate.interactionsEnabled = true;\r\n\t\t\tslicesContainer.isMeasured = true;\r\n\t\t\tlabelsContainer.isMeasured = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlabelTemplate.interactionsEnabled = false;\r\n\t\t\tslicesContainer.isMeasured = false;\r\n\t\t\tlabelsContainer.isMeasured = false;\r\n\t\t}\r\n\r\n\t\tlet sets: any[] = [];\r\n\t\t// prepare data for venn\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tlet set: any = {};\r\n\t\t\tif (dataItem.intersections) {\r\n\t\t\t\tset.sets = dataItem.intersections;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tset.sets = [dataItem.category];\r\n\t\t\t}\r\n\t\t\tset.size = dataItem.getValue(\"value\");\r\n\t\t\tlet isHidden = false;\r\n\t\t\tif (dataItem.intersections) {\r\n\t\t\t\tfor (let i = 0; i < dataItem.intersections.length; i++) {\r\n\t\t\t\t\tlet category = dataItem.intersections[i];\r\n\t\t\t\t\tlet di = this.getDataItemByCategory(category);\r\n\r\n\t\t\t\t\tif (di.isHiding || !di.visible) {\r\n\t\t\t\t\t\tisHidden = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (isHidden && dataItem.visible) {\r\n\t\t\t\t\tdataItem.hide(0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (set.size > 0 && !isHidden && !dataItem.isHiding && dataItem.visible) {\r\n\t\t\t\tsets.push(set);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tlet newSets = sets.toString();\r\n\r\n\t\tif (newSets != this.vennData) {\r\n\r\n\t\t\tthis.vennData = newSets;\r\n\r\n\t\t\tif (sets.length > 0) {\r\n\t\t\t\tlet vennData = venn.venn(sets);\r\n\r\n\t\t\t\tvennData = venn.normalizeSolution(vennData, null, null);\r\n\r\n\t\t\t\tvennData = venn.scaleSolution(vennData, this.innerWidth, this.innerHeight, 0);\r\n\r\n\t\t\t\tlet circles: any = {};\r\n\t\t\t\tfor (let name in vennData) {\r\n\t\t\t\t\tlet item = vennData[name];\r\n\r\n\t\t\t\t\tlet radius = item.radius;\r\n\r\n\t\t\t\t\tlet dataItem = this.getDataItemByCategory(name);\r\n\t\t\t\t\tif (this.interpolationDuration > 0) {\r\n\t\t\t\t\t\tdataItem.animateRadius(radius, this.interpolationDuration, this.interpolationEasing);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlet path = $path.moveTo({ x: -radius, y: 0 });\r\n\t\t\t\t\t\tpath += $path.arcToPoint({ x: radius, y: 0 }, radius, radius, true);\r\n\t\t\t\t\t\tpath += $path.arcToPoint({ x: -radius, y: 0 }, radius, radius, true);\r\n\t\t\t\t\t\tdataItem.slice.path = path;\r\n\r\n\t\t\t\t\t\tif (dataItem.slice.isHover) {\r\n\t\t\t\t\t\t\tthis.updateHoverSprite(dataItem.slice);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet slice = dataItem.slice;\r\n\r\n\t\t\t\t\tif (slice.x == undefined || slice.y == undefined) {\r\n\t\t\t\t\t\tslice.x = item.x;\r\n\t\t\t\t\t\tslice.y = item.y;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tslice.animate([{ property: \"x\", to: item.x }, { property: \"y\", to: item.y }], this.interpolationDuration, this.interpolationEasing);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcircles[name] = item;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet centers: any = venn.computeTextCentres(circles, sets);\r\n\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\tlet name = dataItem.category;\r\n\t\t\t\t\tlet center = centers[name];\r\n\t\t\t\t\tif (dataItem.intersections) {\r\n\t\t\t\t\t\tname = dataItem.intersections.toString();\r\n\t\t\t\t\t\tcenter = centers[name];\r\n\t\t\t\t\t\tif (center) {\r\n\t\t\t\t\t\t\tlet set = dataItem.intersections;\r\n\t\t\t\t\t\t\tlet cc = [];\r\n\r\n\t\t\t\t\t\t\tfor (let s = 0; s < set.length; s++) {\r\n\t\t\t\t\t\t\t\tcc.push(circles[set[s]]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tlet intersectionPath = venn.intersectionAreaPath(cc)\r\n\r\n\t\t\t\t\t\t\tlet slice = dataItem.slice;\r\n\t\t\t\t\t\t\tslice.path = intersectionPath;\r\n\r\n\t\t\t\t\t\t\tslice.tooltipX = center.x;\r\n\t\t\t\t\t\t\tslice.tooltipY = center.y;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (center) {\r\n\t\t\t\t\t\tlet label = dataItem.label;\r\n\t\t\t\t\t\tif (label.x == undefined || label.y == undefined) {\r\n\t\t\t\t\t\t\tlabel.x = center.x;\r\n\t\t\t\t\t\t\tlabel.y = center.y;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlabel.animate([{ property: \"x\", to: center.x }, { property: \"y\", to: center.y }], this.interpolationDuration, this.interpolationEasing);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//dataItem.label.x = -10000;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.updateLegendValue(dataItem);\r\n\r\n\t\t\t\t\tif (!this.slices.template.propertyFields.zIndex) {\r\n\t\t\t\t\t\tdataItem.slice.zIndex = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns data item by category.\r\n\t *\r\n\t * @param category Category\r\n\t * @return Data item\r\n\t */\r\n\tpublic getDataItemByCategory(category: string): VennSeriesDataItem {\r\n\t\tlet di: VennSeriesDataItem;\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tif (dataItem.category == category) {\r\n\t\t\t\tdi = dataItem;\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn di;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"VennSeries\"] = VennSeries;\r\nregistry.registeredClasses[\"VennSeriesDataItem\"] = VennSeriesDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/plugins/venn/VennSeries.ts","import * as m from \"../../es2015/plugins/venn\";\nwindow.am4plugins_venn = m;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./plugins/venn.js\n// module id = null\n// module chunks = "],"sourceRoot":""}