{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/canvg/lib/index.es.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/rgbcolor/index.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","toObject","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","charAt","slice","n","f","offscreen","DOMParser","DOMParserFallback","preset","window","ignoreAnimation","ignoreMouse","width","height","OffscreenCanvas","url","response","fetch","blob","img","createImageBitmap","Reflect","deleteProperty","node","_ref","canvas","createCanvas","createImage","loadImage","index","Object","freeze","__proto__","compressSpaces","trimLeft","trimRight","toNumbers","matches","map","parseFloat","allUppercase","normalizeAttributeName","name","toLowerCase","parseExternalUrl","urlMatch","exec","normalizeColor","color","startsWith","rgbParts","normalizedColor","num","isFloat","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","Property","document","value","this","isNormalizedColor","separator","getString","trim","split","zeroIsValue","regexp","result","isString","hasValue","asString","endsWith","def","rootEmSize","emSize","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","getNumber","min","computeSize","max","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","len","commas","i","ok","alpha","toRGBA","ViewPort","viewPorts","push","pop","getCurrent","d","Point","x","y","point","defaultValue","scale","path","points","pathPoints","atan2","transform","xp","yp","Mouse","working","events","eventElements","onClick","bind","onMouseMove","onclick","onmousemove","style","cursor","forEach","run","parent","_ref2","isPointInPath","boundingBox","_ref3","isPointInBox","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","mapXY","clientX","clientY","type","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","checker","readyPromise","Promise","resolve","every","_","resolveReady","strokeStyle","lineCap","lineJoin","miterLimit","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","translate","getPixels","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","isReady","render","now","Date","then","tick","shouldUpdate","runEvents","start","cancel","stop","reduce","animation","update","hasEvents","clear","setCurrent","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","isNaN","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","xml","parser","checkDocument","err","parserError","getElementsByTagName","Error","textContent","_this2","text","Translate","parse","applyTransform","Rotate","rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","getRadians","rad","cos","sin","Scale","scaleSize","parseScale","Matrix","matrix","e","g","h","det","Skew","skew","super","SkewX","tan","SkewY","parseTransforms","parseTransform","Transform","transforms","data","TransformType","transformTypes","transformOriginXProperty","transformOriginYProperty","unapply","applyToPoint","skewX","skewY","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","Array","from","attribute","nodeName","addStylesFromStyleDefinition","id","childNodes","childNode","addChild","textNode","createTextNode","getText","createIfNotExists","attr","_attr","empty","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","getValue","filter","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","createElement","ignoreChildTypes","includes","_node$getAttribute","styleClasses","some","styleClass","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","_this$parent","indexOf","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","process","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","set","part","variants","weights","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","p0","p1","p2","p3","forX","b2ac","t1","addX","sumCubic","addY","t2","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","bezierCurveAdd","cp1x","cp1y","cp2x","cp2y","addBezierCurve","PathParser","control","current","command","commands","previousCommand","angles","xProp","yProp","makeAbsolute","getPoint","CURVE_TO","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ox","oy","relative","priorTo","angleTo","addMarkerAngle","j","RenderedElement","modifiedEmSizeStack","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","isUrlDefinition","fillStyle","getFillStyleDefinition","_fillStyle","_fillStyle2","addOpacity","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","toString","isPixels","globalAlpha","calculateOpacity","popEmSize","PathElement","pathParser","reset","isEnd","next","MOVE_TO","pathM","LINE_TO","pathL","HORIZ_LINE_TO","pathH","VERT_LINE_TO","pathV","pathC","pathS","pathQ","pathT","ARC","pathA","CLOSE_PATH","pathZ","getMarkerPoints","getMarkerAngles","markers","checkPath","fillRuleStyleProp","fill","setTransform","stroke","getMarkers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","getAsCurrentPoint","addMarker","controlPoint","getAsControlPoint","currentPoint","bezierCurveTo","getReflectedControlPoint","addQuadraticCurve","quadraticCurveTo","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","r","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","getTextBaseline","leafTexts","textChunkStart","POSITIVE_INFINITY","maxX","NEGATIVE_INFINITY","getTElementBoundingBox","initializeCoordinates","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","addBoundingBox","inheritFontSize","getFontSize","measureText","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","parentNode","lastIndex","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","reverse","dx","getGlyph","lw","fillText","strokeText","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","applyAnchoring","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","isFirstChild","parentAttr","TSpanElement","getTextFromNode","TextNode","SVGElement","root","_this$node$parentNode","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","setViewBox","removeCurrent","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","rx","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","getPoints","PolylineElement","parsePath","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","getContext","pattern","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","getGradientUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","getMilliseconds","maxDuration","to","values","valuesAttr","attributeType","attributeName","progress","getProgress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","p","lb","ub","ceil","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","object","enumerableOnly","keys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread$2","target","source","getOwnPropertyDescriptors","defineProperties","defineProperty","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","idx","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","getLetterSpacingAt","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","get","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","findSegmentToFitChar","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","end","inc","abs","getPointOnEllipticalArc","dist","fromX","fromY","rise","pt","ix","iy","pRise","pRun","distance","fullLen","cumulativePathLength","currentT","getPointOnLine","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","step","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","error","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","props","cssProp","substr","srcs","src","UseElement","tempSvg","oldParent","cachedElement","imGet","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","_x","_y","srcData","getImageData","nr","ng","nb","na","putImageData","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","noop","ClipPathElement","contextProto","getPrototypeOf","elementTransform","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","appendChild","removeChild","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","options","createDocumentElement","_arguments","fromString","ready","_arguments2","baseOptions","resize","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","arrayPush","MAX_UINT32","SPLIT","nativeSplit","maybeCallNative","internalSplit","limit","string","lim","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","separatorCopy","RegExp","O","splitter","res","done","S","C","unicodeMatching","q","A","z","classof","R","TypeError","it","Constructor","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","isArrayIteratorMethod","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","iterator","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","$","notARegExp","correctIsRegExpLogic","proto","forced","searchString","redefine","fails","TO_STRING","RegExpPrototype","prototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","definePropertyModule","DESCRIPTORS","SPECIES","CONSTRUCTOR_NAME","configurable","isArray","nativeReverse","returnMethod","IS_PURE","$startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","writable","search","defer","channel","port","global","html","IS_IOS","IS_NODE","location","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","hasOwnProperty","runner","listener","post","postMessage","protocol","host","args","Function","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","Iterators","objectKeys","Properties","isObject","create","UNSCOPABLES","ArrayPrototype","MATCH","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","defaultConstructor","constructor","V8_VERSION","symbol","Symbol","sham","$trim","forcedStringTrimMethod","toInteger","getSubstitution","maybeToString","REPLACE","nativeReplace","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","groups","replacerArgs","whitespaces","whitespace","ltrim","rtrim","createMethod","TYPE","$this","color_string","simple_colors","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","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","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","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","bits","parseInt","processor","channels","toRGB","toHex","getHelpXML","examples","sc","setAttribute","list_item","list_color","RGBColor","example_div","cssText","list_item_value","_typeof","obj","_classCallCheck","instance","mulTable","shgTable","getImageDataFromCanvas","topX","topY","getElementById","context","processCanvasRGBA","radius","imageData","processImageDataRGBA","stackEnd","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stack","stackIn","stackOut","yw","yi","mulSum","shgSum","pr","pg","pb","pa","_i","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_p2","CONVERT_TO_STRING","pos","first","second","size","charCodeAt","codeAt","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime","activeXDocument","enumBugKeys","hiddenKeys","documentCreateElement","sharedKey","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","F","NullProtoObject","domain","ActiveXObject","createIteratorConstructor","setPrototypeOf","setToStringTag","createNonEnumerableProperty","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","$endsWith","endPosition","regexpFlags","shared","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","input","toPropertyKey","require","_defineProperty","__esModule","createPropertyDescriptor","RE","toPrimitive","_toPropertyKey","arg","METHOD_NAME","error1","error2","dotAll","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","flush","head","last","notify","toggle","promise","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","observe","characterData","task","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","vendors","suffix","raf","caf","callback","_now","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","non","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","self","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","newPromiseCapability","promiseCapability","o","T","cX","cY","phi1","phi2","N","E","M","I","L","ROUND","TO_ABS","TO_REL","NORMALIZE_HVZ","NORMALIZE_ST","QT_TO_C","INFO","SANITIZE","LINE_COMMANDS","MATRIX","ROTATE","TRANSLATE","SCALE","SKEW_X","atan","SKEW_Y","X_AXIS_SYMMETRY","Y_AXIS_SYMMETRY","A_TO_C","H","ANNOTATE_ARCS","CLONE","CALCULATE_BOUNDS","maxY","DRAWING_COMMANDS","w","U","toAbs","toRel","normalizeHVZ","normalizeST","qtToC","aToC","sanitize","xSymmetry","ySymmetry","annotateArcs","curNumber","curCommandType","curCommandRelative","canParseCommandOrComma","curNumberHasExp","curNumberHasExpDigits","curNumberHasDecimal","curArgs","finish","SyntaxError","encode","getBounds","aPossiblePrototype","setter","CORRECT_SETTER","TAG","STATIC","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","stringMethod","regexMethod","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","toIndexedObject","addToUnscopables","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","getInternalState","getterFor","iterated","kind","state","Arguments","_toPrimitive","hint","prim","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","inspectSource","iterate","checkCorrectnessOfIteration","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","isForced","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromiseConstructorPrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","exited","reaction","handler","fail","rejection","onHandleUnhandled","onUnhandled","initEvent","facade","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","wrap","stat","capability","$promiseResolve","remaining","alreadyCalled","race","PromiseCapability","$$resolve","$$reject","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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AK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClwCC,EAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAgEvgC,SAASC,EAAuB7zC,EAAQ8zC,EAAMC,EAAM50C,EAAOC,GAKzD,GAJsB,kBAAXY,IACTA,EAAS+D,SAASiwC,eAAeh0C,KAG9BA,GAA8B,WAApBuzC,EAAQvzC,MAA0B,eAAgBA,GAC/D,MAAM,IAAI8gC,UAAU,2EAGtB,IAAImT,EAAUj0C,EAAO4qB,WAAW,MAEhC,IACE,OAAOqpB,EAAQza,aAAasa,EAAMC,EAAM50C,EAAOC,GAC/C,MAAO6T,GACP,MAAM,IAAI3B,MAAM,gCAAkC2B,IActD,SAASihC,EAAkBl0C,EAAQ8zC,EAAMC,EAAM50C,EAAOC,EAAQ+0C,GAC5D,KAAI9jC,MAAM8jC,IAAWA,EAAS,GAA9B,CAIAA,GAAU,EACV,IAAIC,EAAYP,EAAuB7zC,EAAQ8zC,EAAMC,EAAM50C,EAAOC,GAClEg1C,EAAYC,EAAqBD,EAAWN,EAAMC,EAAM50C,EAAOC,EAAQ+0C,GACvEn0C,EAAO4qB,WAAW,MAAMiP,aAAaua,EAAWN,EAAMC,IAaxD,SAASM,EAAqBD,EAAWN,EAAMC,EAAM50C,EAAOC,EAAQ+0C,GAYlE,IAXA,IASIG,EATAC,EAASH,EAAUrgC,KACnBygC,EAAM,EAAIL,EAAS,EAEnBM,EAAct1C,EAAQ,EACtBu1C,EAAet1C,EAAS,EACxBu1C,EAAcR,EAAS,EACvBS,EAAYD,GAAeA,EAAc,GAAK,EAC9CE,EAAa,IAAIC,EACjBC,EAAQF,EAGH/tC,EAAI,EAAGA,EAAI0tC,EAAK1tC,IACvBiuC,EAAQA,EAAMn1B,KAAO,IAAIk1B,EAErBhuC,IAAM6tC,IACRL,EAAWS,GAIfA,EAAMn1B,KAAOi1B,EAQb,IAPA,IAAIG,EAAU,KACVC,EAAW,KACXC,EAAK,EACLC,EAAK,EACLC,EAASzB,EAASQ,GAClBkB,EAASzB,EAASO,GAEbzsC,EAAI,EAAGA,EAAItI,EAAQsI,IAAK,CAC/BqtC,EAAQF,EAMR,IALA,IAAIS,EAAKf,EAAOY,GACZI,EAAKhB,EAAOY,EAAK,GACjBK,EAAKjB,EAAOY,EAAK,GACjBM,EAAKlB,EAAOY,EAAK,GAEZO,EAAK,EAAGA,EAAKf,EAAae,IACjCX,EAAMrxB,EAAI4xB,EACVP,EAAM7hC,EAAIqiC,EACVR,EAAM73C,EAAIs4C,EACVT,EAAM93C,EAAIw4C,EACVV,EAAQA,EAAMn1B,KAgBhB,IAbA,IAAI+1B,EAAS,EACTC,EAAS,EACTC,EAAS,EACTC,EAAS,EACTC,EAAUpB,EAAcW,EACxBU,EAAUrB,EAAcY,EACxBU,EAAUtB,EAAca,EACxBU,EAAUvB,EAAcc,EACxBU,EAAOvB,EAAYU,EACnBc,EAAOxB,EAAYW,EACnBc,EAAOzB,EAAYY,EACnBc,EAAO1B,EAAYa,EAEdc,EAAM,EAAGA,EAAM5B,EAAa4B,IAAO,CAC1C,IAAIjoB,EAAI6mB,IAAOV,EAAc8B,EAAM9B,EAAc8B,IAAQ,GACrD7yB,EAAI6wB,EAAOjmB,GACXpb,EAAIqhC,EAAOjmB,EAAI,GACfpxB,EAAIq3C,EAAOjmB,EAAI,GACfrxB,EAAIs3C,EAAOjmB,EAAI,GACfkoB,EAAM7B,EAAc4B,EACxBJ,IAASpB,EAAMrxB,EAAIA,GAAK8yB,EACxBJ,IAASrB,EAAM7hC,EAAIA,GAAKsjC,EACxBH,IAAStB,EAAM73C,EAAIA,GAAKs5C,EACxBF,IAASvB,EAAM93C,EAAIA,GAAKu5C,EACxBb,GAAUjyB,EACVkyB,GAAU1iC,EACV2iC,GAAU34C,EACV44C,GAAU74C,EACV83C,EAAQA,EAAMn1B,KAGhBo1B,EAAUH,EACVI,EAAWX,EAEX,IAAK,IAAI7sC,EAAI,EAAGA,EAAItI,EAAOsI,IAAK,CAC9B,IAAIgvC,EAAYH,EAAOlB,GAAUC,EAGjC,GAFAd,EAAOY,EAAK,GAAKsB,EAEC,IAAdA,EAAiB,CACnB,IAAIC,EAAM,IAAMD,EAEhBlC,EAAOY,IAAOgB,EAAOf,GAAUC,GAAUqB,EACzCnC,EAAOY,EAAK,IAAMiB,EAAOhB,GAAUC,GAAUqB,EAC7CnC,EAAOY,EAAK,IAAMkB,EAAOjB,GAAUC,GAAUqB,OAE7CnC,EAAOY,GAAMZ,EAAOY,EAAK,GAAKZ,EAAOY,EAAK,GAAK,EAGjDgB,GAAQJ,EACRK,GAAQJ,EACRK,GAAQJ,EACRK,GAAQJ,EACRH,GAAWf,EAAQtxB,EACnBsyB,GAAWhB,EAAQ9hC,EACnB+iC,GAAWjB,EAAQ93C,EACnBg5C,GAAWlB,EAAQ/3C,EAEnB,IAAI05C,EAAKlvC,EAAI0sC,EAAS,EAEtBwC,EAAKzB,GAAMyB,EAAKlC,EAAckC,EAAKlC,IAAgB,EACnDkB,GAAUX,EAAQtxB,EAAI6wB,EAAOoC,GAC7Bf,GAAUZ,EAAQ9hC,EAAIqhC,EAAOoC,EAAK,GAClCd,GAAUb,EAAQ93C,EAAIq3C,EAAOoC,EAAK,GAClCb,GAAUd,EAAQ/3C,EAAIs3C,EAAOoC,EAAK,GAClCR,GAAQR,EACRS,GAAQR,EACRS,GAAQR,EACRS,GAAQR,EACRd,EAAUA,EAAQp1B,KAClB,IAAIg3B,GAAY3B,EACZ4B,GAAKD,GAAUlzB,EACfozB,GAAKF,GAAU1jC,EACf6jC,GAAKH,GAAU15C,EACf85C,GAAKJ,GAAU35C,EACnB84C,GAAWc,GACXb,GAAWc,GACXb,GAAWc,GACXb,GAAWc,GACXrB,GAAUkB,GACVjB,GAAUkB,GACVjB,GAAUkB,GACVjB,GAAUkB,GACV/B,EAAWA,EAASr1B,KACpBu1B,GAAM,EAGRD,GAAM/1C,EAGR,IAAK,IAAIk6B,GAAK,EAAGA,GAAKl6B,EAAOk6B,KAAM,CACjC8b,EAAK9b,IAAM,EAEX,IAAI4d,GAAM1C,EAAOY,GACb+B,GAAM3C,EAAOY,EAAK,GAClBgC,GAAM5C,EAAOY,EAAK,GAClBiC,GAAM7C,EAAOY,EAAK,GAClBkC,GAAW1C,EAAcsC,GACzBK,GAAW3C,EAAcuC,GACzBK,GAAW5C,EAAcwC,GACzBK,GAAW7C,EAAcyC,GACzBK,GAAQ7C,EAAYqC,GACpBS,GAAQ9C,EAAYsC,GACpBS,GAAQ/C,EAAYuC,GACpBS,GAAQhD,EAAYwC,GAExBrC,EAAQF,EAER,IAAK,IAAIgD,GAAM,EAAGA,GAAMlD,EAAakD,KACnC9C,EAAMrxB,EAAIuzB,GACVlC,EAAM7hC,EAAIgkC,GACVnC,EAAM73C,EAAIi6C,GACVpC,EAAM93C,EAAIm6C,GACVrC,EAAQA,EAAMn1B,KAShB,IANA,IAAIxX,GAAKjJ,EACL24C,GAAU,EACVC,GAAU,EACVC,GAAU,EACVC,GAAU,EAELC,GAAM,EAAGA,IAAO/D,EAAQ+D,KAAO,CACtC/C,EAAK/sC,GAAKixB,IAAM,EAEhB,IAAI8e,GAAOxD,EAAcuD,GAEzBT,KAAU1C,EAAMrxB,EAAIuzB,GAAM1C,EAAOY,IAAOgD,GACxCT,KAAU3C,EAAM7hC,EAAIgkC,GAAM3C,EAAOY,EAAK,IAAMgD,GAC5CR,KAAU5C,EAAM73C,EAAIi6C,GAAM5C,EAAOY,EAAK,IAAMgD,GAC5CP,KAAU7C,EAAM93C,EAAIm6C,GAAM7C,EAAOY,EAAK,IAAMgD,GAC5CF,IAAWhB,GACXa,IAAWZ,GACXa,IAAWZ,GACXa,IAAWZ,GACXrC,EAAQA,EAAMn1B,KAEVs4B,GAAMxD,IACRtsC,IAAMjJ,GAIVg2C,EAAK9b,GACL2b,EAAUH,EACVI,EAAWX,EAEX,IAAK,IAAIhb,GAAK,EAAGA,GAAKl6B,EAAQk6B,KAAM,CAClC,IAAI8e,GAAMjD,GAAM,EAEhBZ,EAAO6D,GAAM,GAAKhB,GAAMQ,GAAQxC,GAAUC,EAEtC+B,GAAM,GACRA,GAAM,IAAMA,GACZ7C,EAAO6D,KAAQX,GAAQrC,GAAUC,GAAU+B,GAC3C7C,EAAO6D,GAAM,IAAMV,GAAQtC,GAAUC,GAAU+B,GAC/C7C,EAAO6D,GAAM,IAAMT,GAAQvC,GAAUC,GAAU+B,IAE/C7C,EAAO6D,IAAO7D,EAAO6D,GAAM,GAAK7D,EAAO6D,GAAM,GAAK,EAGpDX,IAASJ,GACTK,IAASJ,GACTK,IAASJ,GACTK,IAASJ,GACTH,IAAYrC,EAAQtxB,EACpB4zB,IAAYtC,EAAQ9hC,EACpBqkC,IAAYvC,EAAQ93C,EACpBs6C,IAAYxC,EAAQ/3C,EACpBm7C,GAAM/e,KAAO+e,GAAM9e,GAAKqb,GAAeD,EAAe0D,GAAM1D,GAAgBv1C,GAAS,EACrFs4C,IAASQ,IAAWjD,EAAQtxB,EAAI6wB,EAAO6D,IACvCV,IAASI,IAAW9C,EAAQ9hC,EAAIqhC,EAAO6D,GAAM,GAC7CT,IAASI,IAAW/C,EAAQ93C,EAAIq3C,EAAO6D,GAAM,GAC7CR,IAASI,IAAWhD,EAAQ/3C,EAAIs3C,EAAO6D,GAAM,GAC7CpD,EAAUA,EAAQp1B,KAClBy3B,IAAYJ,GAAMhC,EAASvxB,EAC3B4zB,IAAYJ,GAAMjC,EAAS/hC,EAC3BqkC,IAAYJ,GAAMlC,EAAS/3C,EAC3Bs6C,IAAYJ,GAAMnC,EAASh4C,EAC3Bg7C,IAAWhB,GACXa,IAAWZ,GACXa,IAAWZ,GACXa,IAAWZ,GACXnC,EAAWA,EAASr1B,KACpBu1B,GAAMh2C,GAIV,OAAOi1C,EAkNT,IAAIU,EAIJ,SAASA,IACPrB,EAAgBxvC,KAAM6wC,GAEtB7wC,KAAKyf,EAAI,EACTzf,KAAKiP,EAAI,EACTjP,KAAK/G,EAAI,EACT+G,KAAKhH,EAAI,EACTgH,KAAK2b,KAAO,O,mBCtnBdpjB,EAAOC,QAA2B,iBAAVuC,Q,qBCAxB,IAAI0oC,EAAY,EAAQ,QACpBlJ,EAAyB,EAAQ,QAGjCwK,EAAe,SAAUqP,GAC3B,OAAO,SAAUnP,EAAOoP,GACtB,IAGIC,EAAOC,EAHPlY,EAAI5jC,OAAO8hC,EAAuB0K,IAClCprC,EAAW4pC,EAAU4Q,GACrBG,EAAOnY,EAAExjC,OAEb,OAAIgB,EAAW,GAAKA,GAAY26C,EAAaJ,EAAoB,QAAKt7C,GACtEw7C,EAAQjY,EAAEoY,WAAW56C,GACdy6C,EAAQ,OAAUA,EAAQ,OAAUz6C,EAAW,IAAM26C,IACtDD,EAASlY,EAAEoY,WAAW56C,EAAW,IAAM,OAAU06C,EAAS,MAC1DH,EAAoB/X,EAAE9hC,OAAOV,GAAYy6C,EACzCF,EAAoB/X,EAAE7hC,MAAMX,EAAUA,EAAW,GAA+B06C,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,SAI7G/7C,EAAOC,QAAU,CAGfk8C,OAAQ3P,GAAa,GAGrBxqC,OAAQwqC,GAAa,K,wBCzBvB,aACA,WACE,IAAI4P,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAExC,qBAAhBC,aAA+C,OAAhBA,aAAyBA,YAAYxqC,IAC9ElS,EAAOC,QAAU,WACf,OAAOy8C,YAAYxqC,OAEQ,qBAAZ0J,GAAuC,OAAZA,GAAqBA,EAAQygC,QACzEr8C,EAAOC,QAAU,WACf,OAAQm8C,IAAmBI,GAAgB,KAE7CH,EAASzgC,EAAQygC,OACjBD,EAAiB,WACf,IAAIO,EAEJ,OADAA,EAAKN,IACU,IAARM,EAAG,GAAWA,EAAG,IAE1BJ,EAAiBH,IACjBK,EAA4B,IAAnB7gC,EAAQghC,SACjBJ,EAAeD,EAAiBE,GACvBtqC,KAAKD,KACdlS,EAAOC,QAAU,WACf,OAAOkS,KAAKD,MAAQoqC,GAEtBA,EAAWnqC,KAAKD,QAEhBlS,EAAOC,QAAU,WACf,OAAO,IAAIkS,MAAO0qC,UAAYP,GAEhCA,GAAW,IAAInqC,MAAO0qC,aAGvBr8C,KAAKiH,Q,6CCjCR,IAmDIq1C,EAnDA/a,EAAW,EAAQ,QACnBhO,EAAmB,EAAQ,QAC3BgpB,EAAc,EAAQ,QACtBC,EAAa,EAAQ,QACrB9U,EAAO,EAAQ,QACf+U,EAAwB,EAAQ,QAChCC,EAAY,EAAQ,QAEpBC,EAAK,IACLC,EAAK,IACLC,EAAY,YACZC,EAAS,SACTC,EAAWL,EAAU,YAErBM,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,OAAON,EAAKE,EAASH,EAAKO,EAAUN,EAAK,IAAME,EAASH,GAItDQ,EAA4B,SAAUb,GACxCA,EAAgBc,MAAMH,EAAU,KAChCX,EAAgBe,QAChB,IAAIC,EAAOhB,EAAgBiB,aAAal6C,OAExC,OADAi5C,EAAkB,KACXgB,GAILE,EAA2B,WAE7B,IAEIC,EAFAC,EAASjB,EAAsB,UAC/BkB,EAAK,OAASb,EAAS,IAU3B,OARAY,EAAO5xC,MAAM8yB,QAAU,OACvB8I,EAAK7I,YAAY6e,GAEjBA,EAAOriB,IAAM37B,OAAOi+C,GACpBF,EAAiBC,EAAOE,cAAc72C,SACtC02C,EAAe/qB,OACf+qB,EAAeL,MAAMH,EAAU,sBAC/BQ,EAAeJ,QACRI,EAAeI,GASpBC,EAAkB,WACpB,IAEExB,EAAkBv1C,SAASg3C,QAAU,IAAIC,cAAc,YACvD,MAAOtkB,IACTokB,EAAkBxB,EAAkBa,EAA0Bb,GAAmBkB,IACjF,IAAI19C,EAASy8C,EAAYz8C,OACzB,MAAOA,WAAiBg+C,EAAgBjB,GAAWN,EAAYz8C,IAC/D,OAAOg+C,KAGTtB,EAAWO,IAAY,EAIvBv9C,EAAOC,QAAU4D,OAAOomC,QAAU,SAAgBvG,EAAGqG,GACnD,IAAI9hC,EAQJ,OAPU,OAANy7B,GACF8Z,EAAiBH,GAAatb,EAAS2B,GACvCz7B,EAAS,IAAIu1C,EACbA,EAAiBH,GAAa,KAE9Bp1C,EAAOs1C,GAAY7Z,GACdz7B,EAASq2C,SACM/9C,IAAfwpC,EAA2B9hC,EAAS8rB,EAAiB9rB,EAAQ8hC,K,oCC3EtE,IAAIhE,EAAI,EAAQ,QACZ0Y,EAA4B,EAAQ,QACpCtgB,EAAiB,EAAQ,QACzBugB,EAAiB,EAAQ,QACzBC,EAAiB,EAAQ,QACzBC,EAA8B,EAAQ,QACtCvY,EAAW,EAAQ,QACnBxmC,EAAkB,EAAQ,QAC1B0nC,EAAU,EAAQ,QAClBsC,EAAY,EAAQ,QACpBgV,EAAgB,EAAQ,QAExBC,EAAoBD,EAAcC,kBAClCC,EAAyBF,EAAcE,uBACvCra,EAAW7kC,EAAgB,YAC3Bm/C,EAAO,OACPC,EAAS,SACTC,EAAU,UAEVC,EAAa,WAAc,OAAO13C,MAEtCzH,EAAOC,QAAU,SAAUm/C,EAAUC,EAAMC,EAAqBl8B,EAAMm8B,EAASC,EAAQC,GACrFhB,EAA0Ba,EAAqBD,EAAMj8B,GAErD,IAkBIs8B,EAA0BC,EAASC,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASP,GAAWQ,EAAiB,OAAOA,EAChD,IAAKhB,GAA0Be,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKd,EAAM,OAAO,WAAkB,OAAO,IAAIM,EAAoB73C,KAAMq4C,IACzE,KAAKb,EAAQ,OAAO,WAAoB,OAAO,IAAIK,EAAoB73C,KAAMq4C,IAC7E,KAAKZ,EAAS,OAAO,WAAqB,OAAO,IAAII,EAAoB73C,KAAMq4C,IAC/E,OAAO,WAAc,OAAO,IAAIR,EAAoB73C,QAGpD3H,EAAgBu/C,EAAO,YACvBY,GAAwB,EACxBD,EAAoBZ,EAAS3Y,UAC7ByZ,EAAiBF,EAAkBtb,IAClCsb,EAAkB,eAClBT,GAAWS,EAAkBT,GAC9BQ,GAAmBhB,GAA0BmB,GAAkBL,EAAmBN,GAClFY,EAA4B,SAARd,GAAkBW,EAAkBI,SAA4BF,EAiCxF,GA7BIC,IACFT,EAA2BvhB,EAAegiB,EAAkB3/C,KAAK,IAAI4+C,IACjEN,IAAsBj7C,OAAO4iC,WAAaiZ,EAAyBt8B,OAChEmkB,GAAWpJ,EAAeuhB,KAA8BZ,IACvDJ,EACFA,EAAegB,EAA0BZ,GACa,mBAAtCY,EAAyBhb,IACzCka,EAA4Bc,EAA0Bhb,EAAUya,IAIpER,EAAee,EAA0B5/C,GAAe,GAAM,GAC1DynC,IAASsC,EAAU/pC,GAAiBq/C,KAKxCI,GAAWN,GAAUiB,GAAkBA,EAAez7C,OAASw6C,IACjEgB,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAe1/C,KAAKiH,QAI7D8/B,IAAWkY,GAAWO,EAAkBtb,KAAcqb,GAC1DnB,EAA4BoB,EAAmBtb,EAAUqb,GAE3DlW,EAAUwV,GAAQU,EAGdR,EAMF,GALAI,EAAU,CACR1uB,OAAQ4uB,EAAmBZ,GAC3B3rB,KAAMksB,EAASO,EAAkBF,EAAmBb,GACpDoB,QAASP,EAAmBX,IAE1BO,EAAQ,IAAKG,KAAOD,GAClBZ,GAA0BkB,KAA2BL,KAAOI,KAC9D3Z,EAAS2Z,EAAmBJ,EAAKD,EAAQC,SAEtC7Z,EAAE,CAAEnS,OAAQyrB,EAAMnZ,OAAO,EAAMC,OAAQ4Y,GAA0BkB,GAAyBN,GAGnG,OAAOA,I,oCCvFT,IAAI5Z,EAAI,EAAQ,QACZtS,EAA2B,EAAQ,QAAmDtxB,EACtFggC,EAAW,EAAQ,QACnB6D,EAAa,EAAQ,QACrBhE,EAAyB,EAAQ,QACjCiE,EAAuB,EAAQ,QAC/BsB,EAAU,EAAQ,QAGlB8Y,EAAY,GAAGh4C,SACfW,EAAMhI,KAAKgI,IAEXy+B,EAA0BxB,EAAqB,YAE/CyB,GAAoBH,IAAYE,KAA6B,WAC/D,IAAIE,EAAalU,EAAyBvzB,OAAOumC,UAAW,YAC5D,OAAOkB,IAAeA,EAAWC,SAF8B,GAOjE7B,EAAE,CAAEnS,OAAQ,SAAUsS,OAAO,EAAMC,QAASuB,IAAqBD,GAA2B,CAC1Fp/B,SAAU,SAAkB+9B,GAC1B,IAAI/lC,EAAOH,OAAO8hC,EAAuBv6B,OACzCu+B,EAAWI,GACX,IAAIka,EAAcz/C,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EACpD6J,EAAM+3B,EAAS9hC,EAAKC,QACpBo3B,OAAsBn3B,IAAhB+/C,EAA4Bl2C,EAAMpB,EAAIm5B,EAASme,GAAcl2C,GACnEy9B,EAAS3nC,OAAOkmC,GACpB,OAAOia,EACHA,EAAU7/C,KAAKH,EAAMwnC,EAAQnQ,GAC7Br3B,EAAK4B,MAAMy1B,EAAMmQ,EAAOvnC,OAAQo3B,KAASmQ,M,oCC/BjD,IAAI7lC,EAAS,EAAQ,QAAiCA,OAItDhC,EAAOC,QAAU,SAAU6jC,EAAGlgC,EAAO6jB,GACnC,OAAO7jB,GAAS6jB,EAAUzlB,EAAO8hC,EAAGlgC,GAAOtD,OAAS,K,kCCHtD,IAAIigD,EAAc,EAAQ,QACtBje,EAAgB,EAAQ,QACxBke,EAAS,EAAQ,QAEjBC,EAAahd,OAAOgD,UAAU5hC,KAC9BymC,EAAgBkV,EAAO,wBAAyBtgD,OAAOumC,UAAUxlC,SAEjEy/C,EAAcD,EAEdE,EAA2B,WAC7B,IAAIC,EAAM,IACNC,EAAM,MAGV,OAFAJ,EAAWjgD,KAAKogD,EAAK,KACrBH,EAAWjgD,KAAKqgD,EAAK,KACI,IAAlBD,EAAIt3B,WAAqC,IAAlBu3B,EAAIv3B,UALL,GAQ3BiZ,EAAgBD,EAAcC,eAAiBD,EAAcwe,aAG7DC,OAAuCxgD,IAAvB,OAAOsE,KAAK,IAAI,GAEhCm8C,EAAQL,GAA4BI,GAAiBxe,EAErDye,IACFN,EAAc,SAAcr/C,GAC1B,IACIioB,EAAW23B,EAAQp/C,EAAOyI,EAD1BurC,EAAKpuC,KAEL67B,EAASf,GAAiBsT,EAAGvS,OAC7BH,EAAQod,EAAY//C,KAAKq1C,GACzBhiB,EAASgiB,EAAGhiB,OACZqtB,EAAa,EACbC,EAAU9/C,EA+Cd,OA7CIiiC,IACFH,EAAQA,EAAMliC,QAAQ,IAAK,KACC,IAAxBkiC,EAAM7nB,QAAQ,OAChB6nB,GAAS,KAGXge,EAAUjhD,OAAOmB,GAAKY,MAAM4zC,EAAGvsB,WAE3BusB,EAAGvsB,UAAY,KAAOusB,EAAGxS,WAAawS,EAAGxS,WAAuC,OAA1BhiC,EAAIw0C,EAAGvsB,UAAY,MAC3EuK,EAAS,OAASA,EAAS,IAC3BstB,EAAU,IAAMA,EAChBD,KAIFD,EAAS,IAAIxd,OAAO,OAAS5P,EAAS,IAAKsP,IAGzC4d,IACFE,EAAS,IAAIxd,OAAO,IAAM5P,EAAS,WAAYsP,IAE7Cwd,IAA0Br3B,EAAYusB,EAAGvsB,WAE7CznB,EAAQ4+C,EAAWjgD,KAAK8iC,EAAS2d,EAASpL,EAAIsL,GAE1C7d,EACEzhC,GACFA,EAAMu/C,MAAQv/C,EAAMu/C,MAAMn/C,MAAMi/C,GAChCr/C,EAAM,GAAKA,EAAM,GAAGI,MAAMi/C,GAC1Br/C,EAAM+B,MAAQiyC,EAAGvsB,UACjBusB,EAAGvsB,WAAaznB,EAAM,GAAGvB,QACpBu1C,EAAGvsB,UAAY,EACbq3B,GAA4B9+C,IACrCg0C,EAAGvsB,UAAYusB,EAAG5N,OAASpmC,EAAM+B,MAAQ/B,EAAM,GAAGvB,OAASgpB,GAEzDy3B,GAAiBl/C,GAASA,EAAMvB,OAAS,GAG3CgrC,EAAc9qC,KAAKqB,EAAM,GAAIo/C,GAAQ,WACnC,IAAK32C,EAAI,EAAGA,EAAIzJ,UAAUP,OAAS,EAAGgK,SACf/J,IAAjBM,UAAUyJ,KAAkBzI,EAAMyI,QAAK/J,MAK1CsB,IAIX7B,EAAOC,QAAUygD,G,qBCtFjB,IAAIW,EAAgBC,EAAQ,QAC5B,SAASC,EAAgBvK,EAAKv9B,EAAKjS,GAYjC,OAXAiS,EAAM4nC,EAAc5nC,GAChBA,KAAOu9B,EACTnzC,OAAOmwB,eAAegjB,EAAKv9B,EAAK,CAC9BjS,MAAOA,EACPksB,YAAY,EACZyT,cAAc,EACdS,UAAU,IAGZoP,EAAIv9B,GAAOjS,EAENwvC,EAETh3C,EAAOC,QAAUshD,EAAiBvhD,EAAOC,QAAQuhD,YAAa,EAAMxhD,EAAOC,QAAQ,WAAaD,EAAOC,S,oCCdvG,IAAI6+C,EAAoB,EAAQ,QAA+BA,kBAC3D7U,EAAS,EAAQ,QACjBwX,EAA2B,EAAQ,QACnC9C,EAAiB,EAAQ,QACzB9U,EAAY,EAAQ,QAEpBsV,EAAa,WAAc,OAAO13C,MAEtCzH,EAAOC,QAAU,SAAUq/C,EAAqBD,EAAMj8B,GACpD,IAAItjB,EAAgBu/C,EAAO,YAI3B,OAHAC,EAAoB7Y,UAAYwD,EAAO6U,EAAmB,CAAE17B,KAAMq+B,EAAyB,EAAGr+B,KAC9Fu7B,EAAeW,EAAqBx/C,GAAe,GAAO,GAC1D+pC,EAAU/pC,GAAiBq/C,EACpBG,I,oCCZT,IAAIhZ,EAAQ,EAAQ,QAIpB,SAASob,EAAGh7B,EAAGvkB,GACb,OAAOshC,OAAO/c,EAAGvkB,GAGnBlC,EAAQsiC,cAAgB+D,GAAM,WAE5B,IAAIuP,EAAK6L,EAAG,IAAK,KAEjB,OADA7L,EAAGvsB,UAAY,EACW,MAAnBusB,EAAGhxC,KAAK,WAGjB5E,EAAQ6gD,aAAexa,GAAM,WAE3B,IAAIuP,EAAK6L,EAAG,KAAM,MAElB,OADA7L,EAAGvsB,UAAY,EACU,MAAlBusB,EAAGhxC,KAAK,W,qBCrBjB,IAAIkyC,EAAUuK,EAAQ,QAAe,WACjCK,EAAcL,EAAQ,QAC1B,SAASM,EAAeC,GACtB,IAAIpoC,EAAMkoC,EAAYE,EAAK,UAC3B,MAAwB,WAAjB9K,EAAQt9B,GAAoBA,EAAMvZ,OAAOuZ,GAElDzZ,EAAOC,QAAU2hD,EAAgB5hD,EAAOC,QAAQuhD,YAAa,EAAMxhD,EAAOC,QAAQ,WAAaD,EAAOC,S,qBCNtG,IAAI+kC,EAAY,EAAQ,QAExBhlC,EAAOC,QAAU,qBAAqBF,KAAKilC,I,qBCF3C,IAAInlC,EAAkB,EAAQ,QAE1BuqC,EAAQvqC,EAAgB,SAE5BG,EAAOC,QAAU,SAAU6hD,GACzB,IAAI95C,EAAS,IACb,IACE,MAAM85C,GAAa95C,GACnB,MAAO+5C,GACP,IAEE,OADA/5C,EAAOoiC,IAAS,EACT,MAAM0X,GAAa95C,GAC1B,MAAOg6C,KACT,OAAO,I,kCCZX,IAAIjc,EAAI,EAAQ,QACZlhC,EAAO,EAAQ,QAInBkhC,EAAE,CAAEnS,OAAQ,SAAUsS,OAAO,EAAMC,OAAQ,IAAIthC,OAASA,GAAQ,CAC9DA,KAAMA,K,kCCNR,IAAIk9B,EAAW,EAAQ,QAIvB/hC,EAAOC,QAAU,WACf,IAAII,EAAO0hC,EAASt6B,MAChBQ,EAAS,GAOb,OANI5H,EAAK4nC,SAAQhgC,GAAU,KACvB5H,EAAK+iC,aAAYn7B,GAAU,KAC3B5H,EAAKgjC,YAAWp7B,GAAU,KAC1B5H,EAAK4hD,SAAQh6C,GAAU,KACvB5H,EAAKonB,UAASxf,GAAU,KACxB5H,EAAKijC,SAAQr7B,GAAU,KACpBA,I,kCCbT,IAcI62C,EAAmBoD,EAAmCC,EAdtD7b,EAAQ,EAAQ,QAChBnI,EAAiB,EAAQ,QACzBygB,EAA8B,EAAQ,QACtCzoB,EAAM,EAAQ,QACdt2B,EAAkB,EAAQ,QAC1B0nC,EAAU,EAAQ,QAElB7C,EAAW7kC,EAAgB,YAC3Bk/C,GAAyB,EAEzBI,EAAa,WAAc,OAAO13C,MAOlC,GAAG6rB,OACL6uB,EAAgB,GAAG7uB,OAEb,SAAU6uB,GAEdD,EAAoC/jB,EAAeA,EAAegkB,IAC9DD,IAAsCr+C,OAAO4iC,YAAWqY,EAAoBoD,IAHlDnD,GAAyB,GAO3D,IAAIqD,OAA8C7hD,GAArBu+C,GAAkCxY,GAAM,WACnE,IAAIvmC,EAAO,GAEX,OAAO++C,EAAkBpa,GAAUlkC,KAAKT,KAAUA,KAGhDqiD,IAAwBtD,EAAoB,IAI1CvX,IAAW6a,GAA4BjsB,EAAI2oB,EAAmBpa,IAClEka,EAA4BE,EAAmBpa,EAAUya,GAG3Dn/C,EAAOC,QAAU,CACf6+C,kBAAmBA,EACnBC,uBAAwBA,I,qBC5C1B,IAeIsD,EAAOC,EAAMC,EAAMC,EAAQC,EAAQn/C,EAAMo/C,EAAStwC,EAflD61B,EAAS,EAAQ,QACjBxU,EAA2B,EAAQ,QAAmDtxB,EACtFwgD,EAAY,EAAQ,QAAqBjmC,IACzCyrB,EAAS,EAAQ,QACjBya,EAAkB,EAAQ,QAC1Bxa,EAAU,EAAQ,QAElBya,EAAmB5a,EAAO4a,kBAAoB5a,EAAO6a,uBACrDv7C,EAAW0gC,EAAO1gC,SAClBqU,EAAUqsB,EAAOrsB,QACjBjN,EAAUs5B,EAAOt5B,QAEjBo0C,EAA2BtvB,EAAyBwU,EAAQ,kBAC5D+a,EAAiBD,GAA4BA,EAAyBv7C,MAKrEw7C,IACHX,EAAQ,WACN,IAAI31C,EAAQtM,EACRgoC,IAAY17B,EAASkP,EAAQ2iC,SAAS7xC,EAAOu2C,OACjD,MAAOX,EAAM,CACXliD,EAAKkiD,EAAKliD,GACVkiD,EAAOA,EAAKl/B,KACZ,IACEhjB,IACA,MAAO85B,GAGP,MAFIooB,EAAME,IACLD,OAAOhiD,EACN25B,GAERqoB,OAAOhiD,EACLmM,GAAQA,EAAOw2C,SAKhB/a,GAAWC,GAAYwa,IAAmBC,IAAoBt7C,EAQxDoH,GAAWA,EAAQC,SAE5B8zC,EAAU/zC,EAAQC,aAAQrO,GAE1BmiD,EAAQ/X,YAAch8B,EACtByD,EAAOswC,EAAQtwC,KACfowC,EAAS,WACPpwC,EAAK5R,KAAKkiD,EAASL,KAIrBG,EADSpa,EACA,WACPxsB,EAAQ0tB,SAAS+Y,IASV,WAEPM,EAAUniD,KAAKynC,EAAQoa,KA9BzBI,GAAS,EACTn/C,EAAOiE,EAAS4R,eAAe,IAC/B,IAAI0pC,EAAiBR,GAAOc,QAAQ7/C,EAAM,CAAE8/C,eAAe,IAC3DZ,EAAS,WACPl/C,EAAKiU,KAAOkrC,GAAUA,KA+B5BziD,EAAOC,QAAU+iD,GAAkB,SAAU5iD,GAC3C,IAAIijD,EAAO,CAAEjjD,GAAIA,EAAIgjB,UAAM7iB,GACvBgiD,IAAMA,EAAKn/B,KAAOigC,GACjBf,IACHA,EAAOe,EACPb,KACAD,EAAOc,I,qBChFX,IAAIpb,EAAS,EAAQ,QACjBuY,EAAS,EAAQ,QACjBrqB,EAAM,EAAQ,QACdmtB,EAAM,EAAQ,QACdC,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAE5BC,EAAwBjD,EAAO,OAC/B1V,EAAS7C,EAAO6C,OAChB4Y,EAAwBF,EAAoB1Y,EAASA,GAAUA,EAAO6Y,eAAiBL,EAE3FtjD,EAAOC,QAAU,SAAUwE,GAOvB,OANG0xB,EAAIstB,EAAuBh/C,KAAW8+C,GAAuD,iBAA/BE,EAAsBh/C,MACnF8+C,GAAiBptB,EAAI2U,EAAQrmC,GAC/Bg/C,EAAsBh/C,GAAQqmC,EAAOrmC,GAErCg/C,EAAsBh/C,GAAQi/C,EAAsB,UAAYj/C,IAE3Dg/C,EAAsBh/C,K,sBClBjC,YAOA,IAPA,MAAU,EAAQ,QACdqnB,EAAyB,qBAAXtpB,OAAyBylC,EAASzlC,OAChDohD,EAAU,CAAC,MAAO,UAClBC,EAAS,iBACTC,EAAMh4B,EAAK,UAAY+3B,GACvBE,EAAMj4B,EAAK,SAAW+3B,IAAW/3B,EAAK,gBAAkB+3B,GAEpDv5C,EAAI,GAAIw5C,GAAOx5C,EAAIs5C,EAAQtjD,OAAQgK,IACzCw5C,EAAMh4B,EAAK83B,EAAQt5C,GAAK,UAAYu5C,GACpCE,EAAMj4B,EAAK83B,EAAQt5C,GAAK,SAAWu5C,IAC5B/3B,EAAK83B,EAAQt5C,GAAK,gBAAkBu5C,GAI7C,IAAIC,IAAQC,EAAK,CACf,IAAIxB,EAAO,EACPzpC,EAAK,EACL6vB,EAAQ,GACRt6B,EAAgB,IAAO,GAE3By1C,EAAM,SAASE,GACb,GAAoB,IAAjBrb,EAAMroC,OAAc,CACrB,IAAI2jD,EAAO/xC,IACPkR,EAAOpiB,KAAKkI,IAAI,EAAGmF,GAAiB41C,EAAO1B,IAC/CA,EAAOn/B,EAAO6gC,EACdra,YAAW,WACT,IAAIsa,EAAKvb,EAAM1mC,MAAM,GAIrB0mC,EAAMroC,OAAS,EACf,IAAI,IAAIgK,EAAI,EAAGA,EAAI45C,EAAG5jD,OAAQgK,IAC5B,IAAI45C,EAAG55C,GAAG65C,UACR,IACED,EAAG55C,GAAG05C,SAASzB,GACf,MAAM9rC,GACNmzB,YAAW,WAAa,MAAMnzB,IAAK,MAIxCzV,KAAKqE,MAAM+d,IAOhB,OALAulB,EAAM/9B,KAAK,CACTw5C,SAAUtrC,EACVkrC,SAAUA,EACVG,WAAW,IAENrrC,GAGTirC,EAAM,SAASK,GACb,IAAI,IAAI95C,EAAI,EAAGA,EAAIq+B,EAAMroC,OAAQgK,IAC5Bq+B,EAAMr+B,GAAG85C,SAAWA,IACrBzb,EAAMr+B,GAAG65C,WAAY,IAM7BnkD,EAAOC,QAAU,SAASG,GAIxB,OAAO0jD,EAAItjD,KAAKsrB,EAAM1rB,IAExBJ,EAAOC,QAAQwS,OAAS,WACtBsxC,EAAInjD,MAAMkrB,EAAMjrB,YAElBb,EAAOC,QAAQokD,SAAW,SAASjxB,GAC5BA,IACHA,EAAStH,GAEXsH,EAAOkxB,sBAAwBR,EAC/B1wB,EAAOmxB,qBAAuBR,K,2CCzEhC,IAAIzd,EAAQ,EAAQ,QAChB8F,EAAc,EAAQ,QAEtBoY,EAAM,MAIVxkD,EAAOC,QAAU,SAAU6hD,GACzB,OAAOxb,GAAM,WACX,QAAS8F,EAAY0V,MAAkB0C,EAAI1C,MAAkB0C,GAAOpY,EAAY0V,GAAar9C,OAASq9C,O,mBCT1G,SAAS2C,EAAmBC,EAAK91C,EAASmxB,EAAQ4kB,EAAOC,EAAQnrC,EAAKooC,GACpE,IACE,IAAIgD,EAAOH,EAAIjrC,GAAKooC,GAChBr6C,EAAQq9C,EAAKr9C,MACjB,MAAO0yB,GAEP,YADA6F,EAAO7F,GAGL2qB,EAAKhhB,KACPj1B,EAAQpH,GAERmH,QAAQC,QAAQpH,GAAO4K,KAAKuyC,EAAOC,GAGvC,SAASE,EAAkB1kD,GACzB,OAAO,WACL,IAAI2kD,EAAOt9C,KACT2hC,EAAOvoC,UACT,OAAO,IAAI8N,SAAQ,SAAUC,EAASmxB,GACpC,IAAI2kB,EAAMtkD,EAAGQ,MAAMmkD,EAAM3b,GACzB,SAASub,EAAMn9C,GACbi9C,EAAmBC,EAAK91C,EAASmxB,EAAQ4kB,EAAOC,EAAQ,OAAQp9C,GAElE,SAASo9C,EAAOjwC,GACd8vC,EAAmBC,EAAK91C,EAASmxB,EAAQ4kB,EAAOC,EAAQ,QAASjwC,GAEnEgwC,OAAMpkD,OAIZP,EAAOC,QAAU6kD,EAAmB9kD,EAAOC,QAAQuhD,YAAa,EAAMxhD,EAAOC,QAAQ,WAAaD,EAAOC,S,kCC5BzG,IAAI8lC,EAAI,EAAQ,QACZif,EAAW,EAAQ,QAA+B1pC,QAClD2pC,EAAsB,EAAQ,QAE9BC,EAAgB,GAAG5pC,QAEnB6pC,IAAkBD,GAAiB,EAAI,CAAC,GAAG5pC,QAAQ,GAAI,GAAK,EAC5D8pC,EAAgBH,EAAoB,WAIxClf,EAAE,CAAEnS,OAAQ,QAASsS,OAAO,EAAMC,OAAQgf,IAAkBC,GAAiB,CAC3E9pC,QAAS,SAAiB+pC,GACxB,OAAOF,EAEHD,EAActkD,MAAM6G,KAAM5G,YAAc,EACxCmkD,EAASv9C,KAAM49C,EAAexkD,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,qBClB5E,IAAIwhC,EAAW,EAAQ,QACnBiI,EAAW,EAAQ,QACnBsb,EAAuB,EAAQ,QAEnCtlD,EAAOC,QAAU,SAAU8jC,EAAG94B,GAE5B,GADA82B,EAASgC,GACLiG,EAAS/+B,IAAMA,EAAE0/B,cAAgB5G,EAAG,OAAO94B,EAC/C,IAAIs6C,EAAoBD,EAAqBnjD,EAAE4hC,GAC3Cn1B,EAAU22C,EAAkB32C,QAEhC,OADAA,EAAQ3D,GACDs6C,EAAkB7C,U,kCCV3B;;;;;;;;;;;;;;;AAcA,IAAI37C,EAAE,SAASmgB,EAAEzQ,GAAG,OAAO1P,EAAElD,OAAO66C,gBAAgB,CAAC36C,UAAU,cAAc0U,OAAO,SAAS1R,EAAEmgB,GAAGngB,EAAEhD,UAAUmjB,IAAI,SAASngB,EAAEmgB,GAAG,IAAI,IAAIzQ,KAAKyQ,EAAErjB,OAAO4iC,UAAUoC,eAAeroC,KAAK0mB,EAAEzQ,KAAK1P,EAAE0P,GAAGyQ,EAAEzQ,MAAMyQ,EAAEzQ,IAAI,SAASyQ,EAAEA,EAAEzQ,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAI6tB,UAAU,uBAAuBpkC,OAAOuW,GAAG,iCAAiC,SAASnM,IAAI7C,KAAKkjC,YAAYzjB,EAAEngB,EAAEmgB,EAAEzQ,GAAGyQ,EAAEuf,UAAU,OAAOhwB,EAAE5S,OAAOomC,OAAOxzB,IAAInM,EAAEm8B,UAAUhwB,EAAEgwB,UAAU,IAAIn8B,GAAG,SAASmM,EAAE1P,GAAG,IAAImgB,EAAE,GAAGzO,MAAM2uB,QAAQrgC,KAAKA,EAAE,CAACA,IAAI,IAAI,IAAI0P,EAAE,EAAEA,EAAE1P,EAAEzG,OAAOmW,IAAI,CAAC,IAAInM,EAAEvD,EAAE0P,GAAG,GAAGnM,EAAEmD,OAAOqB,EAAEqV,WAAW+C,GAAG,SAAS,GAAG5c,EAAEmD,OAAOqB,EAAE2U,cAAcyD,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEW,OAAO,GAAGX,EAAEmD,OAAOqB,EAAE6U,aAAauD,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEY,OAAO,GAAGZ,EAAEmD,OAAOqB,EAAEuU,QAAQ6D,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEW,EAAE,IAAIX,EAAEY,OAAO,GAAGZ,EAAEmD,OAAOqB,EAAEyU,QAAQ2D,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEW,EAAE,IAAIX,EAAEY,OAAO,GAAGZ,EAAEmD,OAAOqB,EAAE4Q,SAASwH,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEyS,GAAG,IAAIzS,EAAE4S,GAAG,IAAI5S,EAAE6S,GAAG,IAAI7S,EAAE8S,GAAG,IAAI9S,EAAEW,EAAE,IAAIX,EAAEY,OAAO,GAAGZ,EAAEmD,OAAOqB,EAAE6Q,gBAAgBuH,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAE6S,GAAG,IAAI7S,EAAE8S,GAAG,IAAI9S,EAAEW,EAAE,IAAIX,EAAEY,OAAO,GAAGZ,EAAEmD,OAAOqB,EAAE8Q,QAAQsH,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEyS,GAAG,IAAIzS,EAAE4S,GAAG,IAAI5S,EAAEW,EAAE,IAAIX,EAAEY,OAAO,GAAGZ,EAAEmD,OAAOqB,EAAE+Q,eAAeqH,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAEW,EAAE,IAAIX,EAAEY,MAAM,CAAC,GAAGZ,EAAEmD,OAAOqB,EAAEmV,IAAI,MAAM,IAAInP,MAAM,4BAA4BxK,EAAEmD,KAAK,cAAcgJ,EAAE,KAAKyQ,IAAI5c,EAAE0V,SAAS,IAAI,KAAK1V,EAAE4b,GAAG,IAAI5b,EAAE6b,GAAG,IAAI7b,EAAE8b,KAAK,MAAM9b,EAAE+b,SAAS,MAAM/b,EAAEgc,UAAU,IAAIhc,EAAEW,EAAE,IAAIX,EAAEY,GAAG,OAAOgc,EAAE,SAAS5c,EAAEvD,EAAEmgB,GAAG,IAAIzQ,EAAE1P,EAAE,GAAGuD,EAAEvD,EAAE,GAAG,MAAM,CAAC0P,EAAEzV,KAAKkV,IAAIgR,GAAG5c,EAAEtJ,KAAKmV,IAAI+Q,GAAGzQ,EAAEzV,KAAKmV,IAAI+Q,GAAG5c,EAAEtJ,KAAKkV,IAAIgR,IAAI,SAASzmB,IAAI,IAAI,IAAIsG,EAAE,GAAGmgB,EAAE,EAAEA,EAAErmB,UAAUP,OAAO4mB,IAAIngB,EAAEmgB,GAAGrmB,UAAUqmB,GAAG,IAAI,IAAIzQ,EAAE,EAAEA,EAAE1P,EAAEzG,OAAOmW,IAAI,GAAG,iBAAiB1P,EAAE0P,GAAG,MAAM,IAAI3B,MAAM,2BAA2B2B,EAAE,6BAA6B1P,EAAE0P,GAAG,cAAc1P,EAAE0P,IAAI,OAAM,EAAG,IAAIvU,EAAElB,KAAKsI,GAAG,SAASk8C,EAAEz+C,EAAEmgB,EAAEzQ,GAAG1P,EAAEsf,SAAS,IAAItf,EAAEsf,SAAS,EAAE,EAAEtf,EAAEuf,UAAU,IAAIvf,EAAEuf,UAAU,EAAE,EAAE,IAAI7lB,EAAEsG,EAAEmf,GAAGs/B,EAAEz+C,EAAEof,GAAGO,EAAE3f,EAAEkE,EAAEtE,EAAEI,EAAEmE,EAAEzK,EAAEO,KAAK42B,IAAI7wB,EAAEmf,IAAIs/B,EAAExkD,KAAK42B,IAAI7wB,EAAEof,IAAI,IAAIxP,EAAErM,EAAE,EAAE4c,EAAER,GAAG,GAAGjQ,EAAE9P,GAAG,IAAII,EAAEqf,KAAK,IAAIlkB,GAAGvB,EAAEgW,EAAE,GAAGzL,EAAEyL,EAAE,GAAGmb,EAAE9wB,KAAKyF,IAAI9F,EAAE,GAAGK,KAAKyF,IAAIhG,EAAE,GAAGO,KAAKyF,IAAIyE,EAAE,GAAGlK,KAAKyF,IAAI++C,EAAE,GAAG,EAAE1zB,IAAIrxB,GAAGO,KAAKwF,KAAKsrB,GAAG0zB,GAAGxkD,KAAKwF,KAAKsrB,IAAI/qB,EAAEmf,GAAGzlB,EAAEsG,EAAEof,GAAGq/B,EAAE,IAAI7jD,EAAEX,KAAKyF,IAAIhG,EAAE,GAAGO,KAAKyF,IAAIyE,EAAE,GAAGlK,KAAKyF,IAAI++C,EAAE,GAAGxkD,KAAKyF,IAAI9F,EAAE,GAAG+iC,GAAG38B,EAAEsf,WAAWtf,EAAEuf,UAAU,GAAG,GAAGtlB,KAAKwF,KAAKxF,KAAKkI,IAAI,GAAGlI,KAAKyF,IAAIhG,EAAE,GAAGO,KAAKyF,IAAI++C,EAAE,GAAG7jD,GAAGA,IAAI8kB,EAAEhmB,EAAEyK,EAAEs6C,EAAE9hB,EAAE+hB,GAAGD,EAAE7kD,EAAEF,EAAEijC,EAAEn9B,EAAE+D,EAAE,CAACmc,EAAEg/B,GAAG1+C,EAAEqf,KAAK,IAAIlkB,GAAG6E,EAAE2+C,GAAGn/C,EAAE,IAAI2gB,EAAER,GAAG,EAAE3f,EAAE4+C,GAAGp/C,EAAE,IAAIkQ,EAAE9P,GAAG,EAAEI,EAAE6+C,KAAK5kD,KAAKyK,OAAOP,EAAEu6C,GAAGD,GAAG7kD,EAAE8lB,GAAGhmB,GAAGsG,EAAE8+C,KAAK7kD,KAAKyK,QAAQP,EAAEu6C,GAAGD,IAAI7kD,EAAE8lB,GAAGhmB,GAAG,IAAIsG,EAAEuf,WAAWvf,EAAE8+C,KAAK9+C,EAAE6+C,OAAO7+C,EAAE8+C,MAAM,EAAE3jD,GAAG,IAAI6E,EAAEuf,WAAWvf,EAAE8+C,KAAK9+C,EAAE6+C,OAAO7+C,EAAE8+C,MAAM,EAAE3jD,GAAG6E,EAAE6+C,MAAM,IAAI1jD,EAAE6E,EAAE8+C,MAAM,IAAI3jD,EAAE,SAASwkB,EAAE3f,EAAEmgB,EAAEzQ,GAAGhW,EAAEsG,EAAEmgB,EAAEzQ,GAAG,IAAInM,EAAEvD,EAAEA,EAAEmgB,EAAEA,EAAEzQ,EAAEA,EAAE,GAAG,EAAEnM,EAAE,MAAM,GAAG,GAAG,IAAIA,EAAE,MAAM,CAAC,CAACvD,EAAE0P,GAAG1P,EAAEA,EAAEmgB,EAAEA,GAAGA,EAAEzQ,GAAG1P,EAAEA,EAAEmgB,EAAEA,KAAK,IAAIhlB,EAAElB,KAAKwF,KAAK8D,GAAG,MAAM,CAAC,EAAEvD,EAAE0P,EAAEyQ,EAAEhlB,IAAI6E,EAAEA,EAAEmgB,EAAEA,IAAIA,EAAEzQ,EAAE1P,EAAE7E,IAAI6E,EAAEA,EAAEmgB,EAAEA,IAAI,EAAEngB,EAAE0P,EAAEyQ,EAAEhlB,IAAI6E,EAAEA,EAAEmgB,EAAEA,IAAIA,EAAEzQ,EAAE1P,EAAE7E,IAAI6E,EAAEA,EAAEmgB,EAAEA,KAAK,IAAIvgB,EAAEgQ,EAAE3V,KAAKsI,GAAG,IAAI,SAAS3I,EAAEoG,EAAEmgB,EAAEzQ,GAAG,OAAO,EAAEA,GAAG1P,EAAE0P,EAAEyQ,EAAE,SAAShc,EAAEnE,EAAEmgB,EAAEzQ,EAAEnM,GAAG,OAAOvD,EAAE/F,KAAKkV,IAAI5L,EAAE,IAAIpI,GAAGglB,EAAElmB,KAAKmV,IAAI7L,EAAE,IAAIpI,GAAGuU,EAAE,SAASqb,EAAE/qB,EAAEmgB,EAAEzQ,EAAEnM,GAAG,IAAI7J,EAAE,KAAKyB,EAAEglB,EAAEngB,EAAEy+C,EAAE/uC,EAAEyQ,EAAER,EAAE,EAAExkB,EAAE,GAAGoI,EAAEmM,GAAG,EAAE+uC,EAAE7+C,EAAE,GAAG6+C,EAAEtjD,GAAGyU,EAAE,EAAEzU,EAAE,OAAOlB,KAAK42B,IAAIlR,GAAGjmB,EAAE,EAAEkW,EAAEhQ,GAAG,SAASI,EAAEmgB,EAAEzQ,QAAG,IAASA,IAAIA,EAAE,MAAM,IAAInM,EAAEvD,EAAEA,EAAE,EAAEmgB,EAAE,GAAG5c,GAAGmM,EAAE,MAAM,GAAG,GAAGnM,GAAGmM,EAAE,MAAM,EAAE1P,EAAE,GAAG,IAAItG,EAAEO,KAAKwF,KAAK8D,GAAG,MAAM,EAAEvD,EAAE,EAAEtG,GAAGsG,EAAE,EAAEtG,GAA/H,CAAmIkG,EAAE+f,EAAE/P,EAAE+P,EAAEjmB,GAAG,SAASkB,EAAEoF,EAAEmgB,EAAEzQ,EAAEnM,EAAE7J,GAAG,IAAIyB,EAAE,EAAEzB,EAAE,OAAOsG,GAAG7E,EAAEA,EAAEA,GAAGglB,GAAG,EAAEhlB,EAAEA,EAAEzB,GAAGgW,GAAG,EAAEvU,EAAEzB,EAAEA,GAAG6J,GAAG7J,EAAEA,EAAEA,IAAI,SAASsG,GAAG,SAASmgB,IAAI,OAAOvgB,GAAE,SAAUI,EAAEmgB,EAAEzQ,GAAG,OAAO1P,EAAEiZ,gBAAW,IAASjZ,EAAEgW,KAAKhW,EAAEgW,IAAImK,QAAG,IAASngB,EAAEmW,KAAKnW,EAAEmW,IAAIzG,QAAG,IAAS1P,EAAEoW,KAAKpW,EAAEoW,IAAI+J,QAAG,IAASngB,EAAEqW,KAAKrW,EAAEqW,IAAI3G,QAAG,IAAS1P,EAAEkE,IAAIlE,EAAEkE,GAAGic,QAAG,IAASngB,EAAEmE,IAAInE,EAAEmE,GAAGuL,GAAG1P,EAAEiZ,UAAS,GAAIjZ,KAAK,SAAS0P,IAAI,IAAI1P,EAAEkW,IAAIiK,EAAEjK,IAAIxG,EAAEwG,IAAI3S,EAAE2S,IAAI,OAAOtW,GAAE,SAAUlG,EAAEyB,EAAEsjD,GAAG,OAAO/kD,EAAEgN,KAAKqB,EAAE6Q,kBAAkBlf,EAAEgN,KAAKqB,EAAE4Q,SAAS3Y,EAAE8M,MAAM9M,GAAG7E,EAAE6E,EAAEmgB,EAAErT,MAAMqT,GAAGs+B,EAAEt+B,EAAEzmB,EAAEsc,GAAGtc,EAAEuf,SAAS9d,EAAE6E,EAAE,EAAE7E,EAAE6E,EAAEtG,EAAEyc,GAAGzc,EAAEuf,SAASwlC,EAAEt+B,EAAE,EAAEs+B,EAAEt+B,GAAGzmB,EAAEgN,KAAKqB,EAAE4Q,UAAU3Y,EAAEtG,EAAEuf,SAAS9d,EAAEzB,EAAE0c,GAAG1c,EAAE0c,GAAG+J,EAAEzmB,EAAEuf,SAASwlC,EAAE/kD,EAAE2c,GAAG3c,EAAE2c,KAAKrW,EAAEkW,IAAIiK,EAAEjK,KAAKxc,EAAEgN,KAAKqB,EAAE+Q,iBAAiBpf,EAAEgN,KAAKqB,EAAE8Q,QAAQnJ,EAAE5C,MAAM4C,GAAGvU,EAAEuU,EAAEnM,EAAEuJ,MAAMvJ,GAAGk7C,EAAEl7C,EAAE7J,EAAEsc,GAAGtc,EAAEuf,SAAS9d,EAAEuU,EAAE,EAAEvU,EAAEuU,EAAEhW,EAAEyc,GAAGzc,EAAEuf,SAASwlC,EAAEl7C,EAAE,EAAEk7C,EAAEl7C,GAAG7J,EAAEgN,KAAKqB,EAAE8Q,SAASnJ,EAAEhW,EAAEuf,SAAS9d,EAAEzB,EAAEsc,GAAGtc,EAAEsc,GAAGzS,EAAE7J,EAAEuf,SAASwlC,EAAE/kD,EAAEyc,GAAGzc,EAAEyc,KAAKzG,EAAEwG,IAAI3S,EAAE2S,KAAKxc,KAAK,SAASyB,IAAI,IAAI6E,EAAEkW,IAAIiK,EAAEjK,IAAI,OAAOtW,GAAE,SAAU8P,EAAEnM,EAAE7J,GAAG,GAAGgW,EAAEhJ,KAAKqB,EAAE+Q,iBAAiBpJ,EAAEhJ,KAAKqB,EAAE8Q,QAAQ7Y,EAAE8M,MAAM9M,GAAGuD,EAAEvD,EAAEmgB,EAAErT,MAAMqT,GAAGzmB,EAAEymB,EAAEzQ,EAAEsG,GAAGtG,EAAEuJ,SAAS1V,EAAEvD,EAAE,EAAEuD,EAAEvD,EAAE0P,EAAEyG,GAAGzG,EAAEuJ,SAASvf,EAAEymB,EAAE,EAAEzmB,EAAEymB,GAAGzQ,EAAEhJ,KAAKqB,EAAE8Q,QAAQ,CAAC7Y,EAAE0P,EAAEuJ,SAAS1V,EAAEmM,EAAEsG,GAAGtG,EAAEsG,GAAGmK,EAAEzQ,EAAEuJ,SAASvf,EAAEgW,EAAEyG,GAAGzG,EAAEyG,GAAG,IAAIhb,EAAEuU,EAAEsG,GAAGyoC,EAAE/uC,EAAEyG,GAAGzG,EAAEhJ,KAAKqB,EAAE4Q,SAASjJ,EAAEsG,KAAKtG,EAAEuJ,SAAS,EAAE1V,GAAG,EAAEpI,GAAG,EAAEuU,EAAEyG,KAAKzG,EAAEuJ,SAAS,EAAEvf,GAAG,EAAE+kD,GAAG,EAAE/uC,EAAE0G,IAAI1G,EAAExL,EAAE,EAAE/I,GAAG,EAAEuU,EAAE2G,IAAI3G,EAAEvL,EAAE,EAAEs6C,GAAG,OAAOz+C,EAAEkW,IAAIiK,EAAEjK,IAAI,OAAOxG,KAAK,SAAS9P,EAAEI,GAAG,IAAImgB,EAAE,EAAEzQ,EAAE,EAAEnM,EAAE2S,IAAIxc,EAAEwc,IAAI,OAAO,SAAS/a,GAAG,GAAG2R,MAAMvJ,MAAMpI,EAAEuL,KAAKqB,EAAEuU,SAAS,MAAM,IAAIvO,MAAM,+BAA+B,IAAI0wC,EAAEz+C,EAAE7E,EAAEglB,EAAEzQ,EAAEnM,EAAE7J,GAAG,OAAOyB,EAAEuL,KAAKqB,EAAEqV,aAAa+C,EAAE5c,EAAEmM,EAAEhW,QAAG,IAASyB,EAAE+I,IAAIic,EAAEhlB,EAAE8d,SAASkH,EAAEhlB,EAAE+I,EAAE/I,EAAE+I,QAAG,IAAS/I,EAAEgJ,IAAIuL,EAAEvU,EAAE8d,SAASvJ,EAAEvU,EAAEgJ,EAAEhJ,EAAEgJ,GAAGhJ,EAAEuL,KAAKqB,EAAEuU,UAAU/Y,EAAE4c,EAAEzmB,EAAEgW,GAAG+uC,GAAG,SAAS9hB,EAAE38B,EAAEmgB,EAAEzQ,EAAEnM,EAAEpI,EAAEsjD,GAAG,OAAO/kD,EAAEsG,EAAEmgB,EAAEzQ,EAAEnM,EAAEpI,EAAEsjD,GAAG7+C,GAAE,SAAUlG,EAAEimB,EAAE/f,EAAEgQ,GAAG,IAAIhW,EAAEF,EAAEsc,GAAG7R,EAAEzK,EAAE0c,GAAG2U,EAAErxB,EAAEuf,WAAWnM,MAAM8C,GAAGhV,OAAE,IAASlB,EAAEwK,EAAExK,EAAEwK,EAAE6mB,EAAE,EAAEpL,EAAEgd,OAAE,IAASjjC,EAAEyK,EAAEzK,EAAEyK,EAAE4mB,EAAE,EAAEnrB,EAAE,SAAS8f,EAAE1f,GAAG,OAAOA,EAAEA,EAAEtG,EAAEgN,KAAKqB,EAAE2U,eAAe,IAAIyD,IAAIzmB,EAAEgN,KAAKqB,EAAEyU,QAAQ9iB,EAAEyK,EAAEzK,EAAEuf,SAAS,EAAErZ,GAAGlG,EAAEgN,KAAKqB,EAAE6U,cAAc,IAAIlN,IAAIhW,EAAEgN,KAAKqB,EAAEyU,QAAQ9iB,EAAEwK,EAAExK,EAAEuf,SAAS,EAAE0G,QAAG,IAASjmB,EAAEwK,IAAIxK,EAAEwK,EAAExK,EAAEwK,EAAElE,EAAE28B,EAAEjtB,GAAGqb,EAAE,EAAE5vB,SAAI,IAASzB,EAAEyK,IAAIzK,EAAEyK,EAAEvJ,EAAEulB,EAAEzmB,EAAEyK,EAAEZ,GAAGwnB,EAAE,EAAE0zB,SAAI,IAAS/kD,EAAEsc,KAAKtc,EAAEsc,GAAGtc,EAAEsc,GAAGhW,EAAEtG,EAAEyc,GAAGzG,GAAGqb,EAAE,EAAE5vB,SAAI,IAASzB,EAAEyc,KAAKzc,EAAEyc,GAAGvc,EAAEumB,EAAEzmB,EAAEyc,GAAG5S,GAAGwnB,EAAE,EAAE0zB,SAAI,IAAS/kD,EAAE0c,KAAK1c,EAAE0c,GAAG1c,EAAE0c,GAAGpW,EAAEtG,EAAE2c,GAAG3G,GAAGqb,EAAE,EAAE5vB,SAAI,IAASzB,EAAE2c,KAAK3c,EAAE2c,GAAGlS,EAAEgc,EAAEzmB,EAAE2c,GAAG9S,GAAGwnB,EAAE,EAAE0zB,IAAI,IAAIC,EAAE1+C,EAAEuD,EAAE4c,EAAEzQ,EAAE,QAAG,IAAShW,EAAE2lB,OAAO,IAAIrf,GAAG,IAAImgB,GAAG,IAAIzQ,GAAG,IAAInM,GAAG,GAAG,IAAIm7C,SAAShlD,EAAEylB,UAAUzlB,EAAE0lB,UAAU1lB,EAAE2lB,YAAY3lB,EAAE4lB,gBAAgB5lB,EAAE6lB,UAAU7lB,EAAEgN,KAAKqB,EAAEyU,YAAY,CAAC,IAAIhd,EAAE9F,EAAE2lB,KAAKplB,KAAKsI,GAAG,IAAInH,EAAEnB,KAAKmV,IAAI5P,GAAGu/C,EAAE9kD,KAAKkV,IAAI3P,GAAG0E,EAAE,EAAEwb,EAAEhmB,EAAEylB,IAAInb,EAAE,EAAE0b,EAAEhmB,EAAE0lB,IAAI4/B,EAAEt/B,EAAEq/B,GAAG76C,EAAEwb,EAAEtkB,GAAG4I,EAAEm5B,EAAE,EAAE/hC,EAAE2jD,GAAG76C,EAAEF,GAAGg5B,EAAEtd,EAAEtkB,GAAG8I,EAAEwb,EAAEq/B,GAAG/6C,EAAEi7C,EAAED,EAAEz7C,EAAEA,EAAE45B,EAAEhd,EAAE5c,EAAEy5B,EAAE7c,EAAEA,EAAEmd,EAAEH,GAAGn9B,EAAEuD,EAAE4c,EAAEzQ,GAAG,GAAGsvC,EAAEtvC,EAAEnM,EAAEy5B,EAAEh9B,EAAEmgB,GAAGxQ,EAAEqvC,EAAEtvC,EAAEA,EAAEytB,EAAEn9B,EAAE0P,EAAEstB,EAAEh9B,EAAEA,EAAEk/C,GAAGjlD,KAAKyK,MAAM44B,EAAE2hB,EAAEtvC,GAAG1V,KAAKsI,IAAItI,KAAKsI,GAAG,EAAEw6B,EAAE9iC,KAAKmV,IAAI8vC,GAAGC,EAAEllD,KAAKkV,IAAI+vC,GAAGxlD,EAAEylB,GAAGllB,KAAK42B,IAAI6tB,GAAGzkD,KAAKwF,KAAKw/C,EAAEv/B,EAAEy/B,GAAG7hB,EAAEP,EAAEoiB,EAAExvC,EAAE+P,EAAEqd,IAAIrjC,EAAE0lB,GAAGnlB,KAAK42B,IAAI6tB,GAAGzkD,KAAKwF,KAAKw/C,EAAEv/B,EAAEqd,GAAGO,EAAEP,EAAEoiB,EAAExvC,EAAE+P,EAAEy/B,IAAIzlD,EAAE2lB,KAAK,IAAI6/B,EAAEjlD,KAAKsI,GAAG,YAAO,IAAS7I,EAAE6lB,WAAW,EAAEm/B,IAAIhlD,EAAE6lB,YAAY7lB,EAAE6lB,WAAW7lB,KAAK,SAASgmB,IAAI,OAAO,SAAS1f,GAAG,IAAImgB,EAAE,GAAG,IAAI,IAAIzQ,KAAK1P,EAAEmgB,EAAEzQ,GAAG1P,EAAE0P,GAAG,OAAOyQ,GAAGngB,EAAEo/C,MAAM,SAASp/C,GAAG,SAASmgB,EAAEA,GAAG,OAAOlmB,KAAKqE,MAAM6hB,EAAEngB,GAAGA,EAAE,YAAO,IAASA,IAAIA,EAAE,MAAMtG,EAAEsG,GAAG,SAASA,GAAG,YAAO,IAASA,EAAEgW,KAAKhW,EAAEgW,GAAGmK,EAAEngB,EAAEgW,UAAK,IAAShW,EAAEmW,KAAKnW,EAAEmW,GAAGgK,EAAEngB,EAAEmW,UAAK,IAASnW,EAAEoW,KAAKpW,EAAEoW,GAAG+J,EAAEngB,EAAEoW,UAAK,IAASpW,EAAEqW,KAAKrW,EAAEqW,GAAG8J,EAAEngB,EAAEqW,UAAK,IAASrW,EAAEkE,IAAIlE,EAAEkE,EAAEic,EAAEngB,EAAEkE,SAAI,IAASlE,EAAEmE,IAAInE,EAAEmE,EAAEgc,EAAEngB,EAAEmE,SAAI,IAASnE,EAAEmf,KAAKnf,EAAEmf,GAAGgB,EAAEngB,EAAEmf,UAAK,IAASnf,EAAEof,KAAKpf,EAAEof,GAAGe,EAAEngB,EAAEof,KAAKpf,IAAIA,EAAEq/C,OAAOl/B,EAAEngB,EAAEs/C,OAAO,WAAW,OAAO1/C,GAAE,SAAUI,EAAEmgB,EAAEzQ,GAAG,OAAO1P,EAAEiZ,gBAAW,IAASjZ,EAAEgW,KAAKhW,EAAEgW,IAAImK,QAAG,IAASngB,EAAEmW,KAAKnW,EAAEmW,IAAIzG,QAAG,IAAS1P,EAAEoW,KAAKpW,EAAEoW,IAAI+J,QAAG,IAASngB,EAAEqW,KAAKrW,EAAEqW,IAAI3G,QAAG,IAAS1P,EAAEkE,IAAIlE,EAAEkE,GAAGic,QAAG,IAASngB,EAAEmE,IAAInE,EAAEmE,GAAGuL,GAAG1P,EAAEiZ,UAAS,GAAIjZ,MAAMA,EAAEu/C,cAAc,SAASv/C,EAAEmgB,EAAEzQ,GAAG,YAAO,IAAS1P,IAAIA,GAAE,QAAI,IAASmgB,IAAIA,GAAE,QAAI,IAASzQ,IAAIA,GAAE,GAAI9P,GAAE,SAAU2D,EAAE7J,EAAEyB,EAAEsjD,EAAE9+B,GAAG,GAAG7S,MAAM2xC,MAAMl7C,EAAEmD,KAAKqB,EAAEuU,SAAS,MAAM,IAAIvO,MAAM,+BAA+B,OAAOoS,GAAG5c,EAAEmD,KAAKqB,EAAE2U,gBAAgBnZ,EAAEmD,KAAKqB,EAAEyU,QAAQjZ,EAAEY,EAAEZ,EAAE0V,SAAS,EAAE9d,GAAGuU,GAAGnM,EAAEmD,KAAKqB,EAAE6U,eAAerZ,EAAEmD,KAAKqB,EAAEyU,QAAQjZ,EAAEW,EAAEX,EAAE0V,SAAS,EAAEvf,GAAGsG,GAAGuD,EAAEmD,KAAKqB,EAAEqV,aAAa7Z,EAAEmD,KAAKqB,EAAEyU,QAAQjZ,EAAEW,EAAEX,EAAE0V,SAASwlC,EAAE/kD,EAAE+kD,EAAEl7C,EAAEY,EAAEZ,EAAE0V,SAAS0G,EAAExkB,EAAEwkB,GAAGpc,EAAEmD,KAAKqB,EAAEmV,MAAM,IAAI3Z,EAAE4b,IAAI,IAAI5b,EAAE6b,MAAM7b,EAAEmD,KAAKqB,EAAEyU,eAAejZ,EAAE4b,UAAU5b,EAAE6b,UAAU7b,EAAE8b,YAAY9b,EAAE+b,gBAAgB/b,EAAEgc,WAAWhc,MAAMvD,EAAEw/C,aAAa9vC,EAAE1P,EAAEy/C,QAAQtkD,EAAE6E,EAAE0/C,KAAK9/C,EAAEI,EAAE2/C,SAAS,SAAS3/C,QAAG,IAASA,IAAIA,EAAE,GAAGtG,EAAEsG,GAAG,IAAImgB,EAAEjK,IAAIxG,EAAEwG,IAAI3S,EAAE2S,IAAI/a,EAAE+a,IAAI,OAAOtW,GAAE,SAAUlG,EAAE+kD,EAAE9+B,EAAE/f,EAAEgQ,GAAG,IAAIhW,EAAEK,KAAK42B,IAAI1sB,GAAE,EAAG4mB,EAAE,EAAEnwB,EAAE,EAAE,GAAGlB,EAAEgN,KAAKqB,EAAE6Q,kBAAkBmS,EAAEje,MAAMqT,GAAG,EAAEs+B,EAAEt+B,EAAEvlB,EAAEkS,MAAM4C,GAAG,EAAEiQ,EAAEjQ,GAAGhW,EAAEgN,MAAMqB,EAAE4Q,SAAS5Q,EAAE6Q,kBAAkBuH,EAAEzmB,EAAEuf,SAASwlC,EAAE/kD,EAAE0c,GAAG1c,EAAE0c,GAAG1G,EAAEhW,EAAEuf,SAAS0G,EAAEjmB,EAAE2c,GAAG3c,EAAE2c,KAAK8J,EAAEjK,IAAIxG,EAAEwG,KAAKxc,EAAEgN,KAAKqB,EAAE+Q,gBAAgBvV,EAAEuJ,MAAMvJ,GAAGk7C,EAAE,EAAEA,EAAEl7C,EAAEpI,EAAE2R,MAAM3R,GAAGwkB,EAAE,EAAEA,EAAExkB,GAAGzB,EAAEgN,KAAKqB,EAAE8Q,SAAStV,EAAE7J,EAAEuf,SAASwlC,EAAE/kD,EAAEsc,GAAGtc,EAAEsc,GAAG7a,EAAEzB,EAAEuf,SAAS0G,EAAEjmB,EAAEyc,GAAGzc,EAAE2c,KAAK9S,EAAE2S,IAAI/a,EAAE+a,KAAKxc,EAAEgN,KAAKqB,EAAE63C,eAAelmD,EAAEgN,KAAKqB,EAAEmV,MAAM,IAAIxjB,EAAEylB,IAAI,IAAIzlB,EAAE0lB,KAAK1lB,EAAE4lB,WAAW5lB,EAAEgN,KAAKqB,EAAE4Q,UAAUjf,EAAEgN,KAAKqB,EAAE6Q,iBAAiBlf,EAAEgN,KAAKqB,EAAE8Q,SAASnf,EAAEgN,KAAKqB,EAAE+Q,eAAe,CAAC,IAAI6jB,OAAE,IAASjjC,EAAEwK,EAAE,EAAExK,EAAEuf,SAASvf,EAAEwK,EAAExK,EAAEwK,EAAEu6C,EAAE/+B,OAAE,IAAShmB,EAAEyK,EAAE,EAAEzK,EAAEuf,SAASvf,EAAEyK,EAAEzK,EAAEyK,EAAEwb,EAAEoL,EAAEje,MAAMvJ,QAAG,IAAS7J,EAAEsc,GAAG+U,EAAErxB,EAAEuf,SAASvf,EAAEwK,EAAExK,EAAEsc,GAAGyoC,EAAEl7C,EAAEk7C,EAAE7jD,EAAEkS,MAAM3R,QAAG,IAASzB,EAAEyc,GAAGvb,EAAElB,EAAEuf,SAASvf,EAAEyK,EAAEzK,EAAEyc,GAAGwJ,EAAExkB,EAAEwkB,EAAE,IAAI++B,OAAE,IAAShlD,EAAE0c,GAAG,EAAE1c,EAAEuf,SAASvf,EAAEwK,EAAExK,EAAE0c,GAAGqoC,EAAEj/C,OAAE,IAAS9F,EAAE2c,GAAG,EAAE3c,EAAEuf,SAASvf,EAAEyK,EAAEzK,EAAE2c,GAAGsJ,EAAE/lB,EAAE+iC,IAAI38B,GAAGpG,EAAE8lB,IAAI1f,GAAGpG,EAAEmxB,IAAI/qB,GAAGpG,EAAEgB,IAAIoF,GAAGpG,EAAE8kD,IAAI1+C,GAAGpG,EAAE4F,IAAIQ,IAAImE,GAAE,GAAI,OAAOzK,EAAEgN,KAAKqB,EAAEqV,YAAYxjB,EAAE6kD,EAAE7+C,IAAII,GAAGpG,EAAE+lB,EAAE/P,IAAI5P,IAAImE,GAAE,GAAIA,EAAE,GAAGzK,MAAMsG,EAAE6/C,OAAOljB,EAAE38B,EAAE8/C,OAAO,SAAS9/C,EAAEmgB,EAAEzQ,QAAG,IAASyQ,IAAIA,EAAE,QAAG,IAASzQ,IAAIA,EAAE,GAAGhW,EAAEsG,EAAEmgB,EAAEzQ,GAAG,IAAInM,EAAEtJ,KAAKmV,IAAIpP,GAAG7E,EAAElB,KAAKkV,IAAInP,GAAG,OAAO28B,EAAExhC,EAAEoI,GAAGA,EAAEpI,EAAEglB,EAAEA,EAAEhlB,EAAEuU,EAAEnM,EAAEmM,EAAEyQ,EAAE5c,EAAEmM,EAAEvU,IAAI6E,EAAE+/C,UAAU,SAAS//C,EAAEmgB,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAGzmB,EAAEsG,EAAEmgB,GAAGwc,EAAE,EAAE,EAAE,EAAE,EAAE38B,EAAEmgB,IAAIngB,EAAEggD,MAAM,SAAShgD,EAAEmgB,GAAG,YAAO,IAASA,IAAIA,EAAEngB,GAAGtG,EAAEsG,EAAEmgB,GAAGwc,EAAE38B,EAAE,EAAE,EAAEmgB,EAAE,EAAE,IAAIngB,EAAEigD,OAAO,SAASjgD,GAAG,OAAOtG,EAAEsG,GAAG28B,EAAE,EAAE,EAAE1iC,KAAKimD,KAAKlgD,GAAG,EAAE,EAAE,IAAIA,EAAEmgD,OAAO,SAASngD,GAAG,OAAOtG,EAAEsG,GAAG28B,EAAE,EAAE1iC,KAAKimD,KAAKlgD,GAAG,EAAE,EAAE,EAAE,IAAIA,EAAEogD,gBAAgB,SAASpgD,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAGtG,EAAEsG,GAAG28B,GAAG,EAAE,EAAE,EAAE,EAAE38B,EAAE,IAAIA,EAAEqgD,gBAAgB,SAASrgD,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAGtG,EAAEsG,GAAG28B,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE38B,IAAIA,EAAEsgD,OAAO,WAAW,OAAO1gD,GAAE,SAAUI,EAAEmgB,EAAEzQ,GAAG,OAAO3H,EAAEmV,MAAMld,EAAE0G,KAAK,SAAS1G,EAAEmgB,EAAEzQ,GAAG,IAAIhW,EAAEyB,EAAEwkB,EAAE/f,EAAEI,EAAE2+C,IAAIF,EAAEz+C,EAAEmgB,EAAEzQ,GAAG,IAAI,IAAIvL,EAAElK,KAAKgI,IAAIjC,EAAE6+C,KAAK7+C,EAAE8+C,MAAM/zB,EAAE9wB,KAAKkI,IAAInC,EAAE6+C,KAAK7+C,EAAE8+C,MAAM36C,EAAEvJ,EAAEX,KAAKixB,KAAKH,EAAE,IAAI4R,EAAE,IAAIjrB,MAAM9W,GAAG8kB,EAAES,EAAEu+B,EAAEhvC,EAAElQ,EAAE,EAAEA,EAAE5E,EAAE4E,IAAI,CAAC,IAAIpE,EAAExB,EAAEoG,EAAE6+C,KAAK7+C,EAAE8+C,KAAKt/C,EAAE5E,GAAGmkD,EAAEnlD,EAAEoG,EAAE6+C,KAAK7+C,EAAE8+C,MAAMt/C,EAAE,GAAG5E,GAAGsJ,EAAE66C,EAAE3jD,EAAE4I,EAAE,EAAE,EAAE/J,KAAKiW,IAAIhM,EAAE0L,EAAE,GAAGovC,EAAE,CAAC/kD,KAAKkV,IAAI/T,EAAEwU,GAAG5L,EAAE/J,KAAKmV,IAAIhU,EAAEwU,GAAG3V,KAAKmV,IAAIhU,EAAEwU,GAAG5L,EAAE/J,KAAKkV,IAAI/T,EAAEwU,IAAIutB,EAAE6hB,EAAE,GAAGhiB,EAAEgiB,EAAE,GAAGC,EAAE,CAAChlD,KAAKkV,IAAI4vC,EAAEnvC,GAAG3V,KAAKmV,IAAI2vC,EAAEnvC,IAAI0tB,EAAE2hB,EAAE,GAAGtvC,EAAEsvC,EAAE,GAAGC,EAAE,CAAC5hB,EAAEt5B,EAAE/J,KAAKmV,IAAI2vC,EAAEnvC,GAAGD,EAAE3L,EAAE/J,KAAKkV,IAAI4vC,EAAEnvC,IAAImtB,EAAEmiB,EAAE,GAAGC,EAAED,EAAE,GAAGviB,EAAEn9B,GAAG,CAACyZ,SAASjZ,EAAEiZ,SAASvS,KAAKqB,EAAE4Q,UAAU,IAAI4nC,EAAE,SAASpgC,EAAEzQ,GAAG,IAAIhW,EAAE6J,EAAE,CAAC4c,EAAEngB,EAAEmf,GAAGzP,EAAE1P,EAAEof,IAAIpf,EAAEqf,MAAMlkB,EAAEzB,EAAE,GAAG+kD,EAAE/kD,EAAE,GAAG,MAAM,CAACsG,EAAE2+C,GAAGxjD,EAAE6E,EAAE4+C,GAAGH,IAAI/kD,EAAE6mD,EAAEpjB,EAAEH,GAAGL,EAAEn9B,GAAGwW,GAAGtc,EAAE,GAAGijC,EAAEn9B,GAAG2W,GAAGzc,EAAE,GAAGyB,EAAEolD,EAAExjB,EAAEoiB,GAAGxiB,EAAEn9B,GAAG4W,GAAGjb,EAAE,GAAGwhC,EAAEn9B,GAAG6W,GAAGlb,EAAE,GAAGwkB,EAAE4gC,EAAEjjB,EAAE3tB,GAAGgtB,EAAEn9B,GAAG0E,EAAEyb,EAAE,GAAGgd,EAAEn9B,GAAG2E,EAAEwb,EAAE,GAAG3f,EAAEiZ,WAAW0jB,EAAEn9B,GAAGwW,IAAI0J,EAAEid,EAAEn9B,GAAG2W,IAAIuoC,EAAE/hB,EAAEn9B,GAAG4W,IAAIsJ,EAAEid,EAAEn9B,GAAG6W,IAAIqoC,EAAE/hB,EAAEn9B,GAAG0E,GAAGwb,EAAEid,EAAEn9B,GAAG2E,GAAGu6C,GAAGh/B,GAAG9f,EAAE,CAAC+8B,EAAEn9B,GAAG0E,EAAEy4B,EAAEn9B,GAAG2E,IAAI,GAAGu6C,EAAE9+C,EAAE,GAAG,OAAO+8B,EAAnwB,CAAswB38B,EAAEA,EAAEiZ,SAAS,EAAEkH,EAAEngB,EAAEiZ,SAAS,EAAEvJ,GAAG1P,MAAMA,EAAEwgD,cAAc,WAAW,OAAO5gD,GAAE,SAAUI,EAAEmgB,EAAEzQ,GAAG,OAAO1P,EAAEiZ,WAAWkH,EAAE,EAAEzQ,EAAE,GAAG3H,EAAEmV,MAAMld,EAAE0G,MAAM+3C,EAAEz+C,EAAEmgB,EAAEzQ,GAAG1P,MAAMA,EAAEygD,MAAM/gC,EAAE1f,EAAE0gD,iBAAiB,WAAW,IAAI1gD,EAAE,SAASA,GAAG,IAAImgB,EAAE,GAAG,IAAI,IAAIzQ,KAAK1P,EAAEmgB,EAAEzQ,GAAG1P,EAAE0P,GAAG,OAAOyQ,GAAG5c,EAAE4c,IAAIzmB,EAAEyB,IAAIyU,EAAEF,IAAI9V,EAAEgG,GAAE,SAAUugB,EAAEzQ,EAAEvU,GAAG,IAAIyE,EAAEgQ,EAAElW,EAAE6J,EAAEvD,EAAEmgB,MAAM,SAASwc,EAAE38B,GAAGA,EAAEpG,EAAEunB,OAAOvnB,EAAEunB,KAAKnhB,GAAGA,EAAEpG,EAAE4O,OAAO5O,EAAE4O,KAAKxI,GAAG,SAAS0f,EAAE1f,GAAGA,EAAEpG,EAAE+mD,OAAO/mD,EAAE+mD,KAAK3gD,GAAGA,EAAEpG,EAAE6O,OAAO7O,EAAE6O,KAAKzI,GAAG,GAAGJ,EAAE8G,KAAKqB,EAAE64C,mBAAmBjkB,EAAEjtB,GAAGgQ,EAAEvkB,IAAIyE,EAAE8G,KAAKqB,EAAE2U,eAAeigB,EAAE/8B,EAAEsE,GAAGtE,EAAE8G,KAAKqB,EAAE6U,cAAc8C,EAAE9f,EAAEuE,GAAGvE,EAAE8G,KAAKqB,EAAEyU,UAAUmgB,EAAE/8B,EAAEsE,GAAGwb,EAAE9f,EAAEuE,IAAIvE,EAAE8G,KAAKqB,EAAE4Q,SAAS,CAACgkB,EAAE/8B,EAAEsE,GAAGwb,EAAE9f,EAAEuE,GAAG,IAAI,IAAIu6C,EAAE,EAAEl/C,EAAEurB,EAAErb,EAAE9P,EAAEoW,GAAGpW,EAAEwW,GAAGxW,EAAEsE,GAAGw6C,EAAEl/C,EAAEjG,OAAOmlD,IAAK,GAAGmC,EAAErhD,EAAEk/C,KAAK,EAAEmC,GAAGlkB,EAAE/hC,EAAE8U,EAAE9P,EAAEoW,GAAGpW,EAAEwW,GAAGxW,EAAEsE,EAAE28C,IAAI,IAAI,IAAIzlD,EAAE,EAAE2jD,EAAEh0B,EAAE5vB,EAAEyE,EAAEuW,GAAGvW,EAAEyW,GAAGzW,EAAEuE,GAAG/I,EAAE2jD,EAAExlD,OAAO6B,IAAK,GAAGylD,EAAE9B,EAAE3jD,KAAK,EAAEylD,GAAGnhC,EAAE9kB,EAAEO,EAAEyE,EAAEuW,GAAGvW,EAAEyW,GAAGzW,EAAEuE,EAAE08C,IAAK,GAAGjhD,EAAE8G,KAAKqB,EAAEmV,IAAI,CAACyf,EAAE/8B,EAAEsE,GAAGwb,EAAE9f,EAAEuE,GAAGs6C,EAAE7+C,EAAE8P,EAAEvU,GAAG,IAAI,IAAI+I,EAAEtE,EAAEyf,KAAK,IAAIplB,KAAKsI,GAAGyB,EAAE/J,KAAKkV,IAAIjL,GAAGtE,EAAEuf,GAAG6/B,EAAE/kD,KAAKmV,IAAIlL,GAAGtE,EAAEuf,GAAGge,GAAGljC,KAAKmV,IAAIlL,GAAGtE,EAAEwf,GAAG4d,EAAE/iC,KAAKkV,IAAIjL,GAAGtE,EAAEwf,GAAG6/B,EAAEr/C,EAAEi/C,KAAKj/C,EAAEk/C,KAAK,CAACl/C,EAAEi/C,KAAKj/C,EAAEk/C,OAAO,IAAIl/C,EAAEk/C,KAAK,CAACl/C,EAAEk/C,KAAK,IAAIl/C,EAAEi/C,KAAK,KAAK,CAACj/C,EAAEk/C,KAAKl/C,EAAEi/C,MAAMvhB,EAAE2hB,EAAE,GAAGtvC,EAAEsvC,EAAE,GAAGC,EAAE,SAASl/C,GAAG,IAAImgB,EAAEngB,EAAE,GAAG0P,EAAE1P,EAAE,GAAGuD,EAAE,IAAItJ,KAAKyK,MAAMgL,EAAEyQ,GAAGlmB,KAAKsI,GAAG,OAAOgB,EAAE+5B,EAAE/5B,EAAE,IAAIA,GAAGw5B,EAAE,EAAEoiB,EAAEx/B,EAAEwd,GAAGn5B,EAAE,GAAG1G,IAAI4hD,GAAGniB,EAAEoiB,EAAE5lD,OAAOwjC,KAAM8jB,EAAE1B,EAAEpiB,IAAIO,GAAGujB,EAAElxC,GAAGgtB,EAAEx4B,EAAEvE,EAAE++C,GAAG36C,EAAEm5B,EAAE0jB,IAAI,IAAI,IAAIN,EAAE,EAAEO,EAAEnhC,EAAEqd,GAAGgiB,EAAE,GAAG1hD,IAAI4hD,GAAGqB,EAAEO,EAAEvnD,OAAOgnD,IAAI,CAAC,IAAIM,GAAGA,EAAEC,EAAEP,IAAIjjB,GAAGujB,EAAElxC,GAAG+P,EAAEvb,EAAEvE,EAAEg/C,GAAGI,EAAEhiB,EAAE6jB,KAAK,OAAO1gC,KAAK,OAAOvmB,EAAE4O,KAAK,IAAI5O,EAAEunB,MAAK,IAAKvnB,EAAE6O,KAAK,IAAI7O,EAAE+mD,MAAK,IAAK/mD,GAA59O,CAAg+OgG,IAAIA,EAAE,KAAK,IAAI+8B,EAAEjd,EAAE,WAAW,SAAS1f,KAAK,OAAOA,EAAE0/B,UAAUphC,MAAM,SAAS0B,GAAG,OAAOU,KAAKiE,UAAU/E,EAAEw/C,MAAMp/C,KAAKA,EAAE0/B,UAAUqhB,MAAM,WAAW,OAAOrgD,KAAKiE,UAAU/E,EAAEy/C,WAAWr/C,EAAE0/B,UAAUshB,MAAM,WAAW,OAAOtgD,KAAKiE,UAAU/E,EAAE0/C,WAAWt/C,EAAE0/B,UAAUuhB,aAAa,SAASjhD,EAAEmgB,EAAEzQ,GAAG,OAAOhP,KAAKiE,UAAU/E,EAAE2/C,cAAcv/C,EAAEmgB,EAAEzQ,KAAK1P,EAAE0/B,UAAUwhB,YAAY,WAAW,OAAOxgD,KAAKiE,UAAU/E,EAAE4/C,iBAAiBx/C,EAAE0/B,UAAUyhB,MAAM,WAAW,OAAOzgD,KAAKiE,UAAU/E,EAAE6/C,YAAYz/C,EAAE0/B,UAAU0hB,KAAK,WAAW,OAAO1gD,KAAKiE,UAAU/E,EAAE0gD,WAAWtgD,EAAE0/B,UAAU2hB,SAAS,SAASrhD,GAAG,OAAOU,KAAKiE,UAAU/E,EAAE+/C,SAAS3/C,KAAKA,EAAE0/B,UAAU71B,UAAU,SAAS7J,EAAEmgB,GAAG,OAAOzf,KAAKiE,UAAU/E,EAAEmgD,UAAU//C,EAAEmgB,KAAKngB,EAAE0/B,UAAUp7B,MAAM,SAAStE,EAAEmgB,GAAG,OAAOzf,KAAKiE,UAAU/E,EAAEogD,MAAMhgD,EAAEmgB,KAAKngB,EAAE0/B,UAAUnxB,OAAO,SAASvO,EAAEmgB,EAAEzQ,GAAG,OAAOhP,KAAKiE,UAAU/E,EAAEkgD,OAAO9/C,EAAEmgB,EAAEzQ,KAAK1P,EAAE0/B,UAAUjwB,OAAO,SAASzP,EAAEmgB,EAAEzQ,EAAEnM,EAAE7J,EAAEyB,GAAG,OAAOuF,KAAKiE,UAAU/E,EAAEigD,OAAO7/C,EAAEmgB,EAAEzQ,EAAEnM,EAAE7J,EAAEyB,KAAK6E,EAAE0/B,UAAU3uB,MAAM,SAAS/Q,GAAG,OAAOU,KAAKiE,UAAU/E,EAAEqgD,OAAOjgD,KAAKA,EAAE0/B,UAAU1uB,MAAM,SAAShR,GAAG,OAAOU,KAAKiE,UAAU/E,EAAEugD,OAAOngD,KAAKA,EAAE0/B,UAAU4hB,UAAU,SAASthD,GAAG,OAAOU,KAAKiE,UAAU/E,EAAEwgD,gBAAgBpgD,KAAKA,EAAE0/B,UAAU6hB,UAAU,SAASvhD,GAAG,OAAOU,KAAKiE,UAAU/E,EAAEygD,gBAAgBrgD,KAAKA,EAAE0/B,UAAU8hB,aAAa,WAAW,OAAO9gD,KAAKiE,UAAU/E,EAAE4gD,kBAAkBxgD,EAAhvC,GAAqvC0+C,EAAE,SAAS1+C,GAAG,MAAM,MAAMA,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAGR,EAAE,SAASQ,GAAG,MAAM,IAAIm1C,WAAW,IAAIn1C,EAAEm1C,WAAW,IAAIn1C,EAAEm1C,WAAW,IAAI,IAAIA,WAAW,IAAI/5C,EAAE,SAAS4E,GAAG,SAAS0P,IAAI,IAAIyQ,EAAEngB,EAAEvG,KAAKiH,OAAOA,KAAK,OAAOyf,EAAEshC,UAAU,GAAGthC,EAAEuhC,gBAAgB,EAAEvhC,EAAEwhC,oBAAmB,EAAGxhC,EAAEyhC,wBAAuB,EAAGzhC,EAAE0hC,iBAAgB,EAAG1hC,EAAE2hC,uBAAsB,EAAG3hC,EAAE4hC,qBAAoB,EAAG5hC,EAAE6hC,QAAQ,GAAG7hC,EAAE,OAAOA,EAAEzQ,EAAE1P,GAAG0P,EAAEgwB,UAAUuiB,OAAO,SAASjiD,GAAG,QAAG,IAASA,IAAIA,EAAE,IAAIU,KAAK0N,MAAM,IAAIpO,GAAG,IAAIU,KAAKshD,QAAQzoD,SAASmH,KAAKkhD,uBAAuB,MAAM,IAAIM,YAAY,yCAAyC,OAAOliD,GAAG0P,EAAEgwB,UAAUtxB,MAAM,SAASpO,EAAEmgB,GAAG,IAAIzQ,EAAEhP,UAAK,IAASyf,IAAIA,EAAE,IAAI,IAAI,IAAI5c,EAAE,SAASvD,GAAGmgB,EAAEtc,KAAK7D,GAAG0P,EAAEsyC,QAAQzoD,OAAO,EAAEmW,EAAEkyC,wBAAuB,GAAIloD,EAAE,EAAEA,EAAEsG,EAAEzG,OAAOG,IAAI,CAAC,IAAIyB,EAAE6E,EAAEtG,GAAG+kD,IAAI/9C,KAAKghD,iBAAiB35C,EAAEmV,KAAK,IAAIxc,KAAKshD,QAAQzoD,QAAQ,IAAImH,KAAKshD,QAAQzoD,QAAQ,IAAImH,KAAK+gD,UAAUloD,QAAQ,MAAMmH,KAAK+gD,WAAW,MAAM/gD,KAAK+gD,WAAW9hC,EAAEngB,EAAErE,KAAK,MAAMuF,KAAK+gD,WAAW,MAAMtmD,GAAGsjD,GAAG,IAAIj/C,EAAErE,IAAIwkB,EAAE,GAAG,MAAMxkB,GAAG,MAAMA,EAAE,GAAG,MAAMA,GAAG,MAAMA,IAAIuF,KAAKmhD,iBAAiBnhD,KAAKohD,sBAAsB,GAAG,MAAM3mD,GAAGuF,KAAKmhD,iBAAiBnhD,KAAKqhD,qBAAqBtD,EAAE,CAAC,GAAG/9C,KAAK+gD,YAAY,IAAI/gD,KAAKghD,eAAe,CAAC,IAAI9hD,EAAEqW,OAAOvV,KAAK+gD,WAAW,GAAG30C,MAAMlN,GAAG,MAAM,IAAIsiD,YAAY,4BAA4BxoD,GAAG,GAAGgH,KAAKghD,iBAAiB35C,EAAEmV,IAAI,GAAG,IAAIxc,KAAKshD,QAAQzoD,QAAQ,IAAImH,KAAKshD,QAAQzoD,QAAQ,GAAG,EAAEqG,EAAE,MAAM,IAAIsiD,YAAY,kCAAkCtiD,EAAE,eAAelG,EAAE,UAAU,IAAI,IAAIgH,KAAKshD,QAAQzoD,QAAQ,IAAImH,KAAKshD,QAAQzoD,SAAS,MAAMmH,KAAK+gD,WAAW,MAAM/gD,KAAK+gD,UAAU,MAAM,IAAIS,YAAY,yBAAyBxhD,KAAK+gD,UAAU,eAAe/nD,EAAE,KAAKgH,KAAKshD,QAAQn+C,KAAKjE,GAAGc,KAAKshD,QAAQzoD,SAASwlD,EAAEr+C,KAAKghD,kBAAkB35C,EAAE2U,gBAAgBhc,KAAKghD,eAAen+C,EAAE,CAACmD,KAAKqB,EAAE2U,cAAczD,SAASvY,KAAKihD,mBAAmBz9C,EAAEtE,IAAImI,EAAE6U,eAAelc,KAAKghD,eAAen+C,EAAE,CAACmD,KAAKqB,EAAE6U,aAAa3D,SAASvY,KAAKihD,mBAAmBx9C,EAAEvE,IAAIc,KAAKghD,iBAAiB35C,EAAEuU,SAAS5b,KAAKghD,iBAAiB35C,EAAEyU,SAAS9b,KAAKghD,iBAAiB35C,EAAE+Q,gBAAgBvV,EAAE,CAACmD,KAAKhG,KAAKghD,eAAezoC,SAASvY,KAAKihD,mBAAmBz9C,EAAExD,KAAKshD,QAAQ,GAAG79C,EAAEzD,KAAKshD,QAAQ,KAAKj6C,EAAEuU,UAAU5b,KAAKghD,iBAAiBhhD,KAAKghD,eAAe35C,EAAEyU,UAAU9b,KAAKghD,iBAAiB35C,EAAE4Q,SAASpV,EAAE,CAACmD,KAAKqB,EAAE4Q,SAASM,SAASvY,KAAKihD,mBAAmB3rC,GAAGtV,KAAKshD,QAAQ,GAAG7rC,GAAGzV,KAAKshD,QAAQ,GAAG5rC,GAAG1V,KAAKshD,QAAQ,GAAG3rC,GAAG3V,KAAKshD,QAAQ,GAAG99C,EAAExD,KAAKshD,QAAQ,GAAG79C,EAAEzD,KAAKshD,QAAQ,KAAKthD,KAAKghD,iBAAiB35C,EAAE6Q,gBAAgBrV,EAAE,CAACmD,KAAKqB,EAAE6Q,gBAAgBK,SAASvY,KAAKihD,mBAAmBvrC,GAAG1V,KAAKshD,QAAQ,GAAG3rC,GAAG3V,KAAKshD,QAAQ,GAAG99C,EAAExD,KAAKshD,QAAQ,GAAG79C,EAAEzD,KAAKshD,QAAQ,KAAKthD,KAAKghD,iBAAiB35C,EAAE8Q,QAAQtV,EAAE,CAACmD,KAAKqB,EAAE8Q,QAAQI,SAASvY,KAAKihD,mBAAmB3rC,GAAGtV,KAAKshD,QAAQ,GAAG7rC,GAAGzV,KAAKshD,QAAQ,GAAG99C,EAAExD,KAAKshD,QAAQ,GAAG79C,EAAEzD,KAAKshD,QAAQ,KAAKthD,KAAKghD,iBAAiB35C,EAAEmV,KAAK3Z,EAAE,CAACmD,KAAKqB,EAAEmV,IAAIjE,SAASvY,KAAKihD,mBAAmBxiC,GAAGze,KAAKshD,QAAQ,GAAG5iC,GAAG1e,KAAKshD,QAAQ,GAAG3iC,KAAK3e,KAAKshD,QAAQ,GAAG1iC,SAAS5e,KAAKshD,QAAQ,GAAGziC,UAAU7e,KAAKshD,QAAQ,GAAG99C,EAAExD,KAAKshD,QAAQ,GAAG79C,EAAEzD,KAAKshD,QAAQ,MAAMthD,KAAK+gD,UAAU,GAAG/gD,KAAKohD,uBAAsB,EAAGphD,KAAKmhD,iBAAgB,EAAGnhD,KAAKqhD,qBAAoB,EAAGrhD,KAAKkhD,wBAAuB,EAAG,IAAIlD,EAAEvjD,GAAG,GAAG,MAAMA,GAAGuF,KAAKkhD,uBAAuBlhD,KAAKkhD,wBAAuB,OAAQ,GAAG,MAAMzmD,GAAG,MAAMA,GAAG,MAAMA,EAAE,GAAGwkB,EAAEjf,KAAK+gD,UAAUtmD,EAAEuF,KAAKqhD,qBAAoB,MAAO,CAAC,GAAG,IAAIrhD,KAAKshD,QAAQzoD,OAAO,MAAM,IAAI2oD,YAAY,iCAAiCxoD,EAAE,KAAK,IAAIgH,KAAKkhD,uBAAuB,MAAM,IAAIM,YAAY,yBAAyB/mD,EAAE,cAAczB,EAAE,iCAAiC,GAAGgH,KAAKkhD,wBAAuB,EAAG,MAAMzmD,GAAG,MAAMA,EAAE,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAE2U,cAAchc,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAE6U,aAAalc,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAEuU,QAAQ5b,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAEyU,QAAQ9b,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAE4Q,SAASjY,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAE6Q,gBAAgBlY,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAE8Q,QAAQnY,KAAKihD,mBAAmB,MAAMxmD,OAAO,GAAG,MAAMA,GAAG,MAAMA,EAAEuF,KAAKghD,eAAe35C,EAAE+Q,eAAepY,KAAKihD,mBAAmB,MAAMxmD,MAAM,CAAC,GAAG,MAAMA,GAAG,MAAMA,EAAE,MAAM,IAAI+mD,YAAY,yBAAyB/mD,EAAE,cAAczB,EAAE,KAAKgH,KAAKghD,eAAe35C,EAAEmV,IAAIxc,KAAKihD,mBAAmB,MAAMxmD,OAAOglB,EAAEtc,KAAK,CAAC6C,KAAKqB,EAAEqV,aAAa1c,KAAKkhD,wBAAuB,EAAGlhD,KAAKghD,gBAAgB,OAAOhhD,KAAK+gD,UAAUtmD,EAAEuF,KAAKqhD,oBAAoB,MAAM5mD,OAAOuF,KAAK+gD,WAAWtmD,EAAEuF,KAAKqhD,qBAAoB,OAAQrhD,KAAK+gD,WAAWtmD,OAAOuF,KAAK+gD,WAAWtmD,EAAEuF,KAAKmhD,iBAAgB,OAAQnhD,KAAK+gD,WAAWtmD,EAAEuF,KAAKohD,sBAAsBphD,KAAKmhD,gBAAgB,OAAO1hC,GAAGzQ,EAAEgwB,UAAU/6B,UAAU,SAAS3E,GAAG,OAAOlD,OAAOomC,OAAOxiC,KAAK,CAAC0N,MAAM,CAAC3N,MAAM,SAAS0f,EAAEzQ,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAI,IAAInM,EAAE,EAAE7J,EAAEoD,OAAOs6B,eAAe12B,MAAM0N,MAAM3U,KAAKiH,KAAKyf,GAAG5c,EAAE7J,EAAEH,OAAOgK,IAAI,CAAC,IAAIpI,EAAEzB,EAAE6J,GAAGk7C,EAAEz+C,EAAE7E,GAAGuW,MAAM2uB,QAAQoe,GAAG/uC,EAAE7L,KAAKhK,MAAM6V,EAAE+uC,GAAG/uC,EAAE7L,KAAK46C,GAAG,OAAO/uC,OAAOA,EAAptJ,CAAutJgQ,GAAG3X,EAAE,SAAS/H,GAAG,SAASuD,EAAE4c,GAAG,IAAIzQ,EAAE1P,EAAEvG,KAAKiH,OAAOA,KAAK,OAAOgP,EAAE0I,SAAS,iBAAiB+H,EAAE5c,EAAE6K,MAAM+R,GAAGA,EAAEzQ,EAAE,OAAOyQ,EAAE5c,EAAEvD,GAAGuD,EAAEm8B,UAAUyiB,OAAO,WAAW,OAAO5+C,EAAE4+C,OAAOzhD,KAAK0X,WAAW7U,EAAEm8B,UAAU0iB,UAAU,WAAW,IAAIpiD,EAAEJ,EAAE8gD,mBAAmB,OAAOhgD,KAAKiE,UAAU3E,GAAGA,GAAGuD,EAAEm8B,UAAU/6B,UAAU,SAAS3E,GAAG,IAAI,IAAImgB,EAAE,GAAGzQ,EAAE,EAAEnM,EAAE7C,KAAK0X,SAAS1I,EAAEnM,EAAEhK,OAAOmW,IAAI,CAAC,IAAIhW,EAAEsG,EAAEuD,EAAEmM,IAAIgC,MAAM2uB,QAAQ3mC,GAAGymB,EAAEtc,KAAKhK,MAAMsmB,EAAEzmB,GAAGymB,EAAEtc,KAAKnK,GAAG,OAAOgH,KAAK0X,SAAS+H,EAAEzf,MAAM6C,EAAE4+C,OAAO,SAASniD,GAAG,OAAO0P,EAAE1P,IAAIuD,EAAE6K,MAAM,SAASpO,GAAG,IAAImgB,EAAE,IAAI/kB,EAAEsU,EAAE,GAAG,OAAOyQ,EAAE/R,MAAMpO,EAAE0P,GAAGyQ,EAAE8hC,OAAOvyC,GAAGA,GAAGnM,EAAE6Z,WAAW,EAAE7Z,EAAE+Y,QAAQ,EAAE/Y,EAAEmZ,cAAc,EAAEnZ,EAAEqZ,aAAa,EAAErZ,EAAEiZ,QAAQ,GAAGjZ,EAAEoV,SAAS,GAAGpV,EAAEqV,gBAAgB,GAAGrV,EAAEsV,QAAQ,IAAItV,EAAEuV,eAAe,IAAIvV,EAAE2Z,IAAI,IAAI3Z,EAAEq8C,cAAcr8C,EAAEiZ,QAAQjZ,EAAEmZ,cAAcnZ,EAAEqZ,aAAarZ,EAAEq9C,iBAAiBr9C,EAAEmZ,cAAcnZ,EAAEqZ,aAAarZ,EAAEiZ,QAAQjZ,EAAEoV,SAASpV,EAAEqV,gBAAgBrV,EAAEsV,QAAQtV,EAAEuV,eAAevV,EAAE2Z,IAAI3Z,EAA92B,CAAi3Bmc,GAAGq/B,IAAIpiB,EAAE,IAAI50B,EAAEuU,SAAS,EAAEqgB,EAAE50B,EAAEyU,SAAS,EAAEmgB,EAAE50B,EAAE2U,eAAe,EAAEigB,EAAE50B,EAAE6U,cAAc,EAAE+f,EAAE50B,EAAEqV,YAAY,EAAEuf,EAAE50B,EAAE8Q,SAAS,EAAE8jB,EAAE50B,EAAE+Q,gBAAgB,EAAE6jB,EAAE50B,EAAE4Q,UAAU,EAAEgkB,EAAE50B,EAAE6Q,iBAAiB,EAAE+jB,EAAE50B,EAAEmV,KAAK,EAAEyf,I,qBCbtrjB,IAAI3B,EAAW,EAAQ,QACnBqnB,EAAqB,EAAQ,QAMjCppD,EAAOC,QAAU4D,OAAO66C,iBAAmB,aAAe,GAAK,WAC7D,IAEI2K,EAFAC,GAAiB,EACjBvpD,EAAO,GAEX,IAEEspD,EAASxlD,OAAO4vB,yBAAyB5vB,OAAO4iC,UAAW,aAAa/pB,IACxE2sC,EAAO7oD,KAAKT,EAAM,IAClBupD,EAAiBvpD,aAAgB0Y,MACjC,MAAOyhB,IACT,OAAO,SAAwBwJ,EAAGwC,GAKhC,OAJAnE,EAAS2B,GACT0lB,EAAmBljB,GACfojB,EAAgBD,EAAO7oD,KAAKkjC,EAAGwC,GAC9BxC,EAAE3/B,UAAYmiC,EACZxC,GAfoD,QAiBzDnjC,I,qBCzBN,IAAIyzB,EAAiB,EAAQ,QAAuC7xB,EAChEg0B,EAAM,EAAQ,QACdt2B,EAAkB,EAAQ,QAE1BC,EAAgBD,EAAgB,eAEpCG,EAAOC,QAAU,SAAUskC,EAAIglB,EAAKC,GAC9BjlB,IAAOpO,EAAIoO,EAAKilB,EAASjlB,EAAKA,EAAGkC,UAAW3mC,IAC9Ck0B,EAAeuQ,EAAIzkC,EAAe,CAAEqnC,cAAc,EAAM3/B,MAAO+hD,M,kCCNnE,EAAQ,QACR,IAAIljB,EAAW,EAAQ,QACnBhE,EAAa,EAAQ,QACrBiE,EAAQ,EAAQ,QAChBzmC,EAAkB,EAAQ,QAC1B++C,EAA8B,EAAQ,QAEtC3X,EAAUpnC,EAAgB,WAC1B2mC,EAAkB/C,OAAOgD,UAEzBgjB,GAAiCnjB,GAAM,WAIzC,IAAIuP,EAAK,IAMT,OALAA,EAAGhxC,KAAO,WACR,IAAIoD,EAAS,GAEb,OADAA,EAAOikC,OAAS,CAAEzrC,EAAG,KACdwH,GAEyB,MAA3B,GAAGhH,QAAQ40C,EAAI,WAKpBpK,EAAmB,WAErB,MAAkC,OAA3B,IAAIxqC,QAAQ,IAAK,MAFH,GAKnBoqC,EAAUxrC,EAAgB,WAE1B2rC,EAA+C,WACjD,QAAI,IAAIH,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAFsB,GAS/Cqe,GAAqCpjB,GAAM,WAE7C,IAAIuP,EAAK,OACL8T,EAAe9T,EAAGhxC,KACtBgxC,EAAGhxC,KAAO,WAAc,OAAO8kD,EAAa/oD,MAAM6G,KAAM5G,YACxD,IAAIoH,EAAS,KAAKH,MAAM+tC,GACxB,OAAyB,IAAlB5tC,EAAO3H,QAA8B,MAAd2H,EAAO,IAA4B,MAAdA,EAAO,MAG5DjI,EAAOC,QAAU,SAAU2/C,EAAKt/C,EAAQuE,EAAMkmC,GAC5C,IAAI6e,EAAS/pD,EAAgB+/C,GAEzBiK,GAAuBvjB,GAAM,WAE/B,IAAI5C,EAAI,GAER,OADAA,EAAEkmB,GAAU,WAAc,OAAO,GACZ,GAAd,GAAGhK,GAAKlc,MAGbomB,EAAoBD,IAAwBvjB,GAAM,WAEpD,IAAIyjB,GAAa,EACblU,EAAK,IAkBT,MAhBY,UAAR+J,IAIF/J,EAAK,GAGLA,EAAGlL,YAAc,GACjBkL,EAAGlL,YAAY1D,GAAW,WAAc,OAAO4O,GAC/CA,EAAG1S,MAAQ,GACX0S,EAAG+T,GAAU,IAAIA,IAGnB/T,EAAGhxC,KAAO,WAAiC,OAAnBklD,GAAa,EAAa,MAElDlU,EAAG+T,GAAQ,KACHG,KAGV,IACGF,IACAC,GACQ,YAARlK,KACC6J,IACAhe,GACCD,IAEM,UAARoU,IAAoB8J,EACrB,CACA,IAAIM,EAAqB,IAAIJ,GACzBjK,EAAU96C,EAAK+kD,EAAQ,GAAGhK,IAAM,SAAUqK,EAAcjiD,EAAQ3G,EAAK6oD,EAAMC,GAC7E,IAAIC,EAAQpiD,EAAOnD,KACnB,OAAIulD,IAAU/nB,GAAc+nB,IAAU5jB,EAAgB3hC,KAChDglD,IAAwBM,EAInB,CAAEtmB,MAAM,EAAMr8B,MAAOwiD,EAAmBxpD,KAAKwH,EAAQ3G,EAAK6oD,IAE5D,CAAErmB,MAAM,EAAMr8B,MAAOyiD,EAAazpD,KAAKa,EAAK2G,EAAQkiD,IAEtD,CAAErmB,MAAM,KACd,CACD4H,iBAAkBA,EAClBD,6CAA8CA,IAE5C6e,EAAe1K,EAAQ,GACvB2K,EAAc3K,EAAQ,GAE1BtZ,EAASnmC,OAAOumC,UAAWmZ,EAAKyK,GAChChkB,EAASG,EAAiBojB,EAAkB,GAAVtpD,EAG9B,SAAUyiC,EAAQ8e,GAAO,OAAOyI,EAAY9pD,KAAKuiC,EAAQt7B,KAAMo6C,IAG/D,SAAU9e,GAAU,OAAOunB,EAAY9pD,KAAKuiC,EAAQt7B,QAItDsjC,GAAM6T,EAA4BpY,EAAgBojB,GAAS,QAAQ,K,qBC/HzE,IAAI3hB,EAAS,EAAQ,QACjBsiB,EAAe,EAAQ,QACvBC,EAAuB,EAAQ,QAC/B5L,EAA8B,EAAQ,QACtC/+C,EAAkB,EAAQ,QAE1B6kC,EAAW7kC,EAAgB,YAC3BC,EAAgBD,EAAgB,eAChC4qD,EAAcD,EAAqBv5B,OAEvC,IAAK,IAAIy5B,KAAmBH,EAAc,CACxC,IAAII,EAAa1iB,EAAOyiB,GACpBE,EAAsBD,GAAcA,EAAWlkB,UACnD,GAAImkB,EAAqB,CAEvB,GAAIA,EAAoBlmB,KAAc+lB,EAAa,IACjD7L,EAA4BgM,EAAqBlmB,EAAU+lB,GAC3D,MAAOvwB,GACP0wB,EAAoBlmB,GAAY+lB,EAKlC,GAHKG,EAAoB9qD,IACvB8+C,EAA4BgM,EAAqB9qD,EAAe4qD,GAE9DH,EAAaG,GAAkB,IAAK,IAAI5I,KAAe0I,EAEzD,GAAII,EAAoB9I,KAAiB0I,EAAqB1I,GAAc,IAC1ElD,EAA4BgM,EAAqB9I,EAAa0I,EAAqB1I,IACnF,MAAO5nB,GACP0wB,EAAoB9I,GAAe0I,EAAqB1I,O,qBC5BhE,IAAI+I,EAAqB,EAAQ,QAC7B9N,EAAc,EAAQ,QAK1B/8C,EAAOC,QAAU4D,OAAOyvB,MAAQ,SAAcoQ,GAC5C,OAAOmnB,EAAmBnnB,EAAGqZ,K,qBCP/B,IAAI5mB,EAAM,EAAQ,QACdr1B,EAAW,EAAQ,QACnBo8C,EAAY,EAAQ,QACpB4N,EAA2B,EAAQ,QAEnCvN,EAAWL,EAAU,YACrB6N,EAAkBlnD,OAAO4iC,UAK7BzmC,EAAOC,QAAU6qD,EAA2BjnD,OAAOs6B,eAAiB,SAAUuF,GAE5E,OADAA,EAAI5iC,EAAS4iC,GACTvN,EAAIuN,EAAG6Z,GAAkB7Z,EAAE6Z,GACH,mBAAjB7Z,EAAEiH,aAA6BjH,aAAaA,EAAEiH,YAChDjH,EAAEiH,YAAYlE,UACd/C,aAAa7/B,OAASknD,EAAkB,O,qBChBnD,IAAIzkB,EAAQ,EAAQ,QAEpBtmC,EAAOC,SAAWqmC,GAAM,WACtB,SAAS+X,KAGT,OAFAA,EAAE5X,UAAUkE,YAAc,KAEnB9mC,OAAOs6B,eAAe,IAAIkgB,KAASA,EAAE5X,c,kCCL9C,IAAIukB,EAAkB,EAAQ,QAC1BC,EAAmB,EAAQ,QAC3BphB,EAAY,EAAQ,QACpBqhB,EAAsB,EAAQ,QAC9BC,EAAiB,EAAQ,QAEzBC,EAAiB,iBACjBC,EAAmBH,EAAoBxuC,IACvC4uC,EAAmBJ,EAAoBK,UAAUH,GAYrDprD,EAAOC,QAAUkrD,EAAe1yC,MAAO,SAAS,SAAU+yC,EAAUC,GAClEJ,EAAiB5jD,KAAM,CACrBgG,KAAM29C,EACNx3B,OAAQo3B,EAAgBQ,GACxB5nD,MAAO,EACP6nD,KAAMA,OAIP,WACD,IAAIC,EAAQJ,EAAiB7jD,MACzBmsB,EAAS83B,EAAM93B,OACf63B,EAAOC,EAAMD,KACb7nD,EAAQ8nD,EAAM9nD,QAClB,OAAKgwB,GAAUhwB,GAASgwB,EAAOtzB,QAC7BorD,EAAM93B,YAASrzB,EACR,CAAEiH,WAAOjH,EAAWsjC,MAAM,IAEvB,QAAR4nB,EAAuB,CAAEjkD,MAAO5D,EAAOigC,MAAM,GACrC,UAAR4nB,EAAyB,CAAEjkD,MAAOosB,EAAOhwB,GAAQigC,MAAM,GACpD,CAAEr8B,MAAO,CAAC5D,EAAOgwB,EAAOhwB,IAASigC,MAAM,KAC7C,UAKHgG,EAAU8hB,UAAY9hB,EAAUpxB,MAGhCwyC,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,Y,qBCpDjB,IAAI5kB,EAAW,EAAQ,QAEvBrmC,EAAOC,QAAU,SAAU2zB,EAAQiI,EAAKwF,GACtC,IAAK,IAAI5nB,KAAOoiB,EAAKwK,EAASzS,EAAQna,EAAKoiB,EAAIpiB,GAAM4nB,GACrD,OAAOzN,I,qBCJT,IAAImjB,EAAUuK,EAAQ,QAAe,WACrC,SAASsK,EAAaxK,EAAOyK,GAC3B,GAAuB,WAAnB9U,EAAQqK,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAI0K,EAAO1K,EAAMtW,OAAO6W,aACxB,QAAaphD,IAATurD,EAAoB,CACtB,IAAIloB,EAAMkoB,EAAKtrD,KAAK4gD,EAAOyK,GAAQ,WACnC,GAAqB,WAAjB9U,EAAQnT,GAAmB,OAAOA,EACtC,MAAM,IAAIU,UAAU,gDAEtB,OAAiB,WAATunB,EAAoB3rD,OAAS8c,QAAQokC,GAE/CphD,EAAOC,QAAU2rD,EAAc5rD,EAAOC,QAAQuhD,YAAa,EAAMxhD,EAAOC,QAAQ,WAAaD,EAAOC,S,mBCXpGD,EAAOC,QAAU,SAAU4E,GACzB,IACE,MAAO,CAAEq1B,OAAO,EAAO1yB,MAAO3C,KAC9B,MAAOq1B,GACP,MAAO,CAAEA,OAAO,EAAM1yB,MAAO0yB,M,kCCHjC,IAqDI6xB,EAAUC,EAAsBC,EAAgBC,EArDhDnmB,EAAI,EAAQ,QACZwB,EAAU,EAAQ,QAClBU,EAAS,EAAQ,QACjBxD,EAAa,EAAQ,QACrB0nB,EAAgB,EAAQ,QACxB9lB,EAAW,EAAQ,QACnB+lB,EAAc,EAAQ,QACtB1N,EAAiB,EAAQ,QACzBC,EAAiB,EAAQ,QACzB0N,EAAa,EAAQ,QACrBriB,EAAW,EAAQ,QACnB7pC,EAAY,EAAQ,QACpBmsD,EAAa,EAAQ,QACrBC,EAAgB,EAAQ,QACxBC,EAAU,EAAQ,QAClBC,EAA8B,EAAQ,QACtCxqB,EAAqB,EAAQ,QAC7BohB,EAAO,EAAQ,QAAqB3mC,IACpCgwC,EAAY,EAAQ,QACpBC,EAAiB,EAAQ,QACzBC,EAAmB,EAAQ,QAC3BC,EAA6B,EAAQ,QACrCC,EAAU,EAAQ,QAClB5B,EAAsB,EAAQ,QAC9B6B,EAAW,EAAQ,QACnBltD,EAAkB,EAAQ,QAC1BmtD,EAAa,EAAQ,QACrB5kB,EAAU,EAAQ,QAClBwC,EAAa,EAAQ,QAErB3D,EAAUpnC,EAAgB,WAC1BotD,EAAU,UACV3B,EAAmBJ,EAAoB90B,IACvCi1B,EAAmBH,EAAoBxuC,IACvCwwC,EAA0BhC,EAAoBK,UAAU0B,GACxDE,EAAyBhB,GAAiBA,EAAc1lB,UACxD2mB,EAAqBjB,EACrBkB,EAA8BF,EAC9B7oB,EAAY2D,EAAO3D,UACnB/8B,EAAW0gC,EAAO1gC,SAClBqU,EAAUqsB,EAAOrsB,QACjB0pC,EAAuBuH,EAA2B1qD,EAClDmrD,EAA8BhI,EAC9BiI,KAAoBhmD,GAAYA,EAASimD,aAAevlB,EAAOwlB,eAC/DC,EAAyD,mBAAzBC,sBAChCC,EAAsB,qBACtBC,EAAoB,mBACpBC,EAAU,EACVC,GAAY,EACZC,GAAW,EACXC,GAAU,EACVC,GAAY,EACZC,IAAc,EAGd1O,GAASsN,EAASE,GAAS,WAC7B,IAAImB,EAAyB7B,EAAca,KAAwBltD,OAAOktD,GAI1E,IAAKgB,GAAyC,KAAfxjB,EAAmB,OAAO,EAEzD,GAAIrD,IAAY8lB,EAA4B,WAAY,OAAO,EAI/D,GAAIziB,GAAc,IAAM,cAAc7qC,KAAKqtD,GAAqB,OAAO,EAEvE,IAAI1K,EAAU,IAAI0K,GAAmB,SAAUx+C,GAAWA,EAAQ,MAC9Dy/C,EAAc,SAAUxpD,GAC1BA,GAAK,eAA6B,gBAEhC8lC,EAAc+X,EAAQ/X,YAAc,GAGxC,OAFAA,EAAY1D,GAAWonB,EACvBF,GAAczL,EAAQtwC,MAAK,yBAAwCi8C,GAC9DF,KAEGC,GAA0BpB,IAAeU,KAG/CY,GAAsB7O,KAAWgN,GAA4B,SAAUnnB,GACzE8nB,EAAmBmB,IAAIjpB,GAAU,UAAS,kBAIxCkpB,GAAa,SAAUjqB,GACzB,IAAInyB,EACJ,SAAO43B,EAASzF,IAAkC,mBAAnBnyB,EAAOmyB,EAAGnyB,QAAsBA,GAG7DowC,GAAS,SAAUkJ,EAAO+C,GAC5B,IAAI/C,EAAMgD,SAAV,CACAhD,EAAMgD,UAAW,EACjB,IAAIC,EAAQjD,EAAMkD,UAClBlC,GAAU,WACR,IAAIllD,EAAQkkD,EAAMlkD,MACd+C,EAAKmhD,EAAMA,OAASqC,GACpBnqD,EAAQ,EAEZ,MAAO+qD,EAAMruD,OAASsD,EAAO,CAC3B,IAKIqE,EAAQmK,EAAMy8C,EALdC,EAAWH,EAAM/qD,KACjBmrD,EAAUxkD,EAAKukD,EAASvkD,GAAKukD,EAASE,KACtCpgD,EAAUkgD,EAASlgD,QACnBmxB,EAAS+uB,EAAS/uB,OAClBwe,EAASuQ,EAASvQ,OAEtB,IACMwQ,GACGxkD,IACCmhD,EAAMuD,YAAcf,IAAWgB,GAAkBxD,GACrDA,EAAMuD,UAAYhB,KAEJ,IAAZc,EAAkB9mD,EAAST,GAEzB+2C,GAAQA,EAAO2E,QACnBj7C,EAAS8mD,EAAQvnD,GACb+2C,IACFA,EAAO0E,OACP4L,GAAS,IAGT5mD,IAAW6mD,EAASpM,QACtB3iB,EAAOuE,EAAU,yBACRlyB,EAAOo8C,GAAWvmD,IAC3BmK,EAAK5R,KAAKyH,EAAQ2G,EAASmxB,GACtBnxB,EAAQ3G,IACV83B,EAAOv4B,GACd,MAAO0yB,GACHqkB,IAAWsQ,GAAQtQ,EAAO0E,OAC9BljB,EAAO7F,IAGXwxB,EAAMkD,UAAY,GAClBlD,EAAMgD,UAAW,EACbD,IAAa/C,EAAMuD,WAAWE,GAAYzD,QAI9C+B,GAAgB,SAAUhpD,EAAMi+C,EAASnX,GAC3C,IAAIl+B,EAAO0hD,EACPxB,GACFlgD,EAAQ9F,EAASimD,YAAY,SAC7BngD,EAAMq1C,QAAUA,EAChBr1C,EAAMk+B,OAASA,EACfl+B,EAAM+hD,UAAU3qD,GAAM,GAAO,GAC7BwjC,EAAOwlB,cAAcpgD,IAChBA,EAAQ,CAAEq1C,QAASA,EAASnX,OAAQA,IACtCmiB,IAA2BqB,EAAU9mB,EAAO,KAAOxjC,IAAQsqD,EAAQ1hD,GAC/D5I,IAASmpD,GAAqBhB,EAAiB,8BAA+BrhB,IAGrF4jB,GAAc,SAAUzD,GAC1BrI,EAAK7iD,KAAKynC,GAAQ,WAChB,IAGIhgC,EAHAy6C,EAAUgJ,EAAM2D,OAChB7nD,EAAQkkD,EAAMlkD,MACd8nD,EAAeC,GAAY7D,GAE/B,GAAI4D,IACFrnD,EAAS6kD,GAAQ,WACX1kB,EACFxsB,EAAQ4zC,KAAK,qBAAsBhoD,EAAOk7C,GACrC+K,GAAcG,EAAqBlL,EAASl7C,MAGrDkkD,EAAMuD,UAAY7mB,GAAWmnB,GAAY7D,GAASwC,GAAYD,GAC1DhmD,EAAOiyB,OAAO,MAAMjyB,EAAOT,UAKjC+nD,GAAc,SAAU7D,GAC1B,OAAOA,EAAMuD,YAAchB,KAAYvC,EAAMh/C,QAG3CwiD,GAAoB,SAAUxD,GAChCrI,EAAK7iD,KAAKynC,GAAQ,WAChB,IAAIya,EAAUgJ,EAAM2D,OAChBjnB,EACFxsB,EAAQ4zC,KAAK,mBAAoB9M,GAC5B+K,GAAcI,EAAmBnL,EAASgJ,EAAMlkD,WAIvD0E,GAAO,SAAU9L,EAAIsrD,EAAO+D,GAC9B,OAAO,SAAUjoD,GACfpH,EAAGsrD,EAAOlkD,EAAOioD,KAIjBC,GAAiB,SAAUhE,EAAOlkD,EAAOioD,GACvC/D,EAAM7nB,OACV6nB,EAAM7nB,MAAO,EACT4rB,IAAQ/D,EAAQ+D,GACpB/D,EAAMlkD,MAAQA,EACdkkD,EAAMA,MAAQsC,GACdxL,GAAOkJ,GAAO,KAGZiE,GAAkB,SAAUjE,EAAOlkD,EAAOioD,GAC5C,IAAI/D,EAAM7nB,KAAV,CACA6nB,EAAM7nB,MAAO,EACT4rB,IAAQ/D,EAAQ+D,GACpB,IACE,GAAI/D,EAAM2D,SAAW7nD,EAAO,MAAM88B,EAAU,oCAC5C,IAAIlyB,EAAOo8C,GAAWhnD,GAClB4K,EACFs6C,GAAU,WACR,IAAIkD,EAAU,CAAE/rB,MAAM,GACtB,IACEzxB,EAAK5R,KAAKgH,EACR0E,GAAKyjD,GAAiBC,EAASlE,GAC/Bx/C,GAAKwjD,GAAgBE,EAASlE,IAEhC,MAAOxxB,GACPw1B,GAAeE,EAAS11B,EAAOwxB,QAInCA,EAAMlkD,MAAQA,EACdkkD,EAAMA,MAAQqC,GACdvL,GAAOkJ,GAAO,IAEhB,MAAOxxB,GACPw1B,GAAe,CAAE7rB,MAAM,GAAS3J,EAAOwxB,MAK3C,GAAIjM,KAEF2N,EAAqB,SAAiByC,GACpCvD,EAAW7kD,KAAM2lD,EAAoBH,GACrC9sD,EAAU0vD,GACV9D,EAASvrD,KAAKiH,MACd,IAAIikD,EAAQJ,EAAiB7jD,MAC7B,IACEooD,EAAS3jD,GAAKyjD,GAAiBjE,GAAQx/C,GAAKwjD,GAAgBhE,IAC5D,MAAOxxB,GACPw1B,GAAehE,EAAOxxB,KAG1BmzB,EAA8BD,EAAmB3mB,UAEjDslB,EAAW,SAAiB8D,GAC1BxE,EAAiB5jD,KAAM,CACrBgG,KAAMw/C,EACNppB,MAAM,EACN6qB,UAAU,EACVhiD,QAAQ,EACRkiD,UAAW,GACXK,WAAW,EACXvD,MAAOoC,EACPtmD,WAAOjH,KAGXwrD,EAAStlB,UAAY2lB,EAAYiB,EAA6B,CAG5Dj7C,KAAM,SAAc09C,EAAaC,GAC/B,IAAIrE,EAAQwB,EAAwBzlD,MAChCqnD,EAAWxJ,EAAqBrjB,EAAmBx6B,KAAM2lD,IAO7D,OANA0B,EAASvkD,GAA2B,mBAAfulD,GAA4BA,EACjDhB,EAASE,KAA4B,mBAAde,GAA4BA,EACnDjB,EAASvQ,OAASnW,EAAUxsB,EAAQ2iC,YAASh+C,EAC7CmrD,EAAMh/C,QAAS,EACfg/C,EAAMkD,UAAUhkD,KAAKkkD,GACjBpD,EAAMA,OAASoC,GAAStL,GAAOkJ,GAAO,GACnCoD,EAASpM,SAIlB,MAAS,SAAUqN,GACjB,OAAOtoD,KAAK2K,UAAK7R,EAAWwvD,MAGhC/D,EAAuB,WACrB,IAAItJ,EAAU,IAAIqJ,EACdL,EAAQJ,EAAiB5I,GAC7Bj7C,KAAKi7C,QAAUA,EACfj7C,KAAKmH,QAAU1C,GAAKyjD,GAAiBjE,GACrCjkD,KAAKs4B,OAAS7zB,GAAKwjD,GAAgBhE,IAErCmB,EAA2B1qD,EAAImjD,EAAuB,SAAUvhB,GAC9D,OAAOA,IAAMqpB,GAAsBrpB,IAAMkoB,EACrC,IAAID,EAAqBjoB,GACzBupB,EAA4BvpB,KAG7BwD,GAAmC,mBAAjB4kB,GAA+BgB,IAA2BtpD,OAAO4iC,WAAW,CACjGylB,EAAaiB,EAAuB/6C,KAE/B+7C,KAEH9nB,EAAS8mB,EAAwB,QAAQ,SAAc2C,EAAaC,GAClE,IAAI1vD,EAAOoH,KACX,OAAO,IAAI2lD,GAAmB,SAAUx+C,EAASmxB,GAC/CmsB,EAAW1rD,KAAKH,EAAMuO,EAASmxB,MAC9B3tB,KAAK09C,EAAaC,KAEpB,CAAEjpB,QAAQ,IAGbT,EAAS8mB,EAAwB,QAASE,EAA4B,SAAU,CAAEvmB,QAAQ,KAI5F,WACSqmB,EAAuBxiB,YAC9B,MAAOzQ,KAGLwkB,GACFA,EAAeyO,EAAwBE,GAK7CtnB,EAAE,CAAEkC,QAAQ,EAAM+nB,MAAM,EAAM7pB,OAAQsZ,IAAU,CAC9C9wC,QAASy+C,IAGXzO,EAAeyO,EAAoBH,GAAS,GAAO,GACnDZ,EAAWY,GAEXhB,EAAiBxnB,EAAWwoB,GAG5BlnB,EAAE,CAAEnS,OAAQq5B,EAASgD,MAAM,EAAM9pB,OAAQsZ,IAAU,CAGjD1f,OAAQ,SAAgB7Y,GACtB,IAAIgpC,EAAa5K,EAAqB79C,MAEtC,OADAyoD,EAAWnwB,OAAOv/B,UAAKD,EAAW2mB,GAC3BgpC,EAAWxN,WAItB3c,EAAE,CAAEnS,OAAQq5B,EAASgD,MAAM,EAAM9pB,OAAQoB,GAAWkY,IAAU,CAG5D7wC,QAAS,SAAiB3D,GACxB,OAAO0hD,EAAeplB,GAAW9/B,OAASwkD,EAAiBmB,EAAqB3lD,KAAMwD,MAI1F86B,EAAE,CAAEnS,OAAQq5B,EAASgD,MAAM,EAAM9pB,OAAQmoB,IAAuB,CAG9DC,IAAK,SAAajpB,GAChB,IAAIvB,EAAIt8B,KACJyoD,EAAa5K,EAAqBvhB,GAClCn1B,EAAUshD,EAAWthD,QACrBmxB,EAASmwB,EAAWnwB,OACpB93B,EAAS6kD,GAAQ,WACnB,IAAIqD,EAAkBhwD,EAAU4jC,EAAEn1B,SAC9BqiB,EAAS,GACTyX,EAAU,EACV0nB,EAAY,EAChB5D,EAAQlnB,GAAU,SAAUod,GAC1B,IAAI9+C,EAAQ8kC,IACR2nB,GAAgB,EACpBp/B,EAAOrmB,UAAKrK,GACZ6vD,IACAD,EAAgB3vD,KAAKujC,EAAG2e,GAAStwC,MAAK,SAAU5K,GAC1C6oD,IACJA,GAAgB,EAChBp/B,EAAOrtB,GAAS4D,IACd4oD,GAAaxhD,EAAQqiB,MACtB8O,QAEHqwB,GAAaxhD,EAAQqiB,MAGzB,OADIhpB,EAAOiyB,OAAO6F,EAAO93B,EAAOT,OACzB0oD,EAAWxN,SAIpB4N,KAAM,SAAchrB,GAClB,IAAIvB,EAAIt8B,KACJyoD,EAAa5K,EAAqBvhB,GAClChE,EAASmwB,EAAWnwB,OACpB93B,EAAS6kD,GAAQ,WACnB,IAAIqD,EAAkBhwD,EAAU4jC,EAAEn1B,SAClC49C,EAAQlnB,GAAU,SAAUod,GAC1ByN,EAAgB3vD,KAAKujC,EAAG2e,GAAStwC,KAAK89C,EAAWthD,QAASmxB,SAI9D,OADI93B,EAAOiyB,OAAO6F,EAAO93B,EAAOT,OACzB0oD,EAAWxN,Y,qBCrYtB,IAAIte,EAAU,EAAQ,QAKtBpkC,EAAOC,QAAUwY,MAAM2uB,SAAW,SAAiBya,GACjD,MAAuB,SAAhBzd,EAAQyd,K,qBCNjB,IAAIhiD,EAAkB,EAAQ,QAC1BgqC,EAAY,EAAQ,QAEpBnF,EAAW7kC,EAAgB,YAC3BsqC,EAAiB1xB,MAAMguB,UAG3BzmC,EAAOC,QAAU,SAAUskC,GACzB,YAAchkC,IAAPgkC,IAAqBsF,EAAUpxB,QAAU8rB,GAAM4F,EAAezF,KAAcH,K,kCCPrF,IAAIpkC,EAAY,EAAQ,QAEpBowD,EAAoB,SAAUxsB,GAChC,IAAIn1B,EAASmxB,EACbt4B,KAAKi7C,QAAU,IAAI3e,GAAE,SAAUysB,EAAWC,GACxC,QAAgBlwD,IAAZqO,QAAoCrO,IAAXw/B,EAAsB,MAAMuE,UAAU,2BACnE11B,EAAU4hD,EACVzwB,EAAS0wB,KAEXhpD,KAAKmH,QAAUzO,EAAUyO,GACzBnH,KAAKs4B,OAAS5/B,EAAU4/B,IAK1B//B,EAAOC,QAAQkC,EAAI,SAAU4hC,GAC3B,OAAO,IAAIwsB,EAAkBxsB,K,qBCjB/B,IAAI2sB,EAAwB,EAAQ,QAChCC,EAAa,EAAQ,QACrB9wD,EAAkB,EAAQ,QAE1BC,EAAgBD,EAAgB,eAEhC+wD,EAAuE,aAAnDD,EAAW,WAAc,OAAO9vD,UAArB,IAG/BgwD,EAAS,SAAUtsB,EAAI9qB,GACzB,IACE,OAAO8qB,EAAG9qB,GACV,MAAOygB,MAIXl6B,EAAOC,QAAUywD,EAAwBC,EAAa,SAAUpsB,GAC9D,IAAIb,EAAGotB,EAAK7oD,EACZ,YAAc1H,IAAPgkC,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhDusB,EAAMD,EAAOntB,EAAI7/B,OAAO0gC,GAAKzkC,IAA8BgxD,EAEnEF,EAAoBD,EAAWjtB,GAEH,WAA3Bz7B,EAAS0oD,EAAWjtB,KAAsC,mBAAZA,EAAEqtB,OAAuB,YAAc9oD,I,mBCtB5FjI,EAAOC,QAAU,CACf+wD,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,I,qBChCb,IAAIvP,EAAgB,EAAQ,QAE5BvjD,EAAOC,QAAUsjD,IACXzY,OAAOC,MACkB,iBAAnBD,OAAOtF,U,qBCLnB,IAAIyC,EAAS,EAAQ,QAErBjoC,EAAOC,QAAUgoC,EAAOt5B","file":"js/chunk-79ed08ba.455172bc.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle \n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, UNSUPPORTED_Y);\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar $startsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov \n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height'];\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >> shgSum;\n pixels[yi + 1] = gSum * mulSum >> shgSum;\n pixels[yi + 2] = bSum * mulSum >> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","module.exports = typeof window == 'object';\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\nvar shared = require('./shared');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;et.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;vc.maxX&&(c.maxX=t),tc.maxY&&(c.maxY=t),tw&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);fw&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return iR&&wR&&wu)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExpPrototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n"],"sourceRoot":""}