{"version":3,"sources":["webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/error-stack-clear.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/html.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/define-built-in-accessor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/iterator-create-constructor.js","webpack:///./node_modules/.pnpm/stackblur-canvas@2.6.0/node_modules/stackblur-canvas/dist/stackblur-es.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.constructor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.race.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.catch.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/proxy-accessor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/queue.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/.pnpm/@babel+runtime@7.23.8/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/task.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/is-possible-prototype.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.all.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.error.cause.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/array-slice.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/microtask.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/.pnpm/raf@3.4.1/node_modules/raf/index.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/safe-get-built-in.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/iterate.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/.pnpm/@babel+runtime@7.23.8/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/promise-constructor-detection.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.reject.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/perform.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/.pnpm/rgbcolor@1.0.1/node_modules/rgbcolor/index.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/iterator-define.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/promise-native-constructor.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/.pnpm/@babel+runtime@7.23.8/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/engine-is-deno.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/.pnpm/canvg@3.0.10/node_modules/canvg/lib/index.es.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/classof.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/error-stack-install.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/to-string.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.promise.resolve.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/set-species.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/.pnpm/@babel+runtime@7.23.8/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/.pnpm/svg-pathdata@6.0.3/node_modules/svg-pathdata/lib/SVGPathData.module.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/.pnpm/core-js@3.35.1/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/.pnpm/performance-now@2.1.0/node_modules/performance-now/lib/performance-now.js"],"names":["anObject","module","exports","that","this","result","hasIndices","global","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","getBuiltIn","hasOwn","createNonEnumerableProperty","isPrototypeOf","setPrototypeOf","copyConstructorProperties","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","installErrorStack","DESCRIPTORS","IS_PURE","FULL_NAME","wrapper","FORCED","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","path","split","ERROR_NAME","length","OriginalError","apply","OriginalErrorPrototype","prototype","cause","BaseError","WrappedError","a","b","message","undefined","stack","arguments","name","constructor","error","uncurryThis","toIntegerOrInfinity","toString","requireObjectCoercible","charAt","charCodeAt","stringSlice","slice","createMethod","CONVERT_TO_STRING","$this","pos","first","second","S","position","size","codeAt","whitespaces","replace","ltrim","RegExp","rtrim","TYPE","string","start","end","trim","$","$indexOf","indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","target","proto","forced","searchElement","fromIndex","call","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","speciesConstructor","advanceStringIndex","toLength","getMethod","regExpExec","stickyHelpers","fails","UNSUPPORTED_Y","MAX_UINT32","min","Math","push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","exec","BUGGY","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","O","splitter","rx","res","done","value","C","unicodeMatching","flags","source","lim","p","q","A","lastIndex","e","z","i","isCallable","classof","inspectSource","noop","construct","constructorRegExp","INCORRECT_TO_STRING","test","isConstructorModern","argument","isConstructorLegacy","sham","called","Object","activeXDocument","definePropertiesModule","enumBugKeys","hiddenKeys","html","documentCreateElement","sharedKey","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","style","display","appendChild","src","String","contentWindow","document","open","F","NullProtoObject","ActiveXObject","domain","create","Properties","f","$Error","Error","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","Iterators","wellKnownSymbol","ITERATOR","it","makeBuiltIn","defineProperty","descriptor","get","getter","set","setter","PROPER_FUNCTION_NAME","PROPER","defineBuiltIn","$toString","getRegExpFlags","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","pattern","unsafe","iterator","kind","innerResult","innerError","IteratorPrototype","createPropertyDescriptor","setToStringTag","returnThis","IteratorConstructor","NAME","next","ENUMERABLE_NEXT","TO_STRING_TAG","_typeof","obj","Symbol","_classCallCheck","instance","Constructor","TypeError","mulTable","shgTable","getImageDataFromCanvas","canvas","topX","topY","width","height","getElementById","context","getContext","getImageData","processCanvasRGBA","radius","isNaN","imageData","processImageDataRGBA","putImageData","stackEnd","pixels","data","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stackIn","stackOut","yw","yi","mulSum","shgSum","y","pr","pg","pb","pa","_i","r","g","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","x","paInitial","_a2","_p","_stackOut","_r","_g","_b","_a","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","IS_NODE","setSpecies","aCallable","isObject","anInstance","task","microtask","hostReportErrors","perform","Queue","InternalStateModule","NativePromiseConstructor","PromiseConstructorDetection","newPromiseCapabilityModule","PROMISE","FORCED_PROMISE_CONSTRUCTOR","CONSTRUCTOR","NATIVE_PROMISE_REJECTION_EVENT","REJECTION_EVENT","NATIVE_PROMISE_SUBCLASSING","SUBCLASSING","getInternalPromiseState","getterFor","setInternalState","NativePromisePrototype","PromiseConstructor","PromisePrototype","process","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","then","callReaction","reaction","state","exited","ok","handler","fail","resolve","reject","rejection","onHandleUnhandled","enter","exit","promise","notify","isReject","notified","reactions","onUnhandled","reason","event","initEvent","facade","IS_UNHANDLED","isUnhandled","emit","parent","bind","fn","unwrap","internalReject","internalResolve","executor","type","onFulfilled","onRejected","add","wrap","Promise","iterate","PROMISE_STATICS_INCORRECT_ITERATION","stat","race","iterable","capability","$promiseResolve","real","method","console","Target","Source","key","configurable","head","tail","item","entry","getOwnPropertyDescriptor","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","writable","endsWith","searchString","endPosition","len","search","userAgent","tryToString","getIteratorMethod","$TypeError","usingIterator","iteratorMethod","$RegExp","$trim","forcedStringTrimMethod","require","toPrimitive","toPropertyKey","t","__esModule","isPossiblePrototype","$String","MATCH","nativeMatch","regexp","matcher","fullUnicode","n","matchStr","$location","defer","channel","port","arraySlice","createElement","validateArgumentsLength","IS_IOS","setImmediate","clear","clearImmediate","Dispatch","Function","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","id","runner","eventListener","globalPostMessageDefer","postMessage","protocol","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","Prototype","toIndexedObject","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","getInternalState","Array","iterated","index","values","Arguments","getPrototypeOf","all","remaining","alreadyCalled","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","arity","exportWebAssemblyErrorCauseWrapper","init","object","toggle","node","safeGetBuiltIn","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","flush","createTextNode","observe","characterData","regexpExec","SPECIES","KEY","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","str","arg2","forceStringMethod","$exec","root","window","vendors","suffix","raf","caf","last","frameDuration","callback","_now","max","cp","cancelled","round","handle","cancel","polyfill","requestAnimationFrame","cancelAnimationFrame","regExpFlags","isRegExp","METHOD_NAME","error1","error2","isArrayIteratorMethod","lengthOfArrayLike","getIterator","iteratorClose","Result","stopped","ResultPrototype","unboundFunction","options","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","isConstructor","uncurryThisAccessor","aPossiblePrototype","CORRECT_SETTER","__proto__","aConstructor","defaultConstructor","getSubstitution","REPLACE","concat","stringIndexOf","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","groups","_","nativeReplace","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacement","matched","captures","j","namedCaptures","replacerArgs","DOMIterables","DOMTokenListPrototype","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","toObject","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","tailPos","m","symbols","match","ch","capture","non","V8_PROTOTYPE_DEFINE_BUG","definePropertyModule","objectKeys","defineProperties","props","keys","promiseCapability","IS_DENO","Number","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","ArrayPrototype","isForced","IS_BROWSER","V8_VERSION","PromiseRejectionEvent","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","SAFE_CLOSING","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","internalObjectKeys","isArray","nativeReverse","reverse","capabilityReject","NATIVE_BIND","startsWith","color_string","alpha","substr","toLowerCase","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","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","example","bits","parseInt","parseFloat","processor","channels","toRGB","toRGBA","toHex","getHelpXML","examples","sc","xml","setAttribute","list_item","list_color","RGBColor","example_div","cssText","list_item_value","PromiseCapability","$$resolve","$$reject","passed","required","FunctionName","createIteratorConstructor","IteratorsCore","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","Pebble","checkCorrectnessOfIteration","classList","_defineProperty","enumerable","MISSED_STICKY","BROKEN_CARET","UNSCOPABLES","$default","Deno","version","dummy","Wrapper","NewTarget","NewTargetPrototype","offscreen","DOMParser","DOMParserFallback","preset","ignoreAnimation","ignoreMouse","OffscreenCanvas","url","response","fetch","blob","img","createImageBitmap","Reflect","deleteProperty","_ref","createCanvas","createImage","loadImage","freeze","compressSpaces","trimLeft","trimRight","toNumbers","matches","map","allUppercase","normalizeAttributeName","parseExternalUrl","urlMatch","normalizeColor","color","rgbParts","normalizedColor","num","isFloat","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","CB2","CB3","CB4","QB1","QB2","QB3","Property","isNormalizedColor","getString","zeroIsValue","isString","hasValue","asString","def","rootEmSize","emSize","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","getNumber","computeSize","getRem","getEm","getDpi","PI","definitions","element","opacity","getDefinition","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","setValue","textBaselineMapping","getColor","commas","ViewPort","viewPorts","pop","getCurrent","d","Point","point","defaultValue","scale","points","pathPoints","atan2","transform","xp","Mouse","working","events","eventElements","onClick","onMouseMove","onclick","onmousemove","cursor","forEach","_ref2","isPointInPath","boundingBox","_ref3","isPointInBox","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","mapXY","clientX","clientY","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","isReadyLock","isFirstRender","intervalId","checker","readyPromise","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","Date","tick","shouldUpdate","runEvents","reduce","animation","update","hasEvents","setCurrent","widthStyle","getStyle","heightStyle","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","parser","checkDocument","err","parserError","getElementsByTagName","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","c","h","det","Skew","skew","super","SkewX","SkewY","parseTransforms","parseTransform","Transform","transforms","TransformType","transformTypes","transformOriginXProperty","transformOriginYProperty","unapply","applyToPoint","skewX","skewY","Element","captureTextNodes","attributes","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","attribute","nodeName","addStylesFromStyleDefinition","childNodes","childNode","addChild","textNode","getText","createIfNotExists","attr","_attr","empty","skipAncestors","parentStyle","_style","save","mask","applyEffects","getValue","filter","setContext","renderChildren","clearContext","restore","fromElement","clipPathStyleProp","child","ignoreChildTypes","includes","_node$getAttribute","styleClasses","some","styleClass","matchesSelector","existingSpecificity","ignoreStyles","toRestore","styleProp","_this$parent","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontFamily","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","font","parts","part","variants","weights","BoundingBox","x1","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","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","isPixels","globalAlpha","calculateOpacity","popEmSize","PathElement","pathParser","reset","isEnd","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","sx","sy","arc","Boolean","GlyphElement","horizAdvX","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","renderChild","isWorking","checkBoundingBox","getBoundingBox","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","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","_this$node$parentNode","setDefaults","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","setViewBox","removeCurrent","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","ry","KAPPA","CircleElement","EllipseElement","LineElement","x0","y0","getPoints","PolylineElement","parsePath","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","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","valuesAttr","attributeType","attributeName","progress","getProgress","newValue","prop","getProperty","getUnits","updated","calcValue","typeAttr","lb","ub","ceil","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","ownKeys$2","enumerableOnly","getOwnPropertySymbols","sym","_objectSpread$2","getOwnPropertyDescriptors","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","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","findSegmentToFitChar","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","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","equidistantCache","getPointOnPath","targetDistance","buildEquidistantCache","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","svgDocument","fontNode","StyleElement","css","cssDefs","cssParts","cssClasses","cssProps","cssClass","cssProp","srcs","UseElement","tempSvg","oldParent","cachedElement","imGet","_height","rgba","imSet","val","mi","m1","m2","m3","FeColorMatrixElement","includeOpacity","srcData","nr","ng","nb","na","MaskElement","ignoredStyles","removeStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","restoreStyles","ClipPathElement","contextProto","elementTransform","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","TitleElement","DescElement","elements","ownKeys$1","_objectSpread$1","_createImage","anonymousCrossOrigin","crossOrigin","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","wait","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","elementType","ElementType","elementTypes","config","ownKeys","_objectSpread","Canvg","createDocumentElement","_arguments","fromString","ready","_arguments2","baseOptions","resize","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TAG","STATIC","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","tag","callee","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","defineBuiltInAccessor","CONSTRUCTOR_NAME","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","self","hasOwnProperty","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","regexpFlags","shared","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","raw","charsAdded","strCopy","input","FunctionPrototype","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime"],"mappings":"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K,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,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,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,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","file":"js/chunk-319b2a6e.9cbef1f4.js","sourcesContent":["'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.hasIndices) result += 'd';\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.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\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","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\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 toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\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\nvar BUGGY = '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-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : 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 = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(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 (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\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 // ^(? + 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 regExpExec(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 = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, 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 push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = 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 activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\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\n// eslint-disable-next-line es/no-object-create -- safe\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 : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-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 = PROPER_FUNCTION_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 defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'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, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\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","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\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(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, 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\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\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_PROMISE_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 call(task, 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 call(task, 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 new 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 call(then, 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_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\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: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\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 && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { 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, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\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\nvar slice = uncurryThis(''.slice);\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 = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\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';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 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 = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\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 = toString(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","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, 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 eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, 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 = eventListener;\n defer = bind(port.postMessage, port);\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 isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, 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","'use strict';\nvar 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","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\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 defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\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 index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar 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 $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(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 remaining++;\n call($promiseResolve, 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});\n","'use strict';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\n// eslint-disable-next-line es/no-error-cause -- feature detection\nvar FORCED = new Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\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;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\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 (!IS_IOS_PEBBLE && 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 = bind(promise.then, promise);\n notify = function () {\n then(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.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp 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 () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\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: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\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","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar 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 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 call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\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_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\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 || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\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\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\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\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 = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(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 = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\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++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\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 setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\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\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\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(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 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 ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar 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]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-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\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\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++], props[key]);\n return O;\n};\n","'use strict';\nvar 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","'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';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\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","'use strict';\nvar 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 global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\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#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['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 || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(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 || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar 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 try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\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","'use strict';\nvar 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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].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(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nmodule.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 uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\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\nvar stringSlice = uncurryThis(''.slice);\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 = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\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","'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 aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(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","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-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 defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\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 && KIND in IterablePrototype) return IterablePrototype[KIND];\n\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 }\n\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 (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(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 (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\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 defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\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","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\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 fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\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 defineProperty(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","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\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\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 = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\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' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\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 $Object = Object;\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 var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\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';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\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 0 && (!re.multiline || re.multiline && charAt(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 = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], 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't work for /(.?)?/\n call(nativeReplace, 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 if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\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 !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\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"],"sourceRoot":""}