//fgnass.github.com/spin.js#v2.0.0 !function (a, b) { "object" == typeof exports ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.Spinner = b() }(this, function () { "use strict"; function a(a, b) { var c, d = document.createElement(a || "div"); for (c in b) d[c] = b[c]; return d } function b(a) { for (var b = 1, c = arguments.length; c > b; b++) a.appendChild(arguments[b]); return a } function c(a, b, c, d) { var e = ["opacity", b, ~~(100 * a), c, d].join("-"), f = .01 + c / d * 100, g = Math.max(1 - (1 - a) / b * (100 - f), a), h = j.substring(0, j.indexOf("Animation")).toLowerCase(), i = h && "-" + h + "-" || ""; return l[e] || (m.insertRule("@" + i + "keyframes " + e + "{0%{opacity:" + g + "}" + f + "%{opacity:" + a + "}" + (f + .01) + "%{opacity:1}" + (f + b) % 100 + "%{opacity:" + a + "}100%{opacity:" + g + "}}", m.cssRules.length), l[e] = 1), e } function d(a, b) { var c, d, e = a.style; for (b = b.charAt(0).toUpperCase() + b.slice(1), d = 0; d < k.length; d++) if (c = k[d] + b, void 0 !== e[c]) return c; return void 0 !== e[b] ? b : void 0 } function e(a, b) { for (var c in b) a.style[d(a, c) || c] = b[c]; return a } function f(a) { for (var b = 1; b < arguments.length; b++) { var c = arguments[b]; for (var d in c) void 0 === a[d] && (a[d] = c[d]) } return a } function g(a, b) { return "string" == typeof a ? a : a[b % a.length] } function h(a) { this.opts = f(a || {}, h.defaults, n) } function i() { function c(b, c) { return a("<" + b + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', c) } m.addRule(".spin-vml", "behavior:url(#default#VML)"), h.prototype.lines = function (a, d) { function f() { return e(c("group", {coordsize: k + " " + k, coordorigin: -j + " " + -j}), {width: k, height: k}) } function h(a, h, i) { b(m, b(e(f(), { rotation: 360 / d.lines * a + "deg", left: ~~h }), b(e(c("roundrect", {arcsize: d.corners}), { width: j, height: d.width, left: d.radius, top: -d.width >> 1, filter: i }), c("fill", {color: g(d.color, a), opacity: d.opacity}), c("stroke", {opacity: 0})))) } var i, j = d.length + d.width, k = 2 * j, l = 2 * -(d.width + d.length) + "px", m = e(f(), {position: "absolute", top: l, left: l}); if (d.shadow) for (i = 1; i <= d.lines; i++) h(i, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)"); for (i = 1; i <= d.lines; i++) h(i); return b(a, m) }, h.prototype.opacity = function (a, b, c, d) { var e = a.firstChild; d = d.shadow && d.lines || 0, e && b + d < e.childNodes.length && (e = e.childNodes[b + d], e = e && e.firstChild, e = e && e.firstChild, e && (e.opacity = c)) } } var j, k = ["webkit", "Moz", "ms", "O"], l = {}, m = function () { var c = a("style", {type: "text/css"}); return b(document.getElementsByTagName("head")[0], c), c.sheet || c.styleSheet }(), n = { lines: 12, length: 7, width: 5, radius: 10, rotate: 0, corners: 1, color: "#000", direction: 1, speed: 1, trail: 100, opacity: .25, fps: 20, zIndex: 2e9, className: "spinner", top: "50%", left: "50%", position: "absolute" }; h.defaults = {}, f(h.prototype, { spin: function (b) { this.stop(); { var c = this, d = c.opts, f = c.el = e(a(0, {className: d.className}), {position: d.position, width: 0, zIndex: d.zIndex}); d.radius + d.length + d.width } if (b && (b.insertBefore(f, b.firstChild || null), e(f, { left: d.left, top: d.top })), f.setAttribute("role", "progressbar"), c.lines(f, c.opts), !j) { var g, h = 0, i = (d.lines - 1) * (1 - d.direction) / 2, k = d.fps, l = k / d.speed, m = (1 - d.opacity) / (l * d.trail / 100), n = l / d.lines; !function o() { h++; for (var a = 0; a < d.lines; a++) g = Math.max(1 - (h + (d.lines - a) * n) % l * m, d.opacity), c.opacity(f, a * d.direction + i, g, d); c.timeout = c.el && setTimeout(o, ~~(1e3 / k)) }() } return c }, stop: function () { var a = this.el; return a && (clearTimeout(this.timeout), a.parentNode && a.parentNode.removeChild(a), this.el = void 0), this }, lines: function (d, f) { function h(b, c) { return e(a(), { position: "absolute", width: f.length + f.width + "px", height: f.width + "px", background: b, boxShadow: c, transformOrigin: "left", transform: "rotate(" + ~~(360 / f.lines * k + f.rotate) + "deg) translate(" + f.radius + "px,0)", borderRadius: (f.corners * f.width >> 1) + "px" }) } for (var i, k = 0, l = (f.lines - 1) * (1 - f.direction) / 2; k < f.lines; k++) i = e(a(), { position: "absolute", top: 1 + ~(f.width / 2) + "px", transform: f.hwaccel ? "translate3d(0,0,0)" : "", opacity: f.opacity, animation: j && c(f.opacity, f.trail, l + k * f.direction, f.lines) + " " + 1 / f.speed + "s linear infinite" }), f.shadow && b(i, e(h("#000", "0 0 4px #000"), {top: "2px"})), b(d, b(i, h(g(f.color, k), "0 0 1px rgba(0,0,0,.1)"))); return d }, opacity: function (a, b, c) { b < a.childNodes.length && (a.childNodes[b].style.opacity = c) } }); var o = e(a("group"), {behavior: "url(#default#VML)"}); return !d(o, "transform") && o.adj ? i() : j = d(o, "animation"), h }); /*! @license DOMPurify 3.0.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.8/LICENSE */ !function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).DOMPurify = t() }(this, (function () { "use strict"; const {entries: e, setPrototypeOf: t, isFrozen: n, getPrototypeOf: o, getOwnPropertyDescriptor: r} = Object; let {freeze: i, seal: a, create: l} = Object, {apply: c, construct: s} = "undefined" != typeof Reflect && Reflect; i || (i = function (e) { return e }), a || (a = function (e) { return e }), c || (c = function (e, t, n) { return e.apply(t, n) }), s || (s = function (e, t) { return new e(...t) }); const u = b(Array.prototype.forEach), m = b(Array.prototype.pop), f = b(Array.prototype.push), p = b(String.prototype.toLowerCase), d = b(String.prototype.toString), h = b(String.prototype.match), g = b(String.prototype.replace), T = b(String.prototype.indexOf), y = b(String.prototype.trim), E = b(RegExp.prototype.test), A = (_ = TypeError, function () { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return s(_, t) }); var _; function b(e) { return function (t) { for (var n = arguments.length, o = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) o[r - 1] = arguments[r]; return c(e, t, o) } } function N(e, o) { let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : p; t && t(e, null); let i = o.length; for (; i--;) { let t = o[i]; if ("string" == typeof t) { const e = r(t); e !== t && (n(o) || (o[i] = e), t = e) } e[t] = !0 } return e } function S(e) { for (let t = 0; t < e.length; t++) void 0 === r(e, t) && (e[t] = null); return e } function R(t) { const n = l(null); for (const [o, i] of e(t)) void 0 !== r(t, o) && (Array.isArray(i) ? n[o] = S(i) : i && "object" == typeof i && i.constructor === Object ? n[o] = R(i) : n[o] = i); return n } function w(e, t) { for (; null !== e;) { const n = r(e, t); if (n) { if (n.get) return b(n.get); if ("function" == typeof n.value) return b(n.value) } e = o(e) } return function (e) { return console.warn("fallback value for", e), null } } const D = i(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), L = i(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), v = i(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), x = i(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), k = i(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), C = i(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), O = i(["#text"]), I = i(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]), M = i(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), U = i(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), P = i(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), F = a(/\{\{[\w\W]*|[\w\W]*\}\}/gm), H = a(/<%[\w\W]*|[\w\W]*%>/gm), z = a(/\${[\w\W]*}/gm), B = a(/^data-[\-\w.\u00B7-\uFFFF]/), W = a(/^aria-[\-\w]+$/), G = a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), Y = a(/^(?:\w+script|data):/i), j = a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), q = a(/^html$/i); var X = Object.freeze({ __proto__: null, MUSTACHE_EXPR: F, ERB_EXPR: H, TMPLIT_EXPR: z, DATA_ATTR: B, ARIA_ATTR: W, IS_ALLOWED_URI: G, IS_SCRIPT_OR_DATA: Y, ATTR_WHITESPACE: j, DOCTYPE_NAME: q }); const K = function () { return "undefined" == typeof window ? null : window }, V = function (e, t) { if ("object" != typeof e || "function" != typeof e.createPolicy) return null; let n = null; const o = "data-tt-policy-suffix"; t && t.hasAttribute(o) && (n = t.getAttribute(o)); const r = "dompurify" + (n ? "#" + n : ""); try { return e.createPolicy(r, {createHTML: e => e, createScriptURL: e => e}) } catch (e) { return console.warn("TrustedTypes policy " + r + " could not be created."), null } }; var $ = function t() { let n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : K(); const o = e => t(e); if (o.version = "3.0.8", o.removed = [], !n || !n.document || 9 !== n.document.nodeType) return o.isSupported = !1, o; let {document: r} = n; const a = r, c = a.currentScript, { DocumentFragment: s, HTMLTemplateElement: _, Node: b, Element: S, NodeFilter: F, NamedNodeMap: H = n.NamedNodeMap || n.MozNamedAttrMap, HTMLFormElement: z, DOMParser: B, trustedTypes: W } = n, Y = S.prototype, j = w(Y, "cloneNode"), $ = w(Y, "nextSibling"), Z = w(Y, "childNodes"), J = w(Y, "parentNode"); if ("function" == typeof _) { const e = r.createElement("template"); e.content && e.content.ownerDocument && (r = e.content.ownerDocument) } let Q, ee = ""; const { implementation: te, createNodeIterator: ne, createDocumentFragment: oe, getElementsByTagName: re } = r, {importNode: ie} = a; let ae = {}; o.isSupported = "function" == typeof e && "function" == typeof J && te && void 0 !== te.createHTMLDocument; const { MUSTACHE_EXPR: le, ERB_EXPR: ce, TMPLIT_EXPR: se, DATA_ATTR: ue, ARIA_ATTR: me, IS_SCRIPT_OR_DATA: fe, ATTR_WHITESPACE: pe } = X; let {IS_ALLOWED_URI: de} = X, he = null; const ge = N({}, [...D, ...L, ...v, ...k, ...O]); let Te = null; const ye = N({}, [...I, ...M, ...U, ...P]); let Ee = Object.seal(l(null, { tagNameCheck: {writable: !0, configurable: !1, enumerable: !0, value: null}, attributeNameCheck: {writable: !0, configurable: !1, enumerable: !0, value: null}, allowCustomizedBuiltInElements: {writable: !0, configurable: !1, enumerable: !0, value: !1} })), Ae = null, _e = null, be = !0, Ne = !0, Se = !1, Re = !0, we = !1, De = !1, Le = !1, ve = !1, xe = !1, ke = !1, Ce = !1, Oe = !0, Ie = !1; const Me = "user-content-"; let Ue = !0, Pe = !1, Fe = {}, He = null; const ze = N({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); let Be = null; const We = N({}, ["audio", "video", "img", "source", "image", "track"]); let Ge = null; const Ye = N({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), je = "http://www.w3.org/1998/Math/MathML", qe = "http://www.w3.org/2000/svg", Xe = "http://www.w3.org/1999/xhtml"; let Ke = Xe, Ve = !1, $e = null; const Ze = N({}, [je, qe, Xe], d); let Je = null; const Qe = ["application/xhtml+xml", "text/html"], et = "text/html"; let tt = null, nt = null; const ot = r.createElement("form"), rt = function (e) { return e instanceof RegExp || e instanceof Function }, it = function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (!nt || nt !== e) { if (e && "object" == typeof e || (e = {}), e = R(e), Je = -1 === Qe.indexOf(e.PARSER_MEDIA_TYPE) ? et : e.PARSER_MEDIA_TYPE, tt = "application/xhtml+xml" === Je ? d : p, he = "ALLOWED_TAGS" in e ? N({}, e.ALLOWED_TAGS, tt) : ge, Te = "ALLOWED_ATTR" in e ? N({}, e.ALLOWED_ATTR, tt) : ye, $e = "ALLOWED_NAMESPACES" in e ? N({}, e.ALLOWED_NAMESPACES, d) : Ze, Ge = "ADD_URI_SAFE_ATTR" in e ? N(R(Ye), e.ADD_URI_SAFE_ATTR, tt) : Ye, Be = "ADD_DATA_URI_TAGS" in e ? N(R(We), e.ADD_DATA_URI_TAGS, tt) : We, He = "FORBID_CONTENTS" in e ? N({}, e.FORBID_CONTENTS, tt) : ze, Ae = "FORBID_TAGS" in e ? N({}, e.FORBID_TAGS, tt) : {}, _e = "FORBID_ATTR" in e ? N({}, e.FORBID_ATTR, tt) : {}, Fe = "USE_PROFILES" in e && e.USE_PROFILES, be = !1 !== e.ALLOW_ARIA_ATTR, Ne = !1 !== e.ALLOW_DATA_ATTR, Se = e.ALLOW_UNKNOWN_PROTOCOLS || !1, Re = !1 !== e.ALLOW_SELF_CLOSE_IN_ATTR, we = e.SAFE_FOR_TEMPLATES || !1, De = e.WHOLE_DOCUMENT || !1, xe = e.RETURN_DOM || !1, ke = e.RETURN_DOM_FRAGMENT || !1, Ce = e.RETURN_TRUSTED_TYPE || !1, ve = e.FORCE_BODY || !1, Oe = !1 !== e.SANITIZE_DOM, Ie = e.SANITIZE_NAMED_PROPS || !1, Ue = !1 !== e.KEEP_CONTENT, Pe = e.IN_PLACE || !1, de = e.ALLOWED_URI_REGEXP || G, Ke = e.NAMESPACE || Xe, Ee = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && rt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (Ee.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && rt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (Ee.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (Ee.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), we && (Ne = !1), ke && (xe = !0), Fe && (he = N({}, O), Te = [], !0 === Fe.html && (N(he, D), N(Te, I)), !0 === Fe.svg && (N(he, L), N(Te, M), N(Te, P)), !0 === Fe.svgFilters && (N(he, v), N(Te, M), N(Te, P)), !0 === Fe.mathMl && (N(he, k), N(Te, U), N(Te, P))), e.ADD_TAGS && (he === ge && (he = R(he)), N(he, e.ADD_TAGS, tt)), e.ADD_ATTR && (Te === ye && (Te = R(Te)), N(Te, e.ADD_ATTR, tt)), e.ADD_URI_SAFE_ATTR && N(Ge, e.ADD_URI_SAFE_ATTR, tt), e.FORBID_CONTENTS && (He === ze && (He = R(He)), N(He, e.FORBID_CONTENTS, tt)), Ue && (he["#text"] = !0), De && N(he, ["html", "head", "body"]), he.table && (N(he, ["tbody"]), delete Ae.tbody), e.TRUSTED_TYPES_POLICY) { if ("function" != typeof e.TRUSTED_TYPES_POLICY.createHTML) throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); if ("function" != typeof e.TRUSTED_TYPES_POLICY.createScriptURL) throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); Q = e.TRUSTED_TYPES_POLICY, ee = Q.createHTML("") } else void 0 === Q && (Q = V(W, c)), null !== Q && "string" == typeof ee && (ee = Q.createHTML("")); i && i(e), nt = e } }, at = N({}, ["mi", "mo", "mn", "ms", "mtext"]), lt = N({}, ["foreignobject", "desc", "title", "annotation-xml"]), ct = N({}, ["title", "style", "font", "a", "script"]), st = N({}, [...L, ...v, ...x]), ut = N({}, [...k, ...C]), mt = function (e) { let t = J(e); t && t.tagName || (t = {namespaceURI: Ke, tagName: "template"}); const n = p(e.tagName), o = p(t.tagName); return !!$e[e.namespaceURI] && (e.namespaceURI === qe ? t.namespaceURI === Xe ? "svg" === n : t.namespaceURI === je ? "svg" === n && ("annotation-xml" === o || at[o]) : Boolean(st[n]) : e.namespaceURI === je ? t.namespaceURI === Xe ? "math" === n : t.namespaceURI === qe ? "math" === n && lt[o] : Boolean(ut[n]) : e.namespaceURI === Xe ? !(t.namespaceURI === qe && !lt[o]) && (!(t.namespaceURI === je && !at[o]) && (!ut[n] && (ct[n] || !st[n]))) : !("application/xhtml+xml" !== Je || !$e[e.namespaceURI])) }, ft = function (e) { f(o.removed, {element: e}); try { e.parentNode.removeChild(e) } catch (t) { e.remove() } }, pt = function (e, t) { try { f(o.removed, {attribute: t.getAttributeNode(e), from: t}) } catch (e) { f(o.removed, {attribute: null, from: t}) } if (t.removeAttribute(e), "is" === e && !Te[e]) if (xe || ke) try { ft(t) } catch (e) { } else try { t.setAttribute(e, "") } catch (e) { } }, dt = function (e) { let t = null, n = null; if (ve) e = "" + e; else { const t = h(e, /^[\r\n\t ]+/); n = t && t[0] } "application/xhtml+xml" === Je && Ke === Xe && (e = '' + e + ""); const o = Q ? Q.createHTML(e) : e; if (Ke === Xe) try { t = (new B).parseFromString(o, Je) } catch (e) { } if (!t || !t.documentElement) { t = te.createDocument(Ke, "template", null); try { t.documentElement.innerHTML = Ve ? ee : o } catch (e) { } } const i = t.body || t.documentElement; return e && n && i.insertBefore(r.createTextNode(n), i.childNodes[0] || null), Ke === Xe ? re.call(t, De ? "html" : "body")[0] : De ? t.documentElement : i }, ht = function (e) { return ne.call(e.ownerDocument || e, e, F.SHOW_ELEMENT | F.SHOW_COMMENT | F.SHOW_TEXT, null) }, gt = function (e) { return e instanceof z && ("string" != typeof e.nodeName || "string" != typeof e.textContent || "function" != typeof e.removeChild || !(e.attributes instanceof H) || "function" != typeof e.removeAttribute || "function" != typeof e.setAttribute || "string" != typeof e.namespaceURI || "function" != typeof e.insertBefore || "function" != typeof e.hasChildNodes) }, Tt = function (e) { return "function" == typeof b && e instanceof b }, yt = function (e, t, n) { ae[e] && u(ae[e], (e => { e.call(o, t, n, nt) })) }, Et = function (e) { let t = null; if (yt("beforeSanitizeElements", e, null), gt(e)) return ft(e), !0; const n = tt(e.nodeName); if (yt("uponSanitizeElement", e, { tagName: n, allowedTags: he }), e.hasChildNodes() && !Tt(e.firstElementChild) && E(/<[/\w]/g, e.innerHTML) && E(/<[/\w]/g, e.textContent)) return ft(e), !0; if (!he[n] || Ae[n]) { if (!Ae[n] && _t(n)) { if (Ee.tagNameCheck instanceof RegExp && E(Ee.tagNameCheck, n)) return !1; if (Ee.tagNameCheck instanceof Function && Ee.tagNameCheck(n)) return !1 } if (Ue && !He[n]) { const t = J(e) || e.parentNode, n = Z(e) || e.childNodes; if (n && t) { for (let o = n.length - 1; o >= 0; --o) t.insertBefore(j(n[o], !0), $(e)) } } return ft(e), !0 } return e instanceof S && !mt(e) ? (ft(e), !0) : "noscript" !== n && "noembed" !== n && "noframes" !== n || !E(/<\/no(script|embed|frames)/i, e.innerHTML) ? (we && 3 === e.nodeType && (t = e.textContent, u([le, ce, se], (e => { t = g(t, e, " ") })), e.textContent !== t && (f(o.removed, {element: e.cloneNode()}), e.textContent = t)), yt("afterSanitizeElements", e, null), !1) : (ft(e), !0) }, At = function (e, t, n) { if (Oe && ("id" === t || "name" === t) && (n in r || n in ot)) return !1; if (Ne && !_e[t] && E(ue, t)) ; else if (be && E(me, t)) ; else if (!Te[t] || _e[t]) { if (!(_t(e) && (Ee.tagNameCheck instanceof RegExp && E(Ee.tagNameCheck, e) || Ee.tagNameCheck instanceof Function && Ee.tagNameCheck(e)) && (Ee.attributeNameCheck instanceof RegExp && E(Ee.attributeNameCheck, t) || Ee.attributeNameCheck instanceof Function && Ee.attributeNameCheck(t)) || "is" === t && Ee.allowCustomizedBuiltInElements && (Ee.tagNameCheck instanceof RegExp && E(Ee.tagNameCheck, n) || Ee.tagNameCheck instanceof Function && Ee.tagNameCheck(n)))) return !1 } else if (Ge[t]) ; else if (E(de, g(n, pe, ""))) ; else if ("src" !== t && "xlink:href" !== t && "href" !== t || "script" === e || 0 !== T(n, "data:") || !Be[e]) { if (Se && !E(fe, g(n, pe, ""))) ; else if (n) return !1 } else ; return !0 }, _t = function (e) { return e.indexOf("-") > 0 }, bt = function (e) { yt("beforeSanitizeAttributes", e, null); const {attributes: t} = e; if (!t) return; const n = {attrName: "", attrValue: "", keepAttr: !0, allowedAttributes: Te}; let r = t.length; for (; r--;) { const i = t[r], {name: a, namespaceURI: l, value: c} = i, s = tt(a); let f = "value" === a ? c : y(c); if (n.attrName = s, n.attrValue = f, n.keepAttr = !0, n.forceKeepAttr = void 0, yt("uponSanitizeAttribute", e, n), f = n.attrValue, n.forceKeepAttr) continue; if (pt(a, e), !n.keepAttr) continue; if (!Re && E(/\/>/i, f)) { pt(a, e); continue } we && u([le, ce, se], (e => { f = g(f, e, " ") })); const p = tt(e.nodeName); if (At(p, s, f)) { if (!Ie || "id" !== s && "name" !== s || (pt(a, e), f = Me + f), Q && "object" == typeof W && "function" == typeof W.getAttributeType) if (l) ; else switch (W.getAttributeType(p, s)) { case"TrustedHTML": f = Q.createHTML(f); break; case"TrustedScriptURL": f = Q.createScriptURL(f) } try { l ? e.setAttributeNS(l, a, f) : e.setAttribute(a, f), m(o.removed) } catch (e) { } } } yt("afterSanitizeAttributes", e, null) }, Nt = function e(t) { let n = null; const o = ht(t); for (yt("beforeSanitizeShadowDOM", t, null); n = o.nextNode();) yt("uponSanitizeShadowNode", n, null), Et(n) || (n.content instanceof s && e(n.content), bt(n)); yt("afterSanitizeShadowDOM", t, null) }; return o.sanitize = function (e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = null, r = null, i = null, l = null; if (Ve = !e, Ve && (e = "\x3c!--\x3e"), "string" != typeof e && !Tt(e)) { if ("function" != typeof e.toString) throw A("toString is not a function"); if ("string" != typeof (e = e.toString())) throw A("dirty is not a string, aborting") } if (!o.isSupported) return e; if (Le || it(t), o.removed = [], "string" == typeof e && (Pe = !1), Pe) { if (e.nodeName) { const t = tt(e.nodeName); if (!he[t] || Ae[t]) throw A("root node is forbidden and cannot be sanitized in-place") } } else if (e instanceof b) n = dt("\x3c!----\x3e"), r = n.ownerDocument.importNode(e, !0), 1 === r.nodeType && "BODY" === r.nodeName || "HTML" === r.nodeName ? n = r : n.appendChild(r); else { if (!xe && !we && !De && -1 === e.indexOf("<")) return Q && Ce ? Q.createHTML(e) : e; if (n = dt(e), !n) return xe ? null : Ce ? ee : "" } n && ve && ft(n.firstChild); const c = ht(Pe ? e : n); for (; i = c.nextNode();) Et(i) || (i.content instanceof s && Nt(i.content), bt(i)); if (Pe) return e; if (xe) { if (ke) for (l = oe.call(n.ownerDocument); n.firstChild;) l.appendChild(n.firstChild); else l = n; return (Te.shadowroot || Te.shadowrootmode) && (l = ie.call(a, l, !0)), l } let m = De ? n.outerHTML : n.innerHTML; return De && he["!doctype"] && n.ownerDocument && n.ownerDocument.doctype && n.ownerDocument.doctype.name && E(q, n.ownerDocument.doctype.name) && (m = "\n" + m), we && u([le, ce, se], (e => { m = g(m, e, " ") })), Q && Ce ? Q.createHTML(m) : m }, o.setConfig = function () { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; it(e), Le = !0 }, o.clearConfig = function () { nt = null, Le = !1 }, o.isValidAttribute = function (e, t, n) { nt || it({}); const o = tt(e), r = tt(t); return At(o, r, n) }, o.addHook = function (e, t) { "function" == typeof t && (ae[e] = ae[e] || [], f(ae[e], t)) }, o.removeHook = function (e) { if (ae[e]) return m(ae[e]) }, o.removeHooks = function (e) { ae[e] && (ae[e] = []) }, o.removeAllHooks = function () { ae = {} }, o }(); return $ })); /* CryptoJS v3.1.2 code.google.com/p/crypto-js (c) 2009-2013 by Jeff Mott. All rights reserved. code.google.com/p/crypto-js/wiki/License */ var CryptoJS = CryptoJS || function (u, p) { var d = {}, l = d.lib = {}, s = function () { }, t = l.Base = { extend: function (a) { s.prototype = this; var c = new s; a && c.mixIn(a); c.hasOwnProperty("init") || (c.init = function () { c.$super.init.apply(this, arguments) }); c.init.prototype = c; c.$super = this; return c }, create: function () { var a = this.extend(); a.init.apply(a, arguments); return a }, init: function () { }, mixIn: function (a) { for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]); a.hasOwnProperty("toString") && (this.toString = a.toString) }, clone: function () { return this.init.prototype.extend(this) } }, r = l.WordArray = t.extend({ init: function (a, c) { a = this.words = a || []; this.sigBytes = c != p ? c : 4 * a.length }, toString: function (a) { return (a || v).stringify(this) }, concat: function (a) { var c = this.words, e = a.words, j = this.sigBytes; a = a.sigBytes; this.clamp(); if (j % 4) for (var k = 0; k < a; k++) c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4); else if (65535 < e.length) for (k = 0; k < a; k += 4) c[j + k >>> 2] = e[k >>> 2]; else c.push.apply(c, e); this.sigBytes += a; return this }, clamp: function () { var a = this.words, c = this.sigBytes; a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); a.length = u.ceil(c / 4) }, clone: function () { var a = t.clone.call(this); a.words = this.words.slice(0); return a }, random: function (a) { for (var c = [], e = 0; e < a; e += 4) c.push(4294967296 * u.random() | 0); return new r.init(c, a) } }), w = d.enc = {}, v = w.Hex = { stringify: function (a) { var c = a.words; a = a.sigBytes; for (var e = [], j = 0; j < a; j++) { var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255; e.push((k >>> 4).toString(16)); e.push((k & 15).toString(16)) } return e.join("") }, parse: function (a) { for (var c = a.length, e = [], j = 0; j < c; j += 2) e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << 24 - 4 * (j % 8); return new r.init(e, c / 2) } }, b = w.Latin1 = { stringify: function (a) { var c = a.words; a = a.sigBytes; for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255)); return e.join("") }, parse: function (a) { for (var c = a.length, e = [], j = 0; j < c; j++) e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4); return new r.init(e, c) } }, x = w.Utf8 = { stringify: function (a) { try { return decodeURIComponent(escape(b.stringify(a))) } catch (c) { throw Error("Malformed UTF-8 data"); } }, parse: function (a) { return b.parse(unescape(encodeURIComponent(a))) } }, q = l.BufferedBlockAlgorithm = t.extend({ reset: function () { this._data = new r.init; this._nDataBytes = 0 }, _append: function (a) { "string" == typeof a && (a = x.parse(a)); this._data.concat(a); this._nDataBytes += a.sigBytes }, _process: function (a) { var c = this._data, e = c.words, j = c.sigBytes, k = this.blockSize, b = j / (4 * k), b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0); a = b * k; j = u.min(4 * a, j); if (a) { for (var q = 0; q < a; q += k) this._doProcessBlock(e, q); q = e.splice(0, a); c.sigBytes -= j } return new r.init(q, j) }, clone: function () { var a = t.clone.call(this); a._data = this._data.clone(); return a }, _minBufferSize: 0 }); l.Hasher = q.extend({ cfg: t.extend(), init: function (a) { this.cfg = this.cfg.extend(a); this.reset() }, reset: function () { q.reset.call(this); this._doReset() }, update: function (a) { this._append(a); this._process(); return this }, finalize: function (a) { a && this._append(a); return this._doFinalize() }, blockSize: 16, _createHelper: function (a) { return function (b, e) { return (new a.init(e)).finalize(b) } }, _createHmacHelper: function (a) { return function (b, e) { return (new n.HMAC.init(a, e)).finalize(b) } } }); var n = d.algo = {}; return d }(Math); (function () { var u = CryptoJS, p = u.lib.WordArray; u.enc.Base64 = { stringify: function (d) { var l = d.words, p = d.sigBytes, t = this._map; d.clamp(); d = []; for (var r = 0; r < p; r += 3) for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) d.push(t.charAt(w >>> 6 * (3 - v) & 63)); if (l = t.charAt(64)) for (; d.length % 4;) d.push(l); return d.join("") }, parse: function (d) { var l = d.length, s = this._map, t = s.charAt(64); t && (t = d.indexOf(t), -1 != t && (l = t)); for (var t = [], r = 0, w = 0; w < l; w++) if (w % 4) { var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4); t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4); r++ } return p.create(t, r) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } })(); (function (u) { function p(b, n, a, c, e, j, k) { b = b + (n & a | ~n & c) + e + k; return (b << j | b >>> 32 - j) + n } function d(b, n, a, c, e, j, k) { b = b + (n & c | a & ~c) + e + k; return (b << j | b >>> 32 - j) + n } function l(b, n, a, c, e, j, k) { b = b + (n ^ a ^ c) + e + k; return (b << j | b >>> 32 - j) + n } function s(b, n, a, c, e, j, k) { b = b + (a ^ (n | ~c)) + e + k; return (b << j | b >>> 32 - j) + n } for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; r = r.MD5 = v.extend({ _doReset: function () { this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (q, n) { for (var a = 0; 16 > a; a++) { var c = n + a, e = q[c]; q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360 } var a = this._hash.words, c = q[n + 0], e = q[n + 1], j = q[n + 2], k = q[n + 3], z = q[n + 4], r = q[n + 5], t = q[n + 6], w = q[n + 7], v = q[n + 8], A = q[n + 9], B = q[n + 10], C = q[n + 11], u = q[n + 12], D = q[n + 13], E = q[n + 14], x = q[n + 15], f = a[0], m = a[1], g = a[2], h = a[3], f = p(f, m, g, h, c, 7, b[0]), h = p(h, f, m, g, e, 12, b[1]), g = p(g, h, f, m, j, 17, b[2]), m = p(m, g, h, f, k, 22, b[3]), f = p(f, m, g, h, z, 7, b[4]), h = p(h, f, m, g, r, 12, b[5]), g = p(g, h, f, m, t, 17, b[6]), m = p(m, g, h, f, w, 22, b[7]), f = p(f, m, g, h, v, 7, b[8]), h = p(h, f, m, g, A, 12, b[9]), g = p(g, h, f, m, B, 17, b[10]), m = p(m, g, h, f, C, 22, b[11]), f = p(f, m, g, h, u, 7, b[12]), h = p(h, f, m, g, D, 12, b[13]), g = p(g, h, f, m, E, 17, b[14]), m = p(m, g, h, f, x, 22, b[15]), f = d(f, m, g, h, e, 5, b[16]), h = d(h, f, m, g, t, 9, b[17]), g = d(g, h, f, m, C, 14, b[18]), m = d(m, g, h, f, c, 20, b[19]), f = d(f, m, g, h, r, 5, b[20]), h = d(h, f, m, g, B, 9, b[21]), g = d(g, h, f, m, x, 14, b[22]), m = d(m, g, h, f, z, 20, b[23]), f = d(f, m, g, h, A, 5, b[24]), h = d(h, f, m, g, E, 9, b[25]), g = d(g, h, f, m, k, 14, b[26]), m = d(m, g, h, f, v, 20, b[27]), f = d(f, m, g, h, D, 5, b[28]), h = d(h, f, m, g, j, 9, b[29]), g = d(g, h, f, m, w, 14, b[30]), m = d(m, g, h, f, u, 20, b[31]), f = l(f, m, g, h, r, 4, b[32]), h = l(h, f, m, g, v, 11, b[33]), g = l(g, h, f, m, C, 16, b[34]), m = l(m, g, h, f, E, 23, b[35]), f = l(f, m, g, h, e, 4, b[36]), h = l(h, f, m, g, z, 11, b[37]), g = l(g, h, f, m, w, 16, b[38]), m = l(m, g, h, f, B, 23, b[39]), f = l(f, m, g, h, D, 4, b[40]), h = l(h, f, m, g, c, 11, b[41]), g = l(g, h, f, m, k, 16, b[42]), m = l(m, g, h, f, t, 23, b[43]), f = l(f, m, g, h, A, 4, b[44]), h = l(h, f, m, g, u, 11, b[45]), g = l(g, h, f, m, x, 16, b[46]), m = l(m, g, h, f, j, 23, b[47]), f = s(f, m, g, h, c, 6, b[48]), h = s(h, f, m, g, w, 10, b[49]), g = s(g, h, f, m, E, 15, b[50]), m = s(m, g, h, f, r, 21, b[51]), f = s(f, m, g, h, u, 6, b[52]), h = s(h, f, m, g, k, 10, b[53]), g = s(g, h, f, m, B, 15, b[54]), m = s(m, g, h, f, e, 21, b[55]), f = s(f, m, g, h, v, 6, b[56]), h = s(h, f, m, g, x, 10, b[57]), g = s(g, h, f, m, t, 15, b[58]), m = s(m, g, h, f, D, 21, b[59]), f = s(f, m, g, h, z, 6, b[60]), h = s(h, f, m, g, C, 10, b[61]), g = s(g, h, f, m, j, 15, b[62]), m = s(m, g, h, f, A, 21, b[63]); a[0] = a[0] + f | 0; a[1] = a[1] + m | 0; a[2] = a[2] + g | 0; a[3] = a[3] + h | 0 }, _doFinalize: function () { var b = this._data, n = b.words, a = 8 * this._nDataBytes, c = 8 * b.sigBytes; n[c >>> 5] |= 128 << 24 - c % 32; var e = u.floor(a / 4294967296); n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360; b.sigBytes = 4 * (n.length + 1); this._process(); b = this._hash; n = b.words; for (a = 0; 4 > a; a++) c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; return b }, clone: function () { var b = v.clone.call(this); b._hash = this._hash.clone(); return b } }); t.MD5 = v._createHelper(r); t.HmacMD5 = v._createHmacHelper(r) })(Math); (function () { var u = CryptoJS, p = u.lib, d = p.Base, l = p.WordArray, p = u.algo, s = p.EvpKDF = d.extend({ cfg: d.extend({keySize: 4, hasher: p.MD5, iterations: 1}), init: function (d) { this.cfg = this.cfg.extend(d) }, compute: function (d, r) { for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { n && s.update(n); var n = s.update(d).finalize(r); s.reset(); for (var a = 1; a < p; a++) n = s.finalize(n), s.reset(); b.concat(n) } b.sigBytes = 4 * q; return b } }); u.EvpKDF = function (d, l, p) { return s.create(p).compute(d, l) } })(); CryptoJS.lib.Cipher || function (u) { var p = CryptoJS, d = p.lib, l = d.Base, s = d.WordArray, t = d.BufferedBlockAlgorithm, r = p.enc.Base64, w = p.algo.EvpKDF, v = d.Cipher = t.extend({ cfg: l.extend(), createEncryptor: function (e, a) { return this.create(this._ENC_XFORM_MODE, e, a) }, createDecryptor: function (e, a) { return this.create(this._DEC_XFORM_MODE, e, a) }, init: function (e, a, b) { this.cfg = this.cfg.extend(b); this._xformMode = e; this._key = a; this.reset() }, reset: function () { t.reset.call(this); this._doReset() }, process: function (e) { this._append(e); return this._process() }, finalize: function (e) { e && this._append(e); return this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (e) { return { encrypt: function (b, k, d) { return ("string" == typeof k ? c : a).encrypt(e, b, k, d) }, decrypt: function (b, k, d) { return ("string" == typeof k ? c : a).decrypt(e, b, k, d) } } } }); d.StreamCipher = v.extend({ _doFinalize: function () { return this._process(!0) }, blockSize: 1 }); var b = p.mode = {}, x = function (e, a, b) { var c = this._iv; c ? this._iv = u : c = this._prevBlock; for (var d = 0; d < b; d++) e[a + d] ^= c[d] }, q = (d.BlockCipherMode = l.extend({ createEncryptor: function (e, a) { return this.Encryptor.create(e, a) }, createDecryptor: function (e, a) { return this.Decryptor.create(e, a) }, init: function (e, a) { this._cipher = e; this._iv = a } })).extend(); q.Encryptor = q.extend({ processBlock: function (e, a) { var b = this._cipher, c = b.blockSize; x.call(this, e, a, c); b.encryptBlock(e, a); this._prevBlock = e.slice(a, a + c) } }); q.Decryptor = q.extend({ processBlock: function (e, a) { var b = this._cipher, c = b.blockSize, d = e.slice(a, a + c); b.decryptBlock(e, a); x.call(this, e, a, c); this._prevBlock = d } }); b = b.CBC = q; q = (p.pad = {}).Pkcs7 = { pad: function (a, b) { for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) l.push(d); c = s.create(l, c); a.concat(c) }, unpad: function (a) { a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255 } }; d.BlockCipher = v.extend({ cfg: v.cfg.extend({mode: b, padding: q}), reset: function () { v.reset.call(this); var a = this.cfg, b = a.iv, a = a.mode; if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor; else c = a.createDecryptor, this._minBufferSize = 1; this._mode = c.call(a, this, b && b.words) }, _doProcessBlock: function (a, b) { this._mode.processBlock(a, b) }, _doFinalize: function () { var a = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { a.pad(this._data, this.blockSize); var b = this._process(!0) } else b = this._process(!0), a.unpad(b); return b }, blockSize: 4 }); var n = d.CipherParams = l.extend({ init: function (a) { this.mixIn(a) }, toString: function (a) { return (a || this.formatter).stringify(this) } }), b = (p.format = {}).OpenSSL = { stringify: function (a) { var b = a.ciphertext; a = a.salt; return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r) }, parse: function (a) { a = r.parse(a); var b = a.words; if (1398893684 == b[0] && 1701076831 == b[1]) { var c = s.create(b.slice(2, 4)); b.splice(0, 4); a.sigBytes -= 16 } return n.create({ciphertext: a, salt: c}) } }, a = d.SerializableCipher = l.extend({ cfg: l.extend({format: b}), encrypt: function (a, b, c, d) { d = this.cfg.extend(d); var l = a.createEncryptor(c, d); b = l.finalize(b); l = l.cfg; return n.create({ ciphertext: b, key: c, iv: l.iv, algorithm: a, mode: l.mode, padding: l.padding, blockSize: a.blockSize, formatter: d.format }) }, decrypt: function (a, b, c, d) { d = this.cfg.extend(d); b = this._parse(b, d.format); return a.createDecryptor(c, d).finalize(b.ciphertext) }, _parse: function (a, b) { return "string" == typeof a ? b.parse(a, this) : a } }), p = (p.kdf = {}).OpenSSL = { execute: function (a, b, c, d) { d || (d = s.random(8)); a = w.create({keySize: b + c}).compute(a, d); c = s.create(a.words.slice(b), 4 * c); a.sigBytes = 4 * b; return n.create({key: a, iv: c, salt: d}) } }, c = d.PasswordBasedCipher = a.extend({ cfg: a.cfg.extend({kdf: p}), encrypt: function (b, c, d, l) { l = this.cfg.extend(l); d = l.kdf.execute(d, b.keySize, b.ivSize); l.iv = d.iv; b = a.encrypt.call(this, b, c, d.key, l); b.mixIn(d); return b }, decrypt: function (b, c, d, l) { l = this.cfg.extend(l); c = this._parse(c, l.format); d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt); l.iv = d.iv; return a.decrypt.call(this, b, c, d.key, l) } }) }(); (function () { for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) a[c] = 128 > c ? c << 1 : c << 1 ^ 283; for (var e = 0, j = 0, c = 0; 256 > c; c++) { var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, k = k >>> 8 ^ k & 255 ^ 99; l[e] = k; s[k] = e; var z = a[e], F = a[z], G = a[F], y = 257 * a[k] ^ 16843008 * k; t[e] = y << 24 | y >>> 8; r[e] = y << 16 | y >>> 16; w[e] = y << 8 | y >>> 24; v[e] = y; y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e; b[k] = y << 24 | y >>> 8; x[k] = y << 16 | y >>> 16; q[k] = y << 8 | y >>> 24; n[k] = y; e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1 } var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], d = d.AES = p.extend({ _doReset: function () { for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) if (j < d) e[j] = c[j]; else { var k = e[j - 1]; j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24); e[j] = e[j - d] ^ k } c = this._invKeySchedule = []; for (d = 0; d < a; d++) j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]] }, encryptBlock: function (a, b) { this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l) }, decryptBlock: function (a, c) { var d = a[c + 1]; a[c + 1] = a[c + 3]; a[c + 3] = d; this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s); d = a[c + 1]; a[c + 1] = a[c + 3]; a[c + 3] = d }, _doCryptBlock: function (a, b, c, d, e, j, l, f) { for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], g = q, h = s, k = t; q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++]; s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++]; t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++]; n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++]; a[b] = q; a[b + 1] = s; a[b + 2] = t; a[b + 3] = n }, keySize: 8 }); u.AES = p._createHelper(d) })(); /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */ !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).pako = {}) }(this, (function (t) { "use strict"; function e(t) { for (var e = t.length; --e >= 0;) t[e] = 0 } var a = 256, n = 286, i = 30, r = 15, s = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]), o = new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]), l = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]), h = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), d = new Array(576); e(d); var _ = new Array(60); e(_); var f = new Array(512); e(f); var u = new Array(256); e(u); var c = new Array(29); e(c); var w, m, b, g = new Array(i); function p(t, e, a, n, i) { this.static_tree = t, this.extra_bits = e, this.extra_base = a, this.elems = n, this.max_length = i, this.has_stree = t && t.length } function v(t, e) { this.dyn_tree = t, this.max_code = 0, this.stat_desc = e } e(g); var k = function (t) { return t < 256 ? f[t] : f[256 + (t >>> 7)] }, y = function (t, e) { t.pending_buf[t.pending++] = 255 & e, t.pending_buf[t.pending++] = e >>> 8 & 255 }, x = function (t, e, a) { t.bi_valid > 16 - a ? (t.bi_buf |= e << t.bi_valid & 65535, y(t, t.bi_buf), t.bi_buf = e >> 16 - t.bi_valid, t.bi_valid += a - 16) : (t.bi_buf |= e << t.bi_valid & 65535, t.bi_valid += a) }, z = function (t, e, a) { x(t, a[2 * e], a[2 * e + 1]) }, A = function (t, e) { var a = 0; do { a |= 1 & t, t >>>= 1, a <<= 1 } while (--e > 0); return a >>> 1 }, E = function (t, e, a) { var n, i, s = new Array(16), o = 0; for (n = 1; n <= r; n++) o = o + a[n - 1] << 1, s[n] = o; for (i = 0; i <= e; i++) { var l = t[2 * i + 1]; 0 !== l && (t[2 * i] = A(s[l]++, l)) } }, R = function (t) { var e; for (e = 0; e < n; e++) t.dyn_ltree[2 * e] = 0; for (e = 0; e < i; e++) t.dyn_dtree[2 * e] = 0; for (e = 0; e < 19; e++) t.bl_tree[2 * e] = 0; t.dyn_ltree[512] = 1, t.opt_len = t.static_len = 0, t.sym_next = t.matches = 0 }, Z = function (t) { t.bi_valid > 8 ? y(t, t.bi_buf) : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0 }, S = function (t, e, a, n) { var i = 2 * e, r = 2 * a; return t[i] < t[r] || t[i] === t[r] && n[e] <= n[a] }, U = function (t, e, a) { for (var n = t.heap[a], i = a << 1; i <= t.heap_len && (i < t.heap_len && S(e, t.heap[i + 1], t.heap[i], t.depth) && i++, !S(e, n, t.heap[i], t.depth));) t.heap[a] = t.heap[i], a = i, i <<= 1; t.heap[a] = n }, D = function (t, e, n) { var i, r, l, h, d = 0; if (0 !== t.sym_next) do { i = 255 & t.pending_buf[t.sym_buf + d++], i += (255 & t.pending_buf[t.sym_buf + d++]) << 8, r = t.pending_buf[t.sym_buf + d++], 0 === i ? z(t, r, e) : (l = u[r], z(t, l + a + 1, e), 0 !== (h = s[l]) && (r -= c[l], x(t, r, h)), i--, l = k(i), z(t, l, n), 0 !== (h = o[l]) && (i -= g[l], x(t, i, h))) } while (d < t.sym_next); z(t, 256, e) }, T = function (t, e) { var a, n, i, s = e.dyn_tree, o = e.stat_desc.static_tree, l = e.stat_desc.has_stree, h = e.stat_desc.elems, d = -1; for (t.heap_len = 0, t.heap_max = 573, a = 0; a < h; a++) 0 !== s[2 * a] ? (t.heap[++t.heap_len] = d = a, t.depth[a] = 0) : s[2 * a + 1] = 0; for (; t.heap_len < 2;) s[2 * (i = t.heap[++t.heap_len] = d < 2 ? ++d : 0)] = 1, t.depth[i] = 0, t.opt_len--, l && (t.static_len -= o[2 * i + 1]); for (e.max_code = d, a = t.heap_len >> 1; a >= 1; a--) U(t, s, a); i = h; do { a = t.heap[1], t.heap[1] = t.heap[t.heap_len--], U(t, s, 1), n = t.heap[1], t.heap[--t.heap_max] = a, t.heap[--t.heap_max] = n, s[2 * i] = s[2 * a] + s[2 * n], t.depth[i] = (t.depth[a] >= t.depth[n] ? t.depth[a] : t.depth[n]) + 1, s[2 * a + 1] = s[2 * n + 1] = i, t.heap[1] = i++, U(t, s, 1) } while (t.heap_len >= 2); t.heap[--t.heap_max] = t.heap[1], function (t, e) { var a, n, i, s, o, l, h = e.dyn_tree, d = e.max_code, _ = e.stat_desc.static_tree, f = e.stat_desc.has_stree, u = e.stat_desc.extra_bits, c = e.stat_desc.extra_base, w = e.stat_desc.max_length, m = 0; for (s = 0; s <= r; s++) t.bl_count[s] = 0; for (h[2 * t.heap[t.heap_max] + 1] = 0, a = t.heap_max + 1; a < 573; a++) (s = h[2 * h[2 * (n = t.heap[a]) + 1] + 1] + 1) > w && (s = w, m++), h[2 * n + 1] = s, n > d || (t.bl_count[s]++, o = 0, n >= c && (o = u[n - c]), l = h[2 * n], t.opt_len += l * (s + o), f && (t.static_len += l * (_[2 * n + 1] + o))); if (0 !== m) { do { for (s = w - 1; 0 === t.bl_count[s];) s--; t.bl_count[s]--, t.bl_count[s + 1] += 2, t.bl_count[w]--, m -= 2 } while (m > 0); for (s = w; 0 !== s; s--) for (n = t.bl_count[s]; 0 !== n;) (i = t.heap[--a]) > d || (h[2 * i + 1] !== s && (t.opt_len += (s - h[2 * i + 1]) * h[2 * i], h[2 * i + 1] = s), n--) } }(t, e), E(s, d, t.bl_count) }, O = function (t, e, a) { var n, i, r = -1, s = e[1], o = 0, l = 7, h = 4; for (0 === s && (l = 138, h = 3), e[2 * (a + 1) + 1] = 65535, n = 0; n <= a; n++) i = s, s = e[2 * (n + 1) + 1], ++o < l && i === s || (o < h ? t.bl_tree[2 * i] += o : 0 !== i ? (i !== r && t.bl_tree[2 * i]++, t.bl_tree[32]++) : o <= 10 ? t.bl_tree[34]++ : t.bl_tree[36]++, o = 0, r = i, 0 === s ? (l = 138, h = 3) : i === s ? (l = 6, h = 3) : (l = 7, h = 4)) }, I = function (t, e, a) { var n, i, r = -1, s = e[1], o = 0, l = 7, h = 4; for (0 === s && (l = 138, h = 3), n = 0; n <= a; n++) if (i = s, s = e[2 * (n + 1) + 1], !(++o < l && i === s)) { if (o < h) do { z(t, i, t.bl_tree) } while (0 != --o); else 0 !== i ? (i !== r && (z(t, i, t.bl_tree), o--), z(t, 16, t.bl_tree), x(t, o - 3, 2)) : o <= 10 ? (z(t, 17, t.bl_tree), x(t, o - 3, 3)) : (z(t, 18, t.bl_tree), x(t, o - 11, 7)); o = 0, r = i, 0 === s ? (l = 138, h = 3) : i === s ? (l = 6, h = 3) : (l = 7, h = 4) } }, F = !1, L = function (t, e, a, n) { x(t, 0 + (n ? 1 : 0), 3), Z(t), y(t, a), y(t, ~a), a && t.pending_buf.set(t.window.subarray(e, e + a), t.pending), t.pending += a }, N = function (t, e, n, i) { var r, s, o = 0; t.level > 0 ? (2 === t.strm.data_type && (t.strm.data_type = function (t) { var e, n = 4093624447; for (e = 0; e <= 31; e++, n >>>= 1) if (1 & n && 0 !== t.dyn_ltree[2 * e]) return 0; if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) return 1; for (e = 32; e < a; e++) if (0 !== t.dyn_ltree[2 * e]) return 1; return 0 }(t)), T(t, t.l_desc), T(t, t.d_desc), o = function (t) { var e; for (O(t, t.dyn_ltree, t.l_desc.max_code), O(t, t.dyn_dtree, t.d_desc.max_code), T(t, t.bl_desc), e = 18; e >= 3 && 0 === t.bl_tree[2 * h[e] + 1]; e--) ; return t.opt_len += 3 * (e + 1) + 5 + 5 + 4, e }(t), r = t.opt_len + 3 + 7 >>> 3, (s = t.static_len + 3 + 7 >>> 3) <= r && (r = s)) : r = s = n + 5, n + 4 <= r && -1 !== e ? L(t, e, n, i) : 4 === t.strategy || s === r ? (x(t, 2 + (i ? 1 : 0), 3), D(t, d, _)) : (x(t, 4 + (i ? 1 : 0), 3), function (t, e, a, n) { var i; for (x(t, e - 257, 5), x(t, a - 1, 5), x(t, n - 4, 4), i = 0; i < n; i++) x(t, t.bl_tree[2 * h[i] + 1], 3); I(t, t.dyn_ltree, e - 1), I(t, t.dyn_dtree, a - 1) }(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, o + 1), D(t, t.dyn_ltree, t.dyn_dtree)), R(t), i && Z(t) }, B = { _tr_init: function (t) { F || (!function () { var t, e, a, h, v, k = new Array(16); for (a = 0, h = 0; h < 28; h++) for (c[h] = a, t = 0; t < 1 << s[h]; t++) u[a++] = h; for (u[a - 1] = h, v = 0, h = 0; h < 16; h++) for (g[h] = v, t = 0; t < 1 << o[h]; t++) f[v++] = h; for (v >>= 7; h < i; h++) for (g[h] = v << 7, t = 0; t < 1 << o[h] - 7; t++) f[256 + v++] = h; for (e = 0; e <= r; e++) k[e] = 0; for (t = 0; t <= 143;) d[2 * t + 1] = 8, t++, k[8]++; for (; t <= 255;) d[2 * t + 1] = 9, t++, k[9]++; for (; t <= 279;) d[2 * t + 1] = 7, t++, k[7]++; for (; t <= 287;) d[2 * t + 1] = 8, t++, k[8]++; for (E(d, 287, k), t = 0; t < i; t++) _[2 * t + 1] = 5, _[2 * t] = A(t, 5); w = new p(d, s, 257, n, r), m = new p(_, o, 0, i, r), b = new p(new Array(0), l, 0, 19, 7) }(), F = !0), t.l_desc = new v(t.dyn_ltree, w), t.d_desc = new v(t.dyn_dtree, m), t.bl_desc = new v(t.bl_tree, b), t.bi_buf = 0, t.bi_valid = 0, R(t) }, _tr_stored_block: L, _tr_flush_block: N, _tr_tally: function (t, e, n) { return t.pending_buf[t.sym_buf + t.sym_next++] = e, t.pending_buf[t.sym_buf + t.sym_next++] = e >> 8, t.pending_buf[t.sym_buf + t.sym_next++] = n, 0 === e ? t.dyn_ltree[2 * n]++ : (t.matches++, e--, t.dyn_ltree[2 * (u[n] + a + 1)]++, t.dyn_dtree[2 * k(e)]++), t.sym_next === t.sym_end }, _tr_align: function (t) { x(t, 2, 3), z(t, 256, d), function (t) { 16 === t.bi_valid ? (y(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : t.bi_valid >= 8 && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8) }(t) } }, C = function (t, e, a, n) { for (var i = 65535 & t | 0, r = t >>> 16 & 65535 | 0, s = 0; 0 !== a;) { a -= s = a > 2e3 ? 2e3 : a; do { r = r + (i = i + e[n++] | 0) | 0 } while (--s); i %= 65521, r %= 65521 } return i | r << 16 | 0 }, M = new Uint32Array(function () { for (var t, e = [], a = 0; a < 256; a++) { t = a; for (var n = 0; n < 8; n++) t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[a] = t } return e }()), H = function (t, e, a, n) { var i = M, r = n + a; t ^= -1; for (var s = n; s < r; s++) t = t >>> 8 ^ i[255 & (t ^ e[s])]; return -1 ^ t }, j = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" }, K = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_MEM_ERROR: -4, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 }, P = B._tr_init, Y = B._tr_stored_block, G = B._tr_flush_block, X = B._tr_tally, W = B._tr_align, q = K.Z_NO_FLUSH, J = K.Z_PARTIAL_FLUSH, Q = K.Z_FULL_FLUSH, V = K.Z_FINISH, $ = K.Z_BLOCK, tt = K.Z_OK, et = K.Z_STREAM_END, at = K.Z_STREAM_ERROR, nt = K.Z_DATA_ERROR, it = K.Z_BUF_ERROR, rt = K.Z_DEFAULT_COMPRESSION, st = K.Z_FILTERED, ot = K.Z_HUFFMAN_ONLY, lt = K.Z_RLE, ht = K.Z_FIXED, dt = K.Z_DEFAULT_STRATEGY, _t = K.Z_UNKNOWN, ft = K.Z_DEFLATED, ut = 258, ct = 262, wt = 42, mt = 113, bt = 666, gt = function (t, e) { return t.msg = j[e], e }, pt = function (t) { return 2 * t - (t > 4 ? 9 : 0) }, vt = function (t) { for (var e = t.length; --e >= 0;) t[e] = 0 }, kt = function (t) { var e, a, n, i = t.w_size; n = e = t.hash_size; do { a = t.head[--n], t.head[n] = a >= i ? a - i : 0 } while (--e); n = e = i; do { a = t.prev[--n], t.prev[n] = a >= i ? a - i : 0 } while (--e) }, yt = function (t, e, a) { return (e << t.hash_shift ^ a) & t.hash_mask }, xt = function (t) { var e = t.state, a = e.pending; a > t.avail_out && (a = t.avail_out), 0 !== a && (t.output.set(e.pending_buf.subarray(e.pending_out, e.pending_out + a), t.next_out), t.next_out += a, e.pending_out += a, t.total_out += a, t.avail_out -= a, e.pending -= a, 0 === e.pending && (e.pending_out = 0)) }, zt = function (t, e) { G(t, t.block_start >= 0 ? t.block_start : -1, t.strstart - t.block_start, e), t.block_start = t.strstart, xt(t.strm) }, At = function (t, e) { t.pending_buf[t.pending++] = e }, Et = function (t, e) { t.pending_buf[t.pending++] = e >>> 8 & 255, t.pending_buf[t.pending++] = 255 & e }, Rt = function (t, e, a, n) { var i = t.avail_in; return i > n && (i = n), 0 === i ? 0 : (t.avail_in -= i, e.set(t.input.subarray(t.next_in, t.next_in + i), a), 1 === t.state.wrap ? t.adler = C(t.adler, e, i, a) : 2 === t.state.wrap && (t.adler = H(t.adler, e, i, a)), t.next_in += i, t.total_in += i, i) }, Zt = function (t, e) { var a, n, i = t.max_chain_length, r = t.strstart, s = t.prev_length, o = t.nice_match, l = t.strstart > t.w_size - ct ? t.strstart - (t.w_size - ct) : 0, h = t.window, d = t.w_mask, _ = t.prev, f = t.strstart + ut, u = h[r + s - 1], c = h[r + s]; t.prev_length >= t.good_match && (i >>= 2), o > t.lookahead && (o = t.lookahead); do { if (h[(a = e) + s] === c && h[a + s - 1] === u && h[a] === h[r] && h[++a] === h[r + 1]) { r += 2, a++; do { } while (h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && h[++r] === h[++a] && r < f); if (n = ut - (f - r), r = f - ut, n > s) { if (t.match_start = e, s = n, n >= o) break; u = h[r + s - 1], c = h[r + s] } } } while ((e = _[e & d]) > l && 0 != --i); return s <= t.lookahead ? s : t.lookahead }, St = function (t) { var e, a, n, i = t.w_size; do { if (a = t.window_size - t.lookahead - t.strstart, t.strstart >= i + (i - ct) && (t.window.set(t.window.subarray(i, i + i - a), 0), t.match_start -= i, t.strstart -= i, t.block_start -= i, t.insert > t.strstart && (t.insert = t.strstart), kt(t), a += i), 0 === t.strm.avail_in) break; if (e = Rt(t.strm, t.window, t.strstart + t.lookahead, a), t.lookahead += e, t.lookahead + t.insert >= 3) for (n = t.strstart - t.insert, t.ins_h = t.window[n], t.ins_h = yt(t, t.ins_h, t.window[n + 1]); t.insert && (t.ins_h = yt(t, t.ins_h, t.window[n + 3 - 1]), t.prev[n & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = n, n++, t.insert--, !(t.lookahead + t.insert < 3));) ; } while (t.lookahead < ct && 0 !== t.strm.avail_in) }, Ut = function (t, e) { var a, n, i, r = t.pending_buf_size - 5 > t.w_size ? t.w_size : t.pending_buf_size - 5, s = 0, o = t.strm.avail_in; do { if (a = 65535, i = t.bi_valid + 42 >> 3, t.strm.avail_out < i) break; if (i = t.strm.avail_out - i, a > (n = t.strstart - t.block_start) + t.strm.avail_in && (a = n + t.strm.avail_in), a > i && (a = i), a < r && (0 === a && e !== V || e === q || a !== n + t.strm.avail_in)) break; s = e === V && a === n + t.strm.avail_in ? 1 : 0, Y(t, 0, 0, s), t.pending_buf[t.pending - 4] = a, t.pending_buf[t.pending - 3] = a >> 8, t.pending_buf[t.pending - 2] = ~a, t.pending_buf[t.pending - 1] = ~a >> 8, xt(t.strm), n && (n > a && (n = a), t.strm.output.set(t.window.subarray(t.block_start, t.block_start + n), t.strm.next_out), t.strm.next_out += n, t.strm.avail_out -= n, t.strm.total_out += n, t.block_start += n, a -= n), a && (Rt(t.strm, t.strm.output, t.strm.next_out, a), t.strm.next_out += a, t.strm.avail_out -= a, t.strm.total_out += a) } while (0 === s); return (o -= t.strm.avail_in) && (o >= t.w_size ? (t.matches = 2, t.window.set(t.strm.input.subarray(t.strm.next_in - t.w_size, t.strm.next_in), 0), t.strstart = t.w_size, t.insert = t.strstart) : (t.window_size - t.strstart <= o && (t.strstart -= t.w_size, t.window.set(t.window.subarray(t.w_size, t.w_size + t.strstart), 0), t.matches < 2 && t.matches++, t.insert > t.strstart && (t.insert = t.strstart)), t.window.set(t.strm.input.subarray(t.strm.next_in - o, t.strm.next_in), t.strstart), t.strstart += o, t.insert += o > t.w_size - t.insert ? t.w_size - t.insert : o), t.block_start = t.strstart), t.high_water < t.strstart && (t.high_water = t.strstart), s ? 4 : e !== q && e !== V && 0 === t.strm.avail_in && t.strstart === t.block_start ? 2 : (i = t.window_size - t.strstart, t.strm.avail_in > i && t.block_start >= t.w_size && (t.block_start -= t.w_size, t.strstart -= t.w_size, t.window.set(t.window.subarray(t.w_size, t.w_size + t.strstart), 0), t.matches < 2 && t.matches++, i += t.w_size, t.insert > t.strstart && (t.insert = t.strstart)), i > t.strm.avail_in && (i = t.strm.avail_in), i && (Rt(t.strm, t.window, t.strstart, i), t.strstart += i, t.insert += i > t.w_size - t.insert ? t.w_size - t.insert : i), t.high_water < t.strstart && (t.high_water = t.strstart), i = t.bi_valid + 42 >> 3, r = (i = t.pending_buf_size - i > 65535 ? 65535 : t.pending_buf_size - i) > t.w_size ? t.w_size : i, ((n = t.strstart - t.block_start) >= r || (n || e === V) && e !== q && 0 === t.strm.avail_in && n <= i) && (a = n > i ? i : n, s = e === V && 0 === t.strm.avail_in && a === n ? 1 : 0, Y(t, t.block_start, a, s), t.block_start += a, xt(t.strm)), s ? 3 : 1) }, Dt = function (t, e) { for (var a, n; ;) { if (t.lookahead < ct) { if (St(t), t.lookahead < ct && e === q) return 1; if (0 === t.lookahead) break } if (a = 0, t.lookahead >= 3 && (t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 !== a && t.strstart - a <= t.w_size - ct && (t.match_length = Zt(t, a)), t.match_length >= 3) if (n = X(t, t.strstart - t.match_start, t.match_length - 3), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= 3) { t.match_length--; do { t.strstart++, t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart } while (0 != --t.match_length); t.strstart++ } else t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 1]); else n = X(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++; if (n && (zt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = t.strstart < 2 ? t.strstart : 2, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 }, Tt = function (t, e) { for (var a, n, i; ;) { if (t.lookahead < ct) { if (St(t), t.lookahead < ct && e === q) return 1; if (0 === t.lookahead) break } if (a = 0, t.lookahead >= 3 && (t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = 2, 0 !== a && t.prev_length < t.max_lazy_match && t.strstart - a <= t.w_size - ct && (t.match_length = Zt(t, a), t.match_length <= 5 && (t.strategy === st || 3 === t.match_length && t.strstart - t.match_start > 4096) && (t.match_length = 2)), t.prev_length >= 3 && t.match_length <= t.prev_length) { i = t.strstart + t.lookahead - 3, n = X(t, t.strstart - 1 - t.prev_match, t.prev_length - 3), t.lookahead -= t.prev_length - 1, t.prev_length -= 2; do { ++t.strstart <= i && (t.ins_h = yt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart) } while (0 != --t.prev_length); if (t.match_available = 0, t.match_length = 2, t.strstart++, n && (zt(t, !1), 0 === t.strm.avail_out)) return 1 } else if (t.match_available) { if ((n = X(t, 0, t.window[t.strstart - 1])) && zt(t, !1), t.strstart++, t.lookahead--, 0 === t.strm.avail_out) return 1 } else t.match_available = 1, t.strstart++, t.lookahead-- } return t.match_available && (n = X(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < 2 ? t.strstart : 2, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 }; function Ot(t, e, a, n, i) { this.good_length = t, this.max_lazy = e, this.nice_length = a, this.max_chain = n, this.func = i } var It = [new Ot(0, 0, 0, 0, Ut), new Ot(4, 4, 8, 4, Dt), new Ot(4, 5, 16, 8, Dt), new Ot(4, 6, 32, 32, Dt), new Ot(4, 4, 16, 16, Tt), new Ot(8, 16, 32, 32, Tt), new Ot(8, 16, 128, 128, Tt), new Ot(8, 32, 128, 256, Tt), new Ot(32, 128, 258, 1024, Tt), new Ot(32, 258, 258, 4096, Tt)]; function Ft() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = ft, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new Uint16Array(1146), this.dyn_dtree = new Uint16Array(122), this.bl_tree = new Uint16Array(78), vt(this.dyn_ltree), vt(this.dyn_dtree), vt(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new Uint16Array(16), this.heap = new Uint16Array(573), vt(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new Uint16Array(573), vt(this.depth), this.sym_buf = 0, this.lit_bufsize = 0, this.sym_next = 0, this.sym_end = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0 } var Lt = function (t) { if (!t) return 1; var e = t.state; return !e || e.strm !== t || e.status !== wt && 57 !== e.status && 69 !== e.status && 73 !== e.status && 91 !== e.status && 103 !== e.status && e.status !== mt && e.status !== bt ? 1 : 0 }, Nt = function (t) { if (Lt(t)) return gt(t, at); t.total_in = t.total_out = 0, t.data_type = _t; var e = t.state; return e.pending = 0, e.pending_out = 0, e.wrap < 0 && (e.wrap = -e.wrap), e.status = 2 === e.wrap ? 57 : e.wrap ? wt : mt, t.adler = 2 === e.wrap ? 0 : 1, e.last_flush = -2, P(e), tt }, Bt = function (t) { var e, a = Nt(t); return a === tt && ((e = t.state).window_size = 2 * e.w_size, vt(e.head), e.max_lazy_match = It[e.level].max_lazy, e.good_match = It[e.level].good_length, e.nice_match = It[e.level].nice_length, e.max_chain_length = It[e.level].max_chain, e.strstart = 0, e.block_start = 0, e.lookahead = 0, e.insert = 0, e.match_length = e.prev_length = 2, e.match_available = 0, e.ins_h = 0), a }, Ct = function (t, e, a, n, i, r) { if (!t) return at; var s = 1; if (e === rt && (e = 6), n < 0 ? (s = 0, n = -n) : n > 15 && (s = 2, n -= 16), i < 1 || i > 9 || a !== ft || n < 8 || n > 15 || e < 0 || e > 9 || r < 0 || r > ht || 8 === n && 1 !== s) return gt(t, at); 8 === n && (n = 9); var o = new Ft; return t.state = o, o.strm = t, o.status = wt, o.wrap = s, o.gzhead = null, o.w_bits = n, o.w_size = 1 << o.w_bits, o.w_mask = o.w_size - 1, o.hash_bits = i + 7, o.hash_size = 1 << o.hash_bits, o.hash_mask = o.hash_size - 1, o.hash_shift = ~~((o.hash_bits + 3 - 1) / 3), o.window = new Uint8Array(2 * o.w_size), o.head = new Uint16Array(o.hash_size), o.prev = new Uint16Array(o.w_size), o.lit_bufsize = 1 << i + 6, o.pending_buf_size = 4 * o.lit_bufsize, o.pending_buf = new Uint8Array(o.pending_buf_size), o.sym_buf = o.lit_bufsize, o.sym_end = 3 * (o.lit_bufsize - 1), o.level = e, o.strategy = r, o.method = a, Bt(t) }, Mt = { deflateInit: function (t, e) { return Ct(t, e, ft, 15, 8, dt) }, deflateInit2: Ct, deflateReset: Bt, deflateResetKeep: Nt, deflateSetHeader: function (t, e) { return Lt(t) || 2 !== t.state.wrap ? at : (t.state.gzhead = e, tt) }, deflate: function (t, e) { if (Lt(t) || e > $ || e < 0) return t ? gt(t, at) : at; var a = t.state; if (!t.output || 0 !== t.avail_in && !t.input || a.status === bt && e !== V) return gt(t, 0 === t.avail_out ? it : at); var n = a.last_flush; if (a.last_flush = e, 0 !== a.pending) { if (xt(t), 0 === t.avail_out) return a.last_flush = -1, tt } else if (0 === t.avail_in && pt(e) <= pt(n) && e !== V) return gt(t, it); if (a.status === bt && 0 !== t.avail_in) return gt(t, it); if (a.status === wt && 0 === a.wrap && (a.status = mt), a.status === wt) { var i = ft + (a.w_bits - 8 << 4) << 8; if (i |= (a.strategy >= ot || a.level < 2 ? 0 : a.level < 6 ? 1 : 6 === a.level ? 2 : 3) << 6, 0 !== a.strstart && (i |= 32), Et(a, i += 31 - i % 31), 0 !== a.strstart && (Et(a, t.adler >>> 16), Et(a, 65535 & t.adler)), t.adler = 1, a.status = mt, xt(t), 0 !== a.pending) return a.last_flush = -1, tt } if (57 === a.status) if (t.adler = 0, At(a, 31), At(a, 139), At(a, 8), a.gzhead) At(a, (a.gzhead.text ? 1 : 0) + (a.gzhead.hcrc ? 2 : 0) + (a.gzhead.extra ? 4 : 0) + (a.gzhead.name ? 8 : 0) + (a.gzhead.comment ? 16 : 0)), At(a, 255 & a.gzhead.time), At(a, a.gzhead.time >> 8 & 255), At(a, a.gzhead.time >> 16 & 255), At(a, a.gzhead.time >> 24 & 255), At(a, 9 === a.level ? 2 : a.strategy >= ot || a.level < 2 ? 4 : 0), At(a, 255 & a.gzhead.os), a.gzhead.extra && a.gzhead.extra.length && (At(a, 255 & a.gzhead.extra.length), At(a, a.gzhead.extra.length >> 8 & 255)), a.gzhead.hcrc && (t.adler = H(t.adler, a.pending_buf, a.pending, 0)), a.gzindex = 0, a.status = 69; else if (At(a, 0), At(a, 0), At(a, 0), At(a, 0), At(a, 0), At(a, 9 === a.level ? 2 : a.strategy >= ot || a.level < 2 ? 4 : 0), At(a, 3), a.status = mt, xt(t), 0 !== a.pending) return a.last_flush = -1, tt; if (69 === a.status) { if (a.gzhead.extra) { for (var r = a.pending, s = (65535 & a.gzhead.extra.length) - a.gzindex; a.pending + s > a.pending_buf_size;) { var o = a.pending_buf_size - a.pending; if (a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex, a.gzindex + o), a.pending), a.pending = a.pending_buf_size, a.gzhead.hcrc && a.pending > r && (t.adler = H(t.adler, a.pending_buf, a.pending - r, r)), a.gzindex += o, xt(t), 0 !== a.pending) return a.last_flush = -1, tt; r = 0, s -= o } var l = new Uint8Array(a.gzhead.extra); a.pending_buf.set(l.subarray(a.gzindex, a.gzindex + s), a.pending), a.pending += s, a.gzhead.hcrc && a.pending > r && (t.adler = H(t.adler, a.pending_buf, a.pending - r, r)), a.gzindex = 0 } a.status = 73 } if (73 === a.status) { if (a.gzhead.name) { var h, d = a.pending; do { if (a.pending === a.pending_buf_size) { if (a.gzhead.hcrc && a.pending > d && (t.adler = H(t.adler, a.pending_buf, a.pending - d, d)), xt(t), 0 !== a.pending) return a.last_flush = -1, tt; d = 0 } h = a.gzindex < a.gzhead.name.length ? 255 & a.gzhead.name.charCodeAt(a.gzindex++) : 0, At(a, h) } while (0 !== h); a.gzhead.hcrc && a.pending > d && (t.adler = H(t.adler, a.pending_buf, a.pending - d, d)), a.gzindex = 0 } a.status = 91 } if (91 === a.status) { if (a.gzhead.comment) { var _, f = a.pending; do { if (a.pending === a.pending_buf_size) { if (a.gzhead.hcrc && a.pending > f && (t.adler = H(t.adler, a.pending_buf, a.pending - f, f)), xt(t), 0 !== a.pending) return a.last_flush = -1, tt; f = 0 } _ = a.gzindex < a.gzhead.comment.length ? 255 & a.gzhead.comment.charCodeAt(a.gzindex++) : 0, At(a, _) } while (0 !== _); a.gzhead.hcrc && a.pending > f && (t.adler = H(t.adler, a.pending_buf, a.pending - f, f)) } a.status = 103 } if (103 === a.status) { if (a.gzhead.hcrc) { if (a.pending + 2 > a.pending_buf_size && (xt(t), 0 !== a.pending)) return a.last_flush = -1, tt; At(a, 255 & t.adler), At(a, t.adler >> 8 & 255), t.adler = 0 } if (a.status = mt, xt(t), 0 !== a.pending) return a.last_flush = -1, tt } if (0 !== t.avail_in || 0 !== a.lookahead || e !== q && a.status !== bt) { var u = 0 === a.level ? Ut(a, e) : a.strategy === ot ? function (t, e) { for (var a; ;) { if (0 === t.lookahead && (St(t), 0 === t.lookahead)) { if (e === q) return 1; break } if (t.match_length = 0, a = X(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, a && (zt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = 0, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 }(a, e) : a.strategy === lt ? function (t, e) { for (var a, n, i, r, s = t.window; ;) { if (t.lookahead <= ut) { if (St(t), t.lookahead <= ut && e === q) return 1; if (0 === t.lookahead) break } if (t.match_length = 0, t.lookahead >= 3 && t.strstart > 0 && (n = s[i = t.strstart - 1]) === s[++i] && n === s[++i] && n === s[++i]) { r = t.strstart + ut; do { } while (n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && n === s[++i] && i < r); t.match_length = ut - (r - i), t.match_length > t.lookahead && (t.match_length = t.lookahead) } if (t.match_length >= 3 ? (a = X(t, 1, t.match_length - 3), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (a = X(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), a && (zt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = 0, e === V ? (zt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.sym_next && (zt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 }(a, e) : It[a.level].func(a, e); if (3 !== u && 4 !== u || (a.status = bt), 1 === u || 3 === u) return 0 === t.avail_out && (a.last_flush = -1), tt; if (2 === u && (e === J ? W(a) : e !== $ && (Y(a, 0, 0, !1), e === Q && (vt(a.head), 0 === a.lookahead && (a.strstart = 0, a.block_start = 0, a.insert = 0))), xt(t), 0 === t.avail_out)) return a.last_flush = -1, tt } return e !== V ? tt : a.wrap <= 0 ? et : (2 === a.wrap ? (At(a, 255 & t.adler), At(a, t.adler >> 8 & 255), At(a, t.adler >> 16 & 255), At(a, t.adler >> 24 & 255), At(a, 255 & t.total_in), At(a, t.total_in >> 8 & 255), At(a, t.total_in >> 16 & 255), At(a, t.total_in >> 24 & 255)) : (Et(a, t.adler >>> 16), Et(a, 65535 & t.adler)), xt(t), a.wrap > 0 && (a.wrap = -a.wrap), 0 !== a.pending ? tt : et) }, deflateEnd: function (t) { if (Lt(t)) return at; var e = t.state.status; return t.state = null, e === mt ? gt(t, nt) : tt }, deflateSetDictionary: function (t, e) { var a = e.length; if (Lt(t)) return at; var n = t.state, i = n.wrap; if (2 === i || 1 === i && n.status !== wt || n.lookahead) return at; if (1 === i && (t.adler = C(t.adler, e, a, 0)), n.wrap = 0, a >= n.w_size) { 0 === i && (vt(n.head), n.strstart = 0, n.block_start = 0, n.insert = 0); var r = new Uint8Array(n.w_size); r.set(e.subarray(a - n.w_size, a), 0), e = r, a = n.w_size } var s = t.avail_in, o = t.next_in, l = t.input; for (t.avail_in = a, t.next_in = 0, t.input = e, St(n); n.lookahead >= 3;) { var h = n.strstart, d = n.lookahead - 2; do { n.ins_h = yt(n, n.ins_h, n.window[h + 3 - 1]), n.prev[h & n.w_mask] = n.head[n.ins_h], n.head[n.ins_h] = h, h++ } while (--d); n.strstart = h, n.lookahead = 2, St(n) } return n.strstart += n.lookahead, n.block_start = n.strstart, n.insert = n.lookahead, n.lookahead = 0, n.match_length = n.prev_length = 2, n.match_available = 0, t.next_in = o, t.input = l, t.avail_in = s, n.wrap = i, tt }, deflateInfo: "pako deflate (from Nodeca project)" }; function Ht(t) { return Ht = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, Ht(t) } var jt = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, Kt = function (t) { for (var e = Array.prototype.slice.call(arguments, 1); e.length;) { var a = e.shift(); if (a) { if ("object" !== Ht(a)) throw new TypeError(a + "must be non-object"); for (var n in a) jt(a, n) && (t[n] = a[n]) } } return t }, Pt = function (t) { for (var e = 0, a = 0, n = t.length; a < n; a++) e += t[a].length; for (var i = new Uint8Array(e), r = 0, s = 0, o = t.length; r < o; r++) { var l = t[r]; i.set(l, s), s += l.length } return i }, Yt = !0; try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (t) { Yt = !1 } for (var Gt = new Uint8Array(256), Xt = 0; Xt < 256; Xt++) Gt[Xt] = Xt >= 252 ? 6 : Xt >= 248 ? 5 : Xt >= 240 ? 4 : Xt >= 224 ? 3 : Xt >= 192 ? 2 : 1; Gt[254] = Gt[254] = 1; var Wt = function (t) { if ("function" == typeof TextEncoder && TextEncoder.prototype.encode) return (new TextEncoder).encode(t); var e, a, n, i, r, s = t.length, o = 0; for (i = 0; i < s; i++) 55296 == (64512 & (a = t.charCodeAt(i))) && i + 1 < s && 56320 == (64512 & (n = t.charCodeAt(i + 1))) && (a = 65536 + (a - 55296 << 10) + (n - 56320), i++), o += a < 128 ? 1 : a < 2048 ? 2 : a < 65536 ? 3 : 4; for (e = new Uint8Array(o), r = 0, i = 0; r < o; i++) 55296 == (64512 & (a = t.charCodeAt(i))) && i + 1 < s && 56320 == (64512 & (n = t.charCodeAt(i + 1))) && (a = 65536 + (a - 55296 << 10) + (n - 56320), i++), a < 128 ? e[r++] = a : a < 2048 ? (e[r++] = 192 | a >>> 6, e[r++] = 128 | 63 & a) : a < 65536 ? (e[r++] = 224 | a >>> 12, e[r++] = 128 | a >>> 6 & 63, e[r++] = 128 | 63 & a) : (e[r++] = 240 | a >>> 18, e[r++] = 128 | a >>> 12 & 63, e[r++] = 128 | a >>> 6 & 63, e[r++] = 128 | 63 & a); return e }, qt = function (t, e) { var a, n, i = e || t.length; if ("function" == typeof TextDecoder && TextDecoder.prototype.decode) return (new TextDecoder).decode(t.subarray(0, e)); var r = new Array(2 * i); for (n = 0, a = 0; a < i;) { var s = t[a++]; if (s < 128) r[n++] = s; else { var o = Gt[s]; if (o > 4) r[n++] = 65533, a += o - 1; else { for (s &= 2 === o ? 31 : 3 === o ? 15 : 7; o > 1 && a < i;) s = s << 6 | 63 & t[a++], o--; o > 1 ? r[n++] = 65533 : s < 65536 ? r[n++] = s : (s -= 65536, r[n++] = 55296 | s >> 10 & 1023, r[n++] = 56320 | 1023 & s) } } } return function (t, e) { if (e < 65534 && t.subarray && Yt) return String.fromCharCode.apply(null, t.length === e ? t : t.subarray(0, e)); for (var a = "", n = 0; n < e; n++) a += String.fromCharCode(t[n]); return a }(r, n) }, Jt = function (t, e) { (e = e || t.length) > t.length && (e = t.length); for (var a = e - 1; a >= 0 && 128 == (192 & t[a]);) a--; return a < 0 || 0 === a ? e : a + Gt[t[a]] > e ? a : e }; var Qt = function () { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0 }, Vt = Object.prototype.toString, $t = K.Z_NO_FLUSH, te = K.Z_SYNC_FLUSH, ee = K.Z_FULL_FLUSH, ae = K.Z_FINISH, ne = K.Z_OK, ie = K.Z_STREAM_END, re = K.Z_DEFAULT_COMPRESSION, se = K.Z_DEFAULT_STRATEGY, oe = K.Z_DEFLATED; function le(t) { this.options = Kt({ level: re, method: oe, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: se }, t || {}); var e = this.options; e.raw && e.windowBits > 0 ? e.windowBits = -e.windowBits : e.gzip && e.windowBits > 0 && e.windowBits < 16 && (e.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new Qt, this.strm.avail_out = 0; var a = Mt.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy); if (a !== ne) throw new Error(j[a]); if (e.header && Mt.deflateSetHeader(this.strm, e.header), e.dictionary) { var n; if (n = "string" == typeof e.dictionary ? Wt(e.dictionary) : "[object ArrayBuffer]" === Vt.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary, (a = Mt.deflateSetDictionary(this.strm, n)) !== ne) throw new Error(j[a]); this._dict_set = !0 } } function he(t, e) { var a = new le(e); if (a.push(t, !0), a.err) throw a.msg || j[a.err]; return a.result } le.prototype.push = function (t, e) { var a, n, i = this.strm, r = this.options.chunkSize; if (this.ended) return !1; for (n = e === ~~e ? e : !0 === e ? ae : $t, "string" == typeof t ? i.input = Wt(t) : "[object ArrayBuffer]" === Vt.call(t) ? i.input = new Uint8Array(t) : i.input = t, i.next_in = 0, i.avail_in = i.input.length; ;) if (0 === i.avail_out && (i.output = new Uint8Array(r), i.next_out = 0, i.avail_out = r), (n === te || n === ee) && i.avail_out <= 6) this.onData(i.output.subarray(0, i.next_out)), i.avail_out = 0; else { if ((a = Mt.deflate(i, n)) === ie) return i.next_out > 0 && this.onData(i.output.subarray(0, i.next_out)), a = Mt.deflateEnd(this.strm), this.onEnd(a), this.ended = !0, a === ne; if (0 !== i.avail_out) { if (n > 0 && i.next_out > 0) this.onData(i.output.subarray(0, i.next_out)), i.avail_out = 0; else if (0 === i.avail_in) break } else this.onData(i.output) } return !0 }, le.prototype.onData = function (t) { this.chunks.push(t) }, le.prototype.onEnd = function (t) { t === ne && (this.result = Pt(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }; var de = { Deflate: le, deflate: he, deflateRaw: function (t, e) { return (e = e || {}).raw = !0, he(t, e) }, gzip: function (t, e) { return (e = e || {}).gzip = !0, he(t, e) }, constants: K }, _e = 16209, fe = function (t, e) { var a, n, i, r, s, o, l, h, d, _, f, u, c, w, m, b, g, p, v, k, y, x, z, A, E = t.state; a = t.next_in, z = t.input, n = a + (t.avail_in - 5), i = t.next_out, A = t.output, r = i - (e - t.avail_out), s = i + (t.avail_out - 257), o = E.dmax, l = E.wsize, h = E.whave, d = E.wnext, _ = E.window, f = E.hold, u = E.bits, c = E.lencode, w = E.distcode, m = (1 << E.lenbits) - 1, b = (1 << E.distbits) - 1; t:do { u < 15 && (f += z[a++] << u, u += 8, f += z[a++] << u, u += 8), g = c[f & m]; e:for (; ;) { if (f >>>= p = g >>> 24, u -= p, 0 === (p = g >>> 16 & 255)) A[i++] = 65535 & g; else { if (!(16 & p)) { if (0 == (64 & p)) { g = c[(65535 & g) + (f & (1 << p) - 1)]; continue e } if (32 & p) { E.mode = 16191; break t } t.msg = "invalid literal/length code", E.mode = _e; break t } v = 65535 & g, (p &= 15) && (u < p && (f += z[a++] << u, u += 8), v += f & (1 << p) - 1, f >>>= p, u -= p), u < 15 && (f += z[a++] << u, u += 8, f += z[a++] << u, u += 8), g = w[f & b]; a:for (; ;) { if (f >>>= p = g >>> 24, u -= p, !(16 & (p = g >>> 16 & 255))) { if (0 == (64 & p)) { g = w[(65535 & g) + (f & (1 << p) - 1)]; continue a } t.msg = "invalid distance code", E.mode = _e; break t } if (k = 65535 & g, u < (p &= 15) && (f += z[a++] << u, (u += 8) < p && (f += z[a++] << u, u += 8)), (k += f & (1 << p) - 1) > o) { t.msg = "invalid distance too far back", E.mode = _e; break t } if (f >>>= p, u -= p, k > (p = i - r)) { if ((p = k - p) > h && E.sane) { t.msg = "invalid distance too far back", E.mode = _e; break t } if (y = 0, x = _, 0 === d) { if (y += l - p, p < v) { v -= p; do { A[i++] = _[y++] } while (--p); y = i - k, x = A } } else if (d < p) { if (y += l + d - p, (p -= d) < v) { v -= p; do { A[i++] = _[y++] } while (--p); if (y = 0, d < v) { v -= p = d; do { A[i++] = _[y++] } while (--p); y = i - k, x = A } } } else if (y += d - p, p < v) { v -= p; do { A[i++] = _[y++] } while (--p); y = i - k, x = A } for (; v > 2;) A[i++] = x[y++], A[i++] = x[y++], A[i++] = x[y++], v -= 3; v && (A[i++] = x[y++], v > 1 && (A[i++] = x[y++])) } else { y = i - k; do { A[i++] = A[y++], A[i++] = A[y++], A[i++] = A[y++], v -= 3 } while (v > 2); v && (A[i++] = A[y++], v > 1 && (A[i++] = A[y++])) } break } } break } } while (a < n && i < s); a -= v = u >> 3, f &= (1 << (u -= v << 3)) - 1, t.next_in = a, t.next_out = i, t.avail_in = a < n ? n - a + 5 : 5 - (a - n), t.avail_out = i < s ? s - i + 257 : 257 - (i - s), E.hold = f, E.bits = u }, ue = 15, ce = new Uint16Array([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0]), we = new Uint8Array([16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78]), me = new Uint16Array([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0]), be = new Uint8Array([16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]), ge = function (t, e, a, n, i, r, s, o) { var l, h, d, _, f, u, c, w, m, b = o.bits, g = 0, p = 0, v = 0, k = 0, y = 0, x = 0, z = 0, A = 0, E = 0, R = 0, Z = null, S = new Uint16Array(16), U = new Uint16Array(16), D = null; for (g = 0; g <= ue; g++) S[g] = 0; for (p = 0; p < n; p++) S[e[a + p]]++; for (y = b, k = ue; k >= 1 && 0 === S[k]; k--) ; if (y > k && (y = k), 0 === k) return i[r++] = 20971520, i[r++] = 20971520, o.bits = 1, 0; for (v = 1; v < k && 0 === S[v]; v++) ; for (y < v && (y = v), A = 1, g = 1; g <= ue; g++) if (A <<= 1, (A -= S[g]) < 0) return -1; if (A > 0 && (0 === t || 1 !== k)) return -1; for (U[1] = 0, g = 1; g < ue; g++) U[g + 1] = U[g] + S[g]; for (p = 0; p < n; p++) 0 !== e[a + p] && (s[U[e[a + p]]++] = p); if (0 === t ? (Z = D = s, u = 20) : 1 === t ? (Z = ce, D = we, u = 257) : (Z = me, D = be, u = 0), R = 0, p = 0, g = v, f = r, x = y, z = 0, d = -1, _ = (E = 1 << y) - 1, 1 === t && E > 852 || 2 === t && E > 592) return 1; for (; ;) { c = g - z, s[p] + 1 < u ? (w = 0, m = s[p]) : s[p] >= u ? (w = D[s[p] - u], m = Z[s[p] - u]) : (w = 96, m = 0), l = 1 << g - z, v = h = 1 << x; do { i[f + (R >> z) + (h -= l)] = c << 24 | w << 16 | m | 0 } while (0 !== h); for (l = 1 << g - 1; R & l;) l >>= 1; if (0 !== l ? (R &= l - 1, R += l) : R = 0, p++, 0 == --S[g]) { if (g === k) break; g = e[a + s[p]] } if (g > y && (R & _) !== d) { for (0 === z && (z = y), f += v, A = 1 << (x = g - z); x + z < k && !((A -= S[x + z]) <= 0);) x++, A <<= 1; if (E += 1 << x, 1 === t && E > 852 || 2 === t && E > 592) return 1; i[d = R & _] = y << 24 | x << 16 | f - r | 0 } } return 0 !== R && (i[f + R] = g - z << 24 | 64 << 16 | 0), o.bits = y, 0 }, pe = K.Z_FINISH, ve = K.Z_BLOCK, ke = K.Z_TREES, ye = K.Z_OK, xe = K.Z_STREAM_END, ze = K.Z_NEED_DICT, Ae = K.Z_STREAM_ERROR, Ee = K.Z_DATA_ERROR, Re = K.Z_MEM_ERROR, Ze = K.Z_BUF_ERROR, Se = K.Z_DEFLATED, Ue = 16180, De = 16190, Te = 16191, Oe = 16192, Ie = 16194, Fe = 16199, Le = 16200, Ne = 16206, Be = 16209, Ce = function (t) { return (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24) }; function Me() { this.strm = null, this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0 } var He, je, Ke = function (t) { if (!t) return 1; var e = t.state; return !e || e.strm !== t || e.mode < Ue || e.mode > 16211 ? 1 : 0 }, Pe = function (t) { if (Ke(t)) return Ae; var e = t.state; return t.total_in = t.total_out = e.total = 0, t.msg = "", e.wrap && (t.adler = 1 & e.wrap), e.mode = Ue, e.last = 0, e.havedict = 0, e.flags = -1, e.dmax = 32768, e.head = null, e.hold = 0, e.bits = 0, e.lencode = e.lendyn = new Int32Array(852), e.distcode = e.distdyn = new Int32Array(592), e.sane = 1, e.back = -1, ye }, Ye = function (t) { if (Ke(t)) return Ae; var e = t.state; return e.wsize = 0, e.whave = 0, e.wnext = 0, Pe(t) }, Ge = function (t, e) { var a; if (Ke(t)) return Ae; var n = t.state; return e < 0 ? (a = 0, e = -e) : (a = 5 + (e >> 4), e < 48 && (e &= 15)), e && (e < 8 || e > 15) ? Ae : (null !== n.window && n.wbits !== e && (n.window = null), n.wrap = a, n.wbits = e, Ye(t)) }, Xe = function (t, e) { if (!t) return Ae; var a = new Me; t.state = a, a.strm = t, a.window = null, a.mode = Ue; var n = Ge(t, e); return n !== ye && (t.state = null), n }, We = !0, qe = function (t) { if (We) { He = new Int32Array(512), je = new Int32Array(32); for (var e = 0; e < 144;) t.lens[e++] = 8; for (; e < 256;) t.lens[e++] = 9; for (; e < 280;) t.lens[e++] = 7; for (; e < 288;) t.lens[e++] = 8; for (ge(1, t.lens, 0, 288, He, 0, t.work, {bits: 9}), e = 0; e < 32;) t.lens[e++] = 5; ge(2, t.lens, 0, 32, je, 0, t.work, {bits: 5}), We = !1 } t.lencode = He, t.lenbits = 9, t.distcode = je, t.distbits = 5 }, Je = function (t, e, a, n) { var i, r = t.state; return null === r.window && (r.wsize = 1 << r.wbits, r.wnext = 0, r.whave = 0, r.window = new Uint8Array(r.wsize)), n >= r.wsize ? (r.window.set(e.subarray(a - r.wsize, a), 0), r.wnext = 0, r.whave = r.wsize) : ((i = r.wsize - r.wnext) > n && (i = n), r.window.set(e.subarray(a - n, a - n + i), r.wnext), (n -= i) ? (r.window.set(e.subarray(a - n, a), 0), r.wnext = n, r.whave = r.wsize) : (r.wnext += i, r.wnext === r.wsize && (r.wnext = 0), r.whave < r.wsize && (r.whave += i))), 0 }, Qe = { inflateReset: Ye, inflateReset2: Ge, inflateResetKeep: Pe, inflateInit: function (t) { return Xe(t, 15) }, inflateInit2: Xe, inflate: function (t, e) { var a, n, i, r, s, o, l, h, d, _, f, u, c, w, m, b, g, p, v, k, y, x, z, A, E = 0, R = new Uint8Array(4), Z = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); if (Ke(t) || !t.output || !t.input && 0 !== t.avail_in) return Ae; (a = t.state).mode === Te && (a.mode = Oe), s = t.next_out, i = t.output, l = t.avail_out, r = t.next_in, n = t.input, o = t.avail_in, h = a.hold, d = a.bits, _ = o, f = l, x = ye; t:for (; ;) switch (a.mode) { case Ue: if (0 === a.wrap) { a.mode = Oe; break } for (; d < 16;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (2 & a.wrap && 35615 === h) { 0 === a.wbits && (a.wbits = 15), a.check = 0, R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0), h = 0, d = 0, a.mode = 16181; break } if (a.head && (a.head.done = !1), !(1 & a.wrap) || (((255 & h) << 8) + (h >> 8)) % 31) { t.msg = "incorrect header check", a.mode = Be; break } if ((15 & h) !== Se) { t.msg = "unknown compression method", a.mode = Be; break } if (d -= 4, y = 8 + (15 & (h >>>= 4)), 0 === a.wbits && (a.wbits = y), y > 15 || y > a.wbits) { t.msg = "invalid window size", a.mode = Be; break } a.dmax = 1 << a.wbits, a.flags = 0, t.adler = a.check = 1, a.mode = 512 & h ? 16189 : Te, h = 0, d = 0; break; case 16181: for (; d < 16;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (a.flags = h, (255 & a.flags) !== Se) { t.msg = "unknown compression method", a.mode = Be; break } if (57344 & a.flags) { t.msg = "unknown header flags set", a.mode = Be; break } a.head && (a.head.text = h >> 8 & 1), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0)), h = 0, d = 0, a.mode = 16182; case 16182: for (; d < 32;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } a.head && (a.head.time = h), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, R[2] = h >>> 16 & 255, R[3] = h >>> 24 & 255, a.check = H(a.check, R, 4, 0)), h = 0, d = 0, a.mode = 16183; case 16183: for (; d < 16;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } a.head && (a.head.xflags = 255 & h, a.head.os = h >> 8), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0)), h = 0, d = 0, a.mode = 16184; case 16184: if (1024 & a.flags) { for (; d < 16;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } a.length = h, a.head && (a.head.extra_len = h), 512 & a.flags && 4 & a.wrap && (R[0] = 255 & h, R[1] = h >>> 8 & 255, a.check = H(a.check, R, 2, 0)), h = 0, d = 0 } else a.head && (a.head.extra = null); a.mode = 16185; case 16185: if (1024 & a.flags && ((u = a.length) > o && (u = o), u && (a.head && (y = a.head.extra_len - a.length, a.head.extra || (a.head.extra = new Uint8Array(a.head.extra_len)), a.head.extra.set(n.subarray(r, r + u), y)), 512 & a.flags && 4 & a.wrap && (a.check = H(a.check, n, u, r)), o -= u, r += u, a.length -= u), a.length)) break t; a.length = 0, a.mode = 16186; case 16186: if (2048 & a.flags) { if (0 === o) break t; u = 0; do { y = n[r + u++], a.head && y && a.length < 65536 && (a.head.name += String.fromCharCode(y)) } while (y && u < o); if (512 & a.flags && 4 & a.wrap && (a.check = H(a.check, n, u, r)), o -= u, r += u, y) break t } else a.head && (a.head.name = null); a.length = 0, a.mode = 16187; case 16187: if (4096 & a.flags) { if (0 === o) break t; u = 0; do { y = n[r + u++], a.head && y && a.length < 65536 && (a.head.comment += String.fromCharCode(y)) } while (y && u < o); if (512 & a.flags && 4 & a.wrap && (a.check = H(a.check, n, u, r)), o -= u, r += u, y) break t } else a.head && (a.head.comment = null); a.mode = 16188; case 16188: if (512 & a.flags) { for (; d < 16;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (4 & a.wrap && h !== (65535 & a.check)) { t.msg = "header crc mismatch", a.mode = Be; break } h = 0, d = 0 } a.head && (a.head.hcrc = a.flags >> 9 & 1, a.head.done = !0), t.adler = a.check = 0, a.mode = Te; break; case 16189: for (; d < 32;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } t.adler = a.check = Ce(h), h = 0, d = 0, a.mode = De; case De: if (0 === a.havedict) return t.next_out = s, t.avail_out = l, t.next_in = r, t.avail_in = o, a.hold = h, a.bits = d, ze; t.adler = a.check = 1, a.mode = Te; case Te: if (e === ve || e === ke) break t; case Oe: if (a.last) { h >>>= 7 & d, d -= 7 & d, a.mode = Ne; break } for (; d < 3;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } switch (a.last = 1 & h, d -= 1, 3 & (h >>>= 1)) { case 0: a.mode = 16193; break; case 1: if (qe(a), a.mode = Fe, e === ke) { h >>>= 2, d -= 2; break t } break; case 2: a.mode = 16196; break; case 3: t.msg = "invalid block type", a.mode = Be } h >>>= 2, d -= 2; break; case 16193: for (h >>>= 7 & d, d -= 7 & d; d < 32;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if ((65535 & h) != (h >>> 16 ^ 65535)) { t.msg = "invalid stored block lengths", a.mode = Be; break } if (a.length = 65535 & h, h = 0, d = 0, a.mode = Ie, e === ke) break t; case Ie: a.mode = 16195; case 16195: if (u = a.length) { if (u > o && (u = o), u > l && (u = l), 0 === u) break t; i.set(n.subarray(r, r + u), s), o -= u, r += u, l -= u, s += u, a.length -= u; break } a.mode = Te; break; case 16196: for (; d < 14;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (a.nlen = 257 + (31 & h), h >>>= 5, d -= 5, a.ndist = 1 + (31 & h), h >>>= 5, d -= 5, a.ncode = 4 + (15 & h), h >>>= 4, d -= 4, a.nlen > 286 || a.ndist > 30) { t.msg = "too many length or distance symbols", a.mode = Be; break } a.have = 0, a.mode = 16197; case 16197: for (; a.have < a.ncode;) { for (; d < 3;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } a.lens[Z[a.have++]] = 7 & h, h >>>= 3, d -= 3 } for (; a.have < 19;) a.lens[Z[a.have++]] = 0; if (a.lencode = a.lendyn, a.lenbits = 7, z = {bits: a.lenbits}, x = ge(0, a.lens, 0, 19, a.lencode, 0, a.work, z), a.lenbits = z.bits, x) { t.msg = "invalid code lengths set", a.mode = Be; break } a.have = 0, a.mode = 16198; case 16198: for (; a.have < a.nlen + a.ndist;) { for (; b = (E = a.lencode[h & (1 << a.lenbits) - 1]) >>> 16 & 255, g = 65535 & E, !((m = E >>> 24) <= d);) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (g < 16) h >>>= m, d -= m, a.lens[a.have++] = g; else { if (16 === g) { for (A = m + 2; d < A;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (h >>>= m, d -= m, 0 === a.have) { t.msg = "invalid bit length repeat", a.mode = Be; break } y = a.lens[a.have - 1], u = 3 + (3 & h), h >>>= 2, d -= 2 } else if (17 === g) { for (A = m + 3; d < A;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } d -= m, y = 0, u = 3 + (7 & (h >>>= m)), h >>>= 3, d -= 3 } else { for (A = m + 7; d < A;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } d -= m, y = 0, u = 11 + (127 & (h >>>= m)), h >>>= 7, d -= 7 } if (a.have + u > a.nlen + a.ndist) { t.msg = "invalid bit length repeat", a.mode = Be; break } for (; u--;) a.lens[a.have++] = y } } if (a.mode === Be) break; if (0 === a.lens[256]) { t.msg = "invalid code -- missing end-of-block", a.mode = Be; break } if (a.lenbits = 9, z = {bits: a.lenbits}, x = ge(1, a.lens, 0, a.nlen, a.lencode, 0, a.work, z), a.lenbits = z.bits, x) { t.msg = "invalid literal/lengths set", a.mode = Be; break } if (a.distbits = 6, a.distcode = a.distdyn, z = {bits: a.distbits}, x = ge(2, a.lens, a.nlen, a.ndist, a.distcode, 0, a.work, z), a.distbits = z.bits, x) { t.msg = "invalid distances set", a.mode = Be; break } if (a.mode = Fe, e === ke) break t; case Fe: a.mode = Le; case Le: if (o >= 6 && l >= 258) { t.next_out = s, t.avail_out = l, t.next_in = r, t.avail_in = o, a.hold = h, a.bits = d, fe(t, f), s = t.next_out, i = t.output, l = t.avail_out, r = t.next_in, n = t.input, o = t.avail_in, h = a.hold, d = a.bits, a.mode === Te && (a.back = -1); break } for (a.back = 0; b = (E = a.lencode[h & (1 << a.lenbits) - 1]) >>> 16 & 255, g = 65535 & E, !((m = E >>> 24) <= d);) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (b && 0 == (240 & b)) { for (p = m, v = b, k = g; b = (E = a.lencode[k + ((h & (1 << p + v) - 1) >> p)]) >>> 16 & 255, g = 65535 & E, !(p + (m = E >>> 24) <= d);) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } h >>>= p, d -= p, a.back += p } if (h >>>= m, d -= m, a.back += m, a.length = g, 0 === b) { a.mode = 16205; break } if (32 & b) { a.back = -1, a.mode = Te; break } if (64 & b) { t.msg = "invalid literal/length code", a.mode = Be; break } a.extra = 15 & b, a.mode = 16201; case 16201: if (a.extra) { for (A = a.extra; d < A;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } a.length += h & (1 << a.extra) - 1, h >>>= a.extra, d -= a.extra, a.back += a.extra } a.was = a.length, a.mode = 16202; case 16202: for (; b = (E = a.distcode[h & (1 << a.distbits) - 1]) >>> 16 & 255, g = 65535 & E, !((m = E >>> 24) <= d);) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (0 == (240 & b)) { for (p = m, v = b, k = g; b = (E = a.distcode[k + ((h & (1 << p + v) - 1) >> p)]) >>> 16 & 255, g = 65535 & E, !(p + (m = E >>> 24) <= d);) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } h >>>= p, d -= p, a.back += p } if (h >>>= m, d -= m, a.back += m, 64 & b) { t.msg = "invalid distance code", a.mode = Be; break } a.offset = g, a.extra = 15 & b, a.mode = 16203; case 16203: if (a.extra) { for (A = a.extra; d < A;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } a.offset += h & (1 << a.extra) - 1, h >>>= a.extra, d -= a.extra, a.back += a.extra } if (a.offset > a.dmax) { t.msg = "invalid distance too far back", a.mode = Be; break } a.mode = 16204; case 16204: if (0 === l) break t; if (u = f - l, a.offset > u) { if ((u = a.offset - u) > a.whave && a.sane) { t.msg = "invalid distance too far back", a.mode = Be; break } u > a.wnext ? (u -= a.wnext, c = a.wsize - u) : c = a.wnext - u, u > a.length && (u = a.length), w = a.window } else w = i, c = s - a.offset, u = a.length; u > l && (u = l), l -= u, a.length -= u; do { i[s++] = w[c++] } while (--u); 0 === a.length && (a.mode = Le); break; case 16205: if (0 === l) break t; i[s++] = a.length, l--, a.mode = Le; break; case Ne: if (a.wrap) { for (; d < 32;) { if (0 === o) break t; o--, h |= n[r++] << d, d += 8 } if (f -= l, t.total_out += f, a.total += f, 4 & a.wrap && f && (t.adler = a.check = a.flags ? H(a.check, i, f, s - f) : C(a.check, i, f, s - f)), f = l, 4 & a.wrap && (a.flags ? h : Ce(h)) !== a.check) { t.msg = "incorrect data check", a.mode = Be; break } h = 0, d = 0 } a.mode = 16207; case 16207: if (a.wrap && a.flags) { for (; d < 32;) { if (0 === o) break t; o--, h += n[r++] << d, d += 8 } if (4 & a.wrap && h !== (4294967295 & a.total)) { t.msg = "incorrect length check", a.mode = Be; break } h = 0, d = 0 } a.mode = 16208; case 16208: x = xe; break t; case Be: x = Ee; break t; case 16210: return Re; default: return Ae } return t.next_out = s, t.avail_out = l, t.next_in = r, t.avail_in = o, a.hold = h, a.bits = d, (a.wsize || f !== t.avail_out && a.mode < Be && (a.mode < Ne || e !== pe)) && Je(t, t.output, t.next_out, f - t.avail_out), _ -= t.avail_in, f -= t.avail_out, t.total_in += _, t.total_out += f, a.total += f, 4 & a.wrap && f && (t.adler = a.check = a.flags ? H(a.check, i, f, t.next_out - f) : C(a.check, i, f, t.next_out - f)), t.data_type = a.bits + (a.last ? 64 : 0) + (a.mode === Te ? 128 : 0) + (a.mode === Fe || a.mode === Ie ? 256 : 0), (0 === _ && 0 === f || e === pe) && x === ye && (x = Ze), x }, inflateEnd: function (t) { if (Ke(t)) return Ae; var e = t.state; return e.window && (e.window = null), t.state = null, ye }, inflateGetHeader: function (t, e) { if (Ke(t)) return Ae; var a = t.state; return 0 == (2 & a.wrap) ? Ae : (a.head = e, e.done = !1, ye) }, inflateSetDictionary: function (t, e) { var a, n = e.length; return Ke(t) || 0 !== (a = t.state).wrap && a.mode !== De ? Ae : a.mode === De && C(1, e, n, 0) !== a.check ? Ee : Je(t, e, n, n) ? (a.mode = 16210, Re) : (a.havedict = 1, ye) }, inflateInfo: "pako inflate (from Nodeca project)" }; var Ve = function () { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1 }, $e = Object.prototype.toString, ta = K.Z_NO_FLUSH, ea = K.Z_FINISH, aa = K.Z_OK, na = K.Z_STREAM_END, ia = K.Z_NEED_DICT, ra = K.Z_STREAM_ERROR, sa = K.Z_DATA_ERROR, oa = K.Z_MEM_ERROR; function la(t) { this.options = Kt({chunkSize: 65536, windowBits: 15, to: ""}, t || {}); var e = this.options; e.raw && e.windowBits >= 0 && e.windowBits < 16 && (e.windowBits = -e.windowBits, 0 === e.windowBits && (e.windowBits = -15)), !(e.windowBits >= 0 && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32), e.windowBits > 15 && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new Qt, this.strm.avail_out = 0; var a = Qe.inflateInit2(this.strm, e.windowBits); if (a !== aa) throw new Error(j[a]); if (this.header = new Ve, Qe.inflateGetHeader(this.strm, this.header), e.dictionary && ("string" == typeof e.dictionary ? e.dictionary = Wt(e.dictionary) : "[object ArrayBuffer]" === $e.call(e.dictionary) && (e.dictionary = new Uint8Array(e.dictionary)), e.raw && (a = Qe.inflateSetDictionary(this.strm, e.dictionary)) !== aa)) throw new Error(j[a]) } function ha(t, e) { var a = new la(e); if (a.push(t), a.err) throw a.msg || j[a.err]; return a.result } la.prototype.push = function (t, e) { var a, n, i, r = this.strm, s = this.options.chunkSize, o = this.options.dictionary; if (this.ended) return !1; for (n = e === ~~e ? e : !0 === e ? ea : ta, "[object ArrayBuffer]" === $e.call(t) ? r.input = new Uint8Array(t) : r.input = t, r.next_in = 0, r.avail_in = r.input.length; ;) { for (0 === r.avail_out && (r.output = new Uint8Array(s), r.next_out = 0, r.avail_out = s), (a = Qe.inflate(r, n)) === ia && o && ((a = Qe.inflateSetDictionary(r, o)) === aa ? a = Qe.inflate(r, n) : a === sa && (a = ia)); r.avail_in > 0 && a === na && r.state.wrap > 0 && 0 !== t[r.next_in];) Qe.inflateReset(r), a = Qe.inflate(r, n); switch (a) { case ra: case sa: case ia: case oa: return this.onEnd(a), this.ended = !0, !1 } if (i = r.avail_out, r.next_out && (0 === r.avail_out || a === na)) if ("string" === this.options.to) { var l = Jt(r.output, r.next_out), h = r.next_out - l, d = qt(r.output, l); r.next_out = h, r.avail_out = s - h, h && r.output.set(r.output.subarray(l, l + h), 0), this.onData(d) } else this.onData(r.output.length === r.next_out ? r.output : r.output.subarray(0, r.next_out)); if (a !== aa || 0 !== i) { if (a === na) return a = Qe.inflateEnd(this.strm), this.onEnd(a), this.ended = !0, !0; if (0 === r.avail_in) break } } return !0 }, la.prototype.onData = function (t) { this.chunks.push(t) }, la.prototype.onEnd = function (t) { t === aa && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = Pt(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }; var da = { Inflate: la, inflate: ha, inflateRaw: function (t, e) { return (e = e || {}).raw = !0, ha(t, e) }, ungzip: ha, constants: K }, _a = de.Deflate, fa = de.deflate, ua = de.deflateRaw, ca = de.gzip, wa = da.Inflate, ma = da.inflate, ba = da.inflateRaw, ga = da.ungzip, pa = K, va = { Deflate: _a, deflate: fa, deflateRaw: ua, gzip: ca, Inflate: wa, inflate: ma, inflateRaw: ba, ungzip: ga, constants: pa }; t.Deflate = _a, t.Inflate = wa, t.constants = pa, t.default = va, t.deflate = fa, t.deflateRaw = ua, t.gzip = ca, t.inflate = ma, t.inflateRaw = ba, t.ungzip = ga, Object.defineProperty(t, "__esModule", {value: !0}) })); var $jscomp = {scope: {}}; $jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function (d, h, l) { if (l.get || l.set) throw new TypeError("ES3 does not support getters and setters."); d != Array.prototype && d != Object.prototype && (d[h] = l.value) }; $jscomp.getGlobal = function (d) { return "undefined" != typeof window && window === d ? d : "undefined" != typeof global && null != global ? global : d }; $jscomp.global = $jscomp.getGlobal(this); $jscomp.polyfill = function (d, h, l, p) { if (h) { l = $jscomp.global; d = d.split("."); for (p = 0; p < d.length - 1; p++) { var v = d[p]; v in l || (l[v] = {}); l = l[v] } d = d[d.length - 1]; p = l[d]; h = h(p); h != p && null != h && $jscomp.defineProperty(l, d, {configurable: !0, writable: !0, value: h}) } }; $jscomp.polyfill("Math.imul", function (d) { return d ? d : function (d, l) { d = Number(d); l = Number(l); var h = d & 65535, v = l & 65535; return h * v + ((d >>> 16 & 65535) * v + h * (l >>> 16 & 65535) << 16 >>> 0) | 0 } }, "es6-impl", "es3"); $jscomp.polyfill("Object.setPrototypeOf", function (d) { return d ? d : "object" != typeof "".__proto__ ? null : function (d, l) { d.__proto__ = l; if (d.__proto__ !== l) throw new TypeError(d + " is not extensible"); return d } }, "es6", "es5"); $jscomp.polyfill("Reflect.apply", function (d) { if (d) return d; var h = Function.prototype.apply; return function (d, p, v) { return h.call(d, p, v) } }, "es6", "es3"); $jscomp.polyfill("Reflect.construct", function (d) { return d ? d : function (d, l, p) { void 0 === p && (p = d); p = Object.create(p.prototype || Object.prototype); return Reflect.apply(d, p, l) || p } }, "es6", "es5"); $jscomp.SYMBOL_PREFIX = "jscomp_symbol_"; $jscomp.initSymbol = function () { $jscomp.initSymbol = function () { }; $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol) }; $jscomp.symbolCounter_ = 0; $jscomp.Symbol = function (d) { return $jscomp.SYMBOL_PREFIX + (d || "") + $jscomp.symbolCounter_++ }; $jscomp.initSymbolIterator = function () { $jscomp.initSymbol(); var d = $jscomp.global.Symbol.iterator; d || (d = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator")); "function" != typeof Array.prototype[d] && $jscomp.defineProperty(Array.prototype, d, { configurable: !0, writable: !0, value: function () { return $jscomp.arrayIterator(this) } }); $jscomp.initSymbolIterator = function () { } }; $jscomp.arrayIterator = function (d) { var h = 0; return $jscomp.iteratorPrototype(function () { return h < d.length ? {done: !1, value: d[h++]} : {done: !0} }) }; $jscomp.iteratorPrototype = function (d) { $jscomp.initSymbolIterator(); d = {next: d}; d[$jscomp.global.Symbol.iterator] = function () { return this }; return d }; $jscomp.polyfill("Array.from", function (d) { return d ? d : function (d, l, p) { $jscomp.initSymbolIterator(); l = null != l ? l : function (d) { return d }; var h = [], z = d[Symbol.iterator]; if ("function" == typeof z) for (d = z.call(d); !(z = d.next()).done;) h.push(l.call(p, z.value)); else for (var z = d.length, B = 0; B < z; B++) h.push(l.call(p, d[B])); return h } }, "es6-impl", "es3"); $jscomp.polyfill("Number.MAX_SAFE_INTEGER", function () { return 9007199254740991 }, "es6-impl", "es3"); $jscomp.owns = function (d, h) { return Object.prototype.hasOwnProperty.call(d, h) }; $jscomp.polyfill("Object.assign", function (d) { return d ? d : function (d, l) { for (var h = 1; h < arguments.length; h++) { var v = arguments[h]; if (v) for (var z in v) $jscomp.owns(v, z) && (d[z] = v[z]) } return d } }, "es6-impl", "es3"); $jscomp.polyfill("Array.prototype.fill", function (d) { return d ? d : function (d, l, p) { var h = this.length || 0; 0 > l && (l = Math.max(0, h + l)); if (null == p || p > h) p = h; p = Number(p); 0 > p && (p = Math.max(0, h + p)); for (l = Number(l || 0); l < p; l++) this[l] = d; return this } }, "es6-impl", "es3"); Array.from || (Array.from = function (d) { return [].slice.call(d) }); Math.imul = Math.imul || function (d, h) { var l = d & 65535, p = h & 65535; return l * p + ((d >>> 16 & 65535) * p + l * (h >>> 16 & 65535) << 16 >>> 0) | 0 }; function _instanceof(d, h) { return null != h && "undefined" !== typeof Symbol && h[Symbol.hasInstance] ? !!h[Symbol.hasInstance](d) : d instanceof h } function _inherits(d, h) { if ("function" !== typeof h && null !== h) throw new TypeError("Super expression must either be null or a function"); d.prototype = Object.create(h && h.prototype, {constructor: {value: d, writable: !0, configurable: !0}}); h && _setPrototypeOf(d, h) } function _setPrototypeOf(d, h) { _setPrototypeOf = Object.setPrototypeOf || function (d, h) { d.__proto__ = h; return d }; return _setPrototypeOf(d, h) } function _createSuper(d) { var h = _isNativeReflectConstruct(); return function () { var l = _getPrototypeOf(d); if (h) var p = _getPrototypeOf(this).constructor, l = Reflect.construct(l, arguments, p); else l = l.apply(this, arguments); return _possibleConstructorReturn(this, l) } } function _possibleConstructorReturn(d, h) { return !h || "object" !== _typeof(h) && "function" !== typeof h ? _assertThisInitialized(d) : h } function _assertThisInitialized(d) { if (void 0 === d) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return d } function _isNativeReflectConstruct() { if ("undefined" === typeof Reflect || !Reflect.construct || Reflect.construct.sham) return !1; if ("function" === typeof Proxy) return !0; try { return Date.prototype.toString.call(Reflect.construct(Date, [], function () { })), !0 } catch (d) { return !1 } } function _getPrototypeOf(d) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function (d) { return d.__proto__ || Object.getPrototypeOf(d) }; return _getPrototypeOf(d) } function _createForOfIteratorHelper(d, h) { var l; if ("undefined" === typeof Symbol || null == d[Symbol.iterator]) { if (Array.isArray(d) || (l = _unsupportedIterableToArray(d)) || h && d && "number" === typeof d.length) { l && (d = l); var p = 0, v = function () { }; return { s: v, n: function () { return p >= d.length ? {done: !0} : {done: !1, value: d[p++]} }, e: function (d) { throw d; }, f: v } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var z = !0, B = !1, C; return { s: function () { l = d[Symbol.iterator]() }, n: function () { var d = l.next(); z = d.done; return d }, e: function (d) { B = !0; C = d }, f: function () { try { z || null == l["return"] || l["return"]() } finally { if (B) throw C; } } } } function _classCallCheck(d, h) { if (!_instanceof(d, h)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(d, h) { for (var l = 0; l < h.length; l++) { var p = h[l]; p.enumerable = p.enumerable || !1; p.configurable = !0; "value" in p && (p.writable = !0); Object.defineProperty(d, p.key, p) } } function _createClass(d, h, l) { h && _defineProperties(d.prototype, h); l && _defineProperties(d, l); return d } function _typeof(d) { "@babel/helpers - typeof"; _typeof = "function" === typeof Symbol && "symbol" === typeof Symbol.iterator ? function (d) { return typeof d } : function (d) { return d && "function" === typeof Symbol && d.constructor === Symbol && d !== Symbol.prototype ? "symbol" : typeof d }; return _typeof(d) } function _toConsumableArray(d) { return _arrayWithoutHoles(d) || _iterableToArray(d) || _unsupportedIterableToArray(d) || _nonIterableSpread() } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(d) { if ("undefined" !== typeof Symbol && Symbol.iterator in Object(d)) return Array.from(d) } function _arrayWithoutHoles(d) { if (Array.isArray(d)) return _arrayLikeToArray(d) } function _slicedToArray(d, h) { return _arrayWithHoles(d) || _iterableToArrayLimit(d, h) || _unsupportedIterableToArray(d, h) || _nonIterableRest() } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(d, h) { if (d) { if ("string" === typeof d) return _arrayLikeToArray(d, h); var l = Object.prototype.toString.call(d).slice(8, -1); "Object" === l && d.constructor && (l = d.constructor.name); if ("Map" === l || "Set" === l) return Array.from(d); if ("Arguments" === l || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)) return _arrayLikeToArray(d, h) } } function _arrayLikeToArray(d, h) { if (null == h || h > d.length) h = d.length; for (var l = 0, p = Array(h); l < h; l++) p[l] = d[l]; return p } function _iterableToArrayLimit(d, h) { if ("undefined" !== typeof Symbol && Symbol.iterator in Object(d)) { var l = [], p = !0, v = !1, z = void 0; try { for (var B = d[Symbol.iterator](), C; !(p = (C = B.next()).done) && (l.push(C.value), !h || l.length !== h); p = !0) ; } catch (H) { v = !0, z = H } finally { try { if (!p && null != B["return"]) B["return"]() } finally { if (v) throw z; } } return l } } function _arrayWithHoles(d) { if (Array.isArray(d)) return d } var rough = function () { function d(b, a, e) { if (b && b.length) { a = _slicedToArray(a, 2); var c = a[0], f = a[1]; e *= Math.PI / 180; var k = Math.cos(e), d = Math.sin(e); b.forEach(function (a) { var e = _slicedToArray(a, 2), b = e[0], e = e[1]; a[0] = (b - c) * k - (e - f) * d + c; a[1] = (b - c) * d + (e - f) * k + f }) } } function h(b) { var a = b[0]; b = b[1]; return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2)) } function l(b, a, e, c) { var f = a[1] - b[1]; a = b[0] - a[0]; b = f * b[0] + a * b[1]; var k = c[1] - e[1]; c = e[0] - c[0]; e = k * e[0] + c * e[1]; var d = f * c - k * a; return d ? [(c * b - a * e) / d, (f * e - k * b) / d] : null } function p(b, a, e) { var c = b.length; if (3 > c) return !1; var f = [Number.MAX_SAFE_INTEGER, e]; a = [a, e]; for (var k = e = 0; k < c; k++) { var d = b[k], g = b[(k + 1) % c]; if (B(d, g, a, f)) { if (0 === z(d, a, g)) return v(d, a, g); e++ } } return 1 == e % 2 } function v(b, a, e) { return a[0] <= Math.max(b[0], e[0]) && a[0] >= Math.min(b[0], e[0]) && a[1] <= Math.max(b[1], e[1]) && a[1] >= Math.min(b[1], e[1]) } function z(b, a, e) { b = (a[1] - b[1]) * (e[0] - a[0]) - (a[0] - b[0]) * (e[1] - a[1]); return 0 === b ? 0 : 0 < b ? 1 : 2 } function B(b, a, e, c) { var f = z(b, a, e), k = z(b, a, c), d = z(e, c, b), g = z(e, c, a); return f !== k && d !== g || !(0 !== f || !v(b, e, a)) || !(0 !== k || !v(b, c, a)) || !(0 !== d || !v(e, b, c)) || !(0 !== g || !v(e, a, c)) } function C(b, a) { var e = [0, 0], c = Math.round(a.hachureAngle + 90); c && d(b, e, c); var f = function (a, e) { var c = _toConsumableArray(a); c[0].join(",") !== c[c.length - 1].join(",") && c.push([c[0][0], c[0][1]]); var f = []; if (c && 2 < c.length) { var b = function () { var a = e.hachureGap; 0 > a && (a = 4 * e.strokeWidth); for (var a = Math.max(a, .1), b = [], k = 0; k < c.length - 1; k++) { var g = c[k], d = c[k + 1]; if (g[1] !== d[1]) { var n = Math.min(g[1], d[1]); b.push({ ymin: n, ymax: Math.max(g[1], d[1]), x: n === g[1] ? g[0] : d[0], islope: (d[0] - g[0]) / (d[1] - g[1]) }) } } if (b.sort(function (a, c) { return a.ymin < c.ymin ? -1 : a.ymin > c.ymin ? 1 : a.x < c.x ? -1 : a.x > c.x ? 1 : a.ymax === c.ymax ? 0 : (a.ymax - c.ymax) / Math.abs(a.ymax - c.ymax) }), !b.length) return {v: f}; for (var m = [], r = b[0].ymin; m.length || b.length;) { if (b.length) { k = -1; for (g = 0; g < b.length && !(b[g].ymin > r); g++) k = g; b.splice(0, k + 1).forEach(function (a) { m.push({s: r, edge: a}) }) } if (m = m.filter(function (a) { return !(a.edge.ymax <= r) }), m.sort(function (a, c) { return a.edge.x === c.edge.x ? 0 : (a.edge.x - c.edge.x) / Math.abs(a.edge.x - c.edge.x) }), 1 < m.length) for (k = 0; k < m.length; k += 2) { g = k + 1; if (g >= m.length) break; f.push([[Math.round(m[k].edge.x), r], [Math.round(m[g].edge.x), r]]) } r += a; m.forEach(function (c) { c.edge.x += a * c.edge.islope }) } }(); if ("object" === _typeof(b)) return b.v } return f }(b, a); return c && (d(b, e, -c), function (a, c, e) { var f = []; a.forEach(function (a) { return f.push.apply(f, _toConsumableArray(a)) }); d(f, c, e) }(f, e, -c)), f } function H(b) { var a = [], e; a:{ e = b; for (var c = []; "" !== e;) { if (!e.match(/^([ \t\r\n,]+)/)) if (e.match(/^([aAcChHlLmMqQsStTvVzZ])/)) c[c.length] = {type: 0, text: RegExp.$1}; else { if (!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) { e = []; break a } c[c.length] = {type: 1, text: "".concat(parseFloat(RegExp.$1))} } e = e.substr(RegExp.$1.length) } e = (c[c.length] = {type: 2, text: ""}, c) } for (var c = "BOD", f = 0, k = e[f]; 2 !== k.type;) { var d = 0, g = []; if ("BOD" === c) { if ("M" !== k.text && "m" !== k.text) return H("M0,0" + b); f++; d = K[k.text]; c = k.text } else 1 === k.type ? d = K[c] : (f++, d = K[k.text], c = k.text); if (!(f + d < e.length)) throw Error("Path data ended short"); for (k = f; k < f + d; k++) { var n = e[k]; if (1 !== n.type) throw Error("Param not a number: " + c + "," + n.text); g[g.length] = +n.text } if ("number" != typeof K[c]) throw Error("Bad segment: " + c); a.push({key: c, data: g}); f += d; k = e[f]; "M" === c && (c = "L"); "m" === c && (c = "l") } return a } function W(b) { var a, e, c, f, k, d, g = 0, n = 0, m = 0, x = 0, w = []; b = _createForOfIteratorHelper(b); var t; try { for (b.s(); !(t = b.n()).done;) { var h = t.value, q = h.data; switch (h.key) { case "M": w.push({key: "M", data: _toConsumableArray(q)}); a = q; e = _slicedToArray(a, 2); g = e[0]; n = e[1]; a; c = q; f = _slicedToArray(c, 2); m = f[0]; x = f[1]; c; break; case "m": g += q[0]; n += q[1]; w.push({key: "M", data: [g, n]}); m = g; x = n; break; case "L": w.push({key: "L", data: _toConsumableArray(q)}); k = q; d = _slicedToArray(k, 2); g = d[0]; n = d[1]; k; break; case "l": g += q[0]; n += q[1]; w.push({key: "L", data: [g, n]}); break; case "C": w.push({key: "C", data: _toConsumableArray(q)}); g = q[4]; n = q[5]; break; case "c": var l = q.map(function (a, c) { return c % 2 ? a + n : a + g }); w.push({key: "C", data: l}); g = l[4]; n = l[5]; break; case "Q": w.push({key: "Q", data: _toConsumableArray(q)}); g = q[2]; n = q[3]; break; case "q": var p = q.map(function (a, c) { return c % 2 ? a + n : a + g }); w.push({key: "Q", data: p}); g = p[2]; n = p[3]; break; case "A": w.push({key: "A", data: _toConsumableArray(q)}); g = q[5]; n = q[6]; break; case "a": g += q[5]; n += q[6]; w.push({key: "A", data: [q[0], q[1], q[2], q[3], q[4], g, n]}); break; case "H": w.push({key: "H", data: _toConsumableArray(q)}); g = q[0]; break; case "h": g += q[0]; w.push({key: "H", data: [g]}); break; case "V": w.push({key: "V", data: _toConsumableArray(q)}); n = q[0]; break; case "v": n += q[0]; w.push({key: "V", data: [n]}); break; case "S": w.push({ key: "S", data: _toConsumableArray(q) }); g = q[2]; n = q[3]; break; case "s": var u = q.map(function (a, c) { return c % 2 ? a + n : a + g }); w.push({key: "S", data: u}); g = u[2]; n = u[3]; break; case "T": w.push({key: "T", data: _toConsumableArray(q)}); g = q[0]; n = q[1]; break; case "t": g += q[0]; n += q[1]; w.push({key: "T", data: [g, n]}); break; case "Z": case "z": w.push({key: "Z", data: []}), g = m, n = x } } } catch (y) { b.e(y) } finally { b.f() } return w } function X(b) { var a, e, c, f, k, d, g = [], n = "", m = 0, x = 0, w = 0, t = 0, h = 0, q = 0; b = _createForOfIteratorHelper(b); var l; try { for (b.s(); !(l = b.n()).done;) { var p = l.value, u = p.key, y = p.data; switch (u) { case "M": g.push({key: "M", data: _toConsumableArray(y)}); a = y; e = _slicedToArray(a, 2); m = e[0]; x = e[1]; a; c = y; f = _slicedToArray(c, 2); w = f[0]; t = f[1]; c; break; case "C": g.push({key: "C", data: _toConsumableArray(y)}); m = y[4]; x = y[5]; h = y[2]; q = y[3]; break; case "L": g.push({key: "L", data: _toConsumableArray(y)}); k = y; d = _slicedToArray(k, 2); m = d[0]; x = d[1]; k; break; case "H": m = y[0]; g.push({key: "L", data: [m, x]}); break; case "V": x = y[0]; g.push({key: "L", data: [m, x]}); break; case "S": var F = 0, v = 0; "C" === n || "S" === n ? (F = m + (m - h), v = x + (x - q)) : (F = m, v = x); g.push({key: "C", data: [F, v].concat(_toConsumableArray(y))}); h = y[0]; q = y[1]; m = y[2]; x = y[3]; break; case "T": var z = _slicedToArray(y, 2), A = z[0], B = z[1], v = F = 0; "Q" === n || "T" === n ? (F = m + (m - h), v = x + (x - q)) : (F = m, v = x); g.push({ key: "C", data: [m + 2 * (F - m) / 3, x + 2 * (v - x) / 3, A + 2 * (F - A) / 3, B + 2 * (v - B) / 3, A, B] }); h = F; q = v; m = A; x = B; break; case "Q": var C = _slicedToArray(y, 4), D = C[0], G = C[1], E = C[2], H = C[3]; g.push({ key: "C", data: [m + 2 * (D - m) / 3, x + 2 * (G - x) / 3, E + 2 * (D - E) / 3, H + 2 * (G - H) / 3, E, H] }); h = D; q = G; m = E; x = H; break; case "A": var I = Math.abs(y[0]), J = Math.abs(y[1]), K = y[2], N = y[3], O = y[4], L = y[5], M = y[6]; if (0 === I || 0 === J) g.push({ key: "C", data: [m, x, L, M, L, M] }), m = L, x = M; else if (m !== L || x !== M) Y(m, x, L, M, I, J, K, N, O).forEach(function (a) { g.push({key: "C", data: a}) }), m = L, x = M; break; case "Z": g.push({key: "Z", data: []}), m = w, x = t } n = u } } catch (ka) { b.e(ka) } finally { b.f() } return g } function I(b, a, e) { return [b * Math.cos(e) - a * Math.sin(e), b * Math.sin(e) + a * Math.cos(e)] } function Y(b, a, e, c, f, k, d, g, n, m) { var r = (w = d, Math.PI * w / 180), w; w = []; var t, h, q; if (m) q = _slicedToArray(m, 4), t = q[0], g = q[1], h = q[2], q = q[3]; else { t = I(b, a, -r); a = _slicedToArray(t, 2); b = a[0]; a = a[1]; t; t = I(e, c, -r); c = _slicedToArray(t, 2); e = c[0]; c = c[1]; t; t = (b - e) / 2; h = (a - c) / 2; q = t * t / (f * f) + h * h / (k * k); 1 < q && (q = Math.sqrt(q), f *= q, k *= q); q = f * f; var l = k * k; g = (g === n ? -1 : 1) * Math.sqrt(Math.abs((q * l - q * h * h - l * t * t) / (q * h * h + l * t * t))); h = g * f * h / k + (b + e) / 2; q = g * -k * t / f + (a + c) / 2; t = Math.asin(parseFloat(((a - q) / k).toFixed(9))); g = Math.asin(parseFloat(((c - q) / k).toFixed(9))); b < h && (t = Math.PI - t); e < h && (g = Math.PI - g); 0 > t && (t = 2 * Math.PI + t); 0 > g && (g = 2 * Math.PI + g); n && t > g && (t -= 2 * Math.PI); !n && g > t && (g -= 2 * Math.PI) } Math.abs(g - t) > 120 * Math.PI / 180 && (g = n && g > t ? t + 120 * Math.PI / 180 * 1 : t + 120 * Math.PI / 180 * -1, w = Y(e = h + f * Math.cos(g), c = q + k * Math.sin(g), e, c, f, k, d, 0, n, [g, g, h, q])); d = Math.tan((g - t) / 4); f = 4 / 3 * f * d; d *= 4 / 3 * k; k = [b, a]; b = [b + f * Math.sin(t), a - d * Math.cos(t)]; a = [e + f * Math.sin(g), c - d * Math.cos(g)]; e = [e, c]; if (b[0] = 2 * k[0] - b[0], b[1] = 2 * k[1] - b[1], m) return [b, a, e].concat(w); w = [b, a, e].concat(w); m = []; for (e = 0; e < w.length; e += 3) c = I(w[e][0], w[e][1], r), b = I(w[e + 1][0], w[e + 1][1], r), a = I(w[e + 2][0], w[e + 2][1], r), m.push([c[0], c[1], b[0], b[1], a[0], a[1]]); return m } function N(b, a, e) { var c = (b || []).length; if (2 < c) { for (var f = [], k = 0; k < c - 1; k++) f.push.apply(f, _toConsumableArray(D(b[k][0], b[k][1], b[k + 1][0], b[k + 1][1], e))); return a && f.push.apply(f, _toConsumableArray(D(b[c - 1][0], b[c - 1][1], b[0][0], b[0][1], e))), { type: "path", ops: f } } return 2 === c ? {type: "path", ops: D(b[0][0], b[0][1], b[1][0], b[1][1], e)} : {type: "path", ops: []} } function la(b, a) { var e = Z(b, 1 * (1 + .2 * a.roughness), a); if (!a.disableMultiStroke) { var c = 1.5 * (1 + .22 * a.roughness), f = Object.assign({}, a); f.randomizer = void 0; a.seed && (f.seed = a.seed + 1); c = Z(b, c, f); e = e.concat(c) } return {type: "path", ops: e} } function aa(b, a, e) { var c = 2 * Math.PI / Math.max(e.curveStepCount, e.curveStepCount / Math.sqrt(200) * Math.sqrt(2 * Math.PI * Math.sqrt((Math.pow(b / 2, 2) + Math.pow(a / 2, 2)) / 2))); b = Math.abs(b / 2); a = Math.abs(a / 2); var f = 1 - e.curveFitting; return b += u(b * f, e), a += u(a * f, e), {increment: c, rx: b, ry: a} } function T(b, a, e, c) { var f = ba(c.increment, b, a, c.rx, c.ry, 1, c.increment * O(.1, O(.4, 1, e), e), e), k = _slicedToArray(f, 2), f = k[1], k = P(k[0], null, e); e.disableMultiStroke || (b = ba(c.increment, b, a, c.rx, c.ry, 1.5, 0, e), b = _slicedToArray(b, 1)[0], e = P(b, null, e), k = k.concat(e)); return {estimatedPoints: f, opset: {type: "path", ops: k}} } function ca(b, a, e, c, f, k, d, g, n) { e = Math.abs(e / 2); c = Math.abs(c / 2); e += u(.01 * e, n); for (c += u(.01 * c, n); 0 > f;) f += 2 * Math.PI, k += 2 * Math.PI; k - f > 2 * Math.PI && (f = 0, k = 2 * Math.PI); var m = Math.min(2 * Math.PI / n.curveStepCount / 2, (k - f) / 2), r = da(m, b, a, e, c, f, k, 1, n); n.disableMultiStroke || (m = da(m, b, a, e, c, f, k, 1.5, n), r.push.apply(r, _toConsumableArray(m))); return d && (g ? r.push.apply(r, _toConsumableArray(D(b, a, b + e * Math.cos(f), a + c * Math.sin(f), n)).concat(_toConsumableArray(D(b, a, b + e * Math.cos(k), a + c * Math.sin(k), n)))) : r.push({ op: "lineTo", data: [b, a] }, {op: "lineTo", data: [b + e * Math.cos(f), a + c * Math.sin(f)]})), {type: "path", ops: r} } function J(b, a) { var e = []; if (b.length) { var c = a.maxRandomnessOffset || 0, f = b.length; if (2 < f) { e.push({op: "move", data: [b[0][0] + u(c, a), b[0][1] + u(c, a)]}); for (var k = 1; k < f; k++) e.push({op: "lineTo", data: [b[k][0] + u(c, a), b[k][1] + u(c, a)]}) } } return { type: "fillPath", ops: e } } function G(b, a) { var e = ma, c = a.fillStyle || "hachure"; if (!A[c]) switch (c) { case "zigzag": A[c] || (A[c] = new na(e)); break; case "cross-hatch": A[c] || (A[c] = new oa(e)); break; case "dots": A[c] || (A[c] = new pa(e)); break; case "dashed": A[c] || (A[c] = new qa(e)); break; case "zigzag-line": A[c] || (A[c] = new ra(e)); break; default: c = "hachure", A[c] || (A[c] = new U(e)) } return A[c].fillPolygon(b, a) } function ea(b) { return b.randomizer || (b.randomizer = new sa(b.seed || 0)), b.randomizer.next() } function O(b, a, e) { return e.roughness * (3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : 1) * (ea(e) * (a - b) + b) } function u(b, a) { return O(-b, b, a, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1) } function D(b, a, e, c, f) { var k = 5 < arguments.length && void 0 !== arguments[5] && arguments[5] ? f.disableMultiStrokeFill : f.disableMultiStroke, d = fa(b, a, e, c, f, !0, !1); if (k) return d; k = fa(b, a, e, c, f, !0, !0); return d.concat(k) } function fa(b, a, e, c, f, k, d) { var g = Math.pow(b - e, 2) + Math.pow(a - c, 2), n = Math.sqrt(g), m = 1, m = 200 > n ? 1 : 500 < n ? .4 : -.0016668 * n + 1.233334, r = f.maxRandomnessOffset || 0; r * r * 100 > g && (r = n / 10); var h = r / 2, g = .2 + .2 * ea(f), n = f.bowing * f.maxRandomnessOffset * (c - a) / 200, t = f.bowing * f.maxRandomnessOffset * (b - e) / 200, n = u(n, f, m), t = u(t, f, m), l = [], q = function () { return u(h, f, m) }, p = function () { return u(r, f, m) }, v = f.preserveVertices; return k && (d ? l.push({op: "move", data: [b + (v ? 0 : q()), a + (v ? 0 : q())]}) : l.push({ op: "move", data: [b + (v ? 0 : u(r, f, m)), a + (v ? 0 : u(r, f, m))] })), d ? l.push({ op: "bcurveTo", data: [n + b + (e - b) * g + q(), t + a + (c - a) * g + q(), n + b + 2 * (e - b) * g + q(), t + a + 2 * (c - a) * g + q(), e + (v ? 0 : q()), c + (v ? 0 : q())] }) : l.push({ op: "bcurveTo", data: [n + b + (e - b) * g + p(), t + a + (c - a) * g + p(), n + b + 2 * (e - b) * g + p(), t + a + 2 * (c - a) * g + p(), e + (v ? 0 : p()), c + (v ? 0 : p())] }), l } function Z(b, a, e) { var c = []; c.push([b[0][0] + u(a, e), b[0][1] + u(a, e)]); c.push([b[0][0] + u(a, e), b[0][1] + u(a, e)]); for (var f = 1; f < b.length; f++) c.push([b[f][0] + u(a, e), b[f][1] + u(a, e)]), f === b.length - 1 && c.push([b[f][0] + u(a, e), b[f][1] + u(a, e)]); return P(c, null, e) } function P(b, a, e) { var c = b.length, f = []; if (3 < c) { var k = [], d = 1 - e.curveTightness; f.push({op: "move", data: [b[1][0], b[1][1]]}); for (var g = 1; g + 2 < c; g++) { var n = b[g]; k[0] = [n[0], n[1]]; k[1] = [n[0] + (d * b[g + 1][0] - d * b[g - 1][0]) / 6, n[1] + (d * b[g + 1][1] - d * b[g - 1][1]) / 6]; k[2] = [b[g + 1][0] + (d * b[g][0] - d * b[g + 2][0]) / 6, b[g + 1][1] + (d * b[g][1] - d * b[g + 2][1]) / 6]; k[3] = [b[g + 1][0], b[g + 1][1]]; f.push({op: "bcurveTo", data: [k[1][0], k[1][1], k[2][0], k[2][1], k[3][0], k[3][1]]}) } a && 2 === a.length && (b = e.maxRandomnessOffset, f.push({ op: "lineTo", data: [a[0] + u(b, e), a[1] + u(b, e)] })) } else 3 === c ? (f.push({op: "move", data: [b[1][0], b[1][1]]}), f.push({ op: "bcurveTo", data: [b[1][0], b[1][1], b[2][0], b[2][1], b[2][0], b[2][1]] })) : 2 === c && f.push.apply(f, _toConsumableArray(D(b[0][0], b[0][1], b[1][0], b[1][1], e))); return f } function ba(b, a, e, c, f, k, d, g) { var n = [], m = [], r = u(.5, g) - Math.PI / 2; m.push([u(k, g) + a + .9 * c * Math.cos(r - b), u(k, g) + e + .9 * f * Math.sin(r - b)]); for (var h = r; h < 2 * Math.PI + r - .01; h += b) { var t = [u(k, g) + a + c * Math.cos(h), u(k, g) + e + f * Math.sin(h)]; n.push(t); m.push(t) } return m.push([u(k, g) + a + c * Math.cos(r + 2 * Math.PI + .5 * d), u(k, g) + e + f * Math.sin(r + 2 * Math.PI + .5 * d)]), m.push([u(k, g) + a + .98 * c * Math.cos(r + d), u(k, g) + e + .98 * f * Math.sin(r + d)]), m.push([u(k, g) + a + .9 * c * Math.cos(r + .5 * d), u(k, g) + e + .9 * f * Math.sin(r + .5 * d)]), [m, n] } function da(b, a, e, c, f, k, d, g, n) { var m = k + u(.1, n); k = []; for (k.push([u(g, n) + a + .9 * c * Math.cos(m - b), u(g, n) + e + .9 * f * Math.sin(m - b)]); m <= d; m += b) k.push([u(g, n) + a + c * Math.cos(m), u(g, n) + e + f * Math.sin(m)]); return k.push([a + c * Math.cos(d), e + f * Math.sin(d)]), k.push([a + c * Math.cos(d), e + f * Math.sin(d)]), P(k, null, n) } function ta(b, a, e, c, f, d, r, g) { for (var k = [], m = [g.maxRandomnessOffset || 1, (g.maxRandomnessOffset || 1) + .3], h, w = g.disableMultiStroke ? 1 : 2, t = g.preserveVertices, l = 0; l < w; l++) 0 === l ? k.push({op: "move", data: [r[0], r[1]]}) : k.push({ op: "move", data: [r[0] + (t ? 0 : u(m[0], g)), r[1] + (t ? 0 : u(m[0], g))] }), h = t ? [f, d] : [f + u(m[l], g), d + u(m[l], g)], k.push({ op: "bcurveTo", data: [b + u(m[l], g), a + u(m[l], g), e + u(m[l], g), c + u(m[l], g), h[0], h[1]] }); return k } function Q(b, a) { return Math.pow(b[0] - a[0], 2) + Math.pow(b[1] - a[1], 2) } function E(b, a, e) { return [b[0] + (a[0] - b[0]) * e, b[1] + (a[1] - b[1]) * e] } function V(b, a, e, c) { c = c || []; var f = b[a + 0], d = b[a + 1], r = b[a + 2], g = b[a + 3], n = 3 * d[0] - 2 * f[0] - g[0], n = n * n, d = 3 * d[1] - 2 * f[1] - g[1], d = d * d, m = 3 * r[0] - 2 * g[0] - f[0], m = m * m, f = 3 * r[1] - 2 * g[1] - f[1]; (f *= f, n < m && (n = m), d < f && (d = f), n + d) < e ? (e = b[a + 0], c.length ? 1 < (h = c[c.length - 1], l = e, Math.sqrt(Q(h, l))) && c.push(e) : c.push(e), c.push(b[a + 3])) : (h = b[a + 0], n = b[a + 1], l = b[a + 2], b = b[a + 3], a = E(h, n, .5), f = E(n, l, .5), l = E(l, b, .5), n = E(a, f, .5), f = E(f, l, .5), r = E(n, f, .5), V([h, a, n, r], 0, e, c), V([r, f, l, b], 0, e, c)); var h, l; return c } function R(b, a, e, c, f) { f = f || []; for (var d = b[a], r = b[e - 1], g = 0, n = 1, m = a + 1; m < e - 1; ++m) { var h; h = b[m]; var l = d, t = r, p = Q(l, t); 0 === p ? h = Q(h, l) : (p = ((h[0] - l[0]) * (t[0] - l[0]) + (h[1] - l[1]) * (t[1] - l[1])) / p, h = (p = Math.max(0, Math.min(1, p)), Q(h, E(l, t, p)))); h > g && (g = h, n = m) } return Math.sqrt(g) > c ? (R(b, a, n + 1, c, f), R(b, n, e, c, f)) : (f.length || f.push(d), f.push(r)), f } function ga(b) { for (var a = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : .15, e = 2 < arguments.length ? arguments[2] : void 0, c = [], f = (b.length - 1) / 3, d = 0; d < f; d++) V(b, 3 * d, a, c); return e && 0 < e ? R(c, 0, c.length, e) : c } var U = function () { function b(a) { _classCallCheck(this, b); this.helper = a } _createClass(b, [{ key: "fillPolygon", value: function (a, e) { return this._fillPolygon(a, e) } }, { key: "_fillPolygon", value: function (a, e) { var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !1, f = C(a, e); c && (c = this.connectingLines(a, f), f = f.concat(c)); return {type: "fillSketch", ops: this.renderLines(f, e)} } }, { key: "renderLines", value: function (a, e) { var c = [], f = _createForOfIteratorHelper(a), b; try { for (f.s(); !(b = f.n()).done;) { var d = b.value; c.push.apply(c, _toConsumableArray(this.helper.doubleLineOps(d[0][0], d[0][1], d[1][0], d[1][1], e))) } } catch (g) { f.e(g) } finally { f.f() } return c } }, { key: "connectingLines", value: function (a, e) { var c = []; if (1 < e.length) for (var f = 1; f < e.length; f++) { var b = e[f - 1]; 3 > h(b) || (b = [e[f][0], b[1]], 3 < h(b) && (b = this.splitOnIntersections(a, b), c.push.apply(c, _toConsumableArray(b)))) } return c } }, { key: "midPointInPolygon", value: function (a, e) { return p(a, (e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2) } }, { key: "splitOnIntersections", value: function (a, e) { for (var c = Math.max(5, .1 * h(e)), b = [], d = 0; d < a.length; d++) { var r = a[d], g = a[(d + 1) % a.length]; if (B.apply(void 0, [r, g].concat(_toConsumableArray(e))) && (r = l(r, g, e[0], e[1]))) { var g = h([r, e[0]]), n = h([r, e[1]]); g > c && n > c && b.push({point: r, distance: g}) } } if (1 < b.length) { c = b.sort(function (a, c) { return a.distance - c.distance }).map(function (a) { return a.point }); if (p.apply(void 0, [a].concat(_toConsumableArray(e[0]))) || c.shift(), p.apply(void 0, [a].concat(_toConsumableArray(e[1]))) || c.pop(), 1 >= c.length) return this.midPointInPolygon(a, e) ? [e] : []; c = [e[0]].concat(_toConsumableArray(c), [e[1]]); b = []; for (d = 0; d < c.length - 1; d += 2) r = [c[d], c[d + 1]], this.midPointInPolygon(a, r) && b.push(r); return b } return this.midPointInPolygon(a, e) ? [e] : [] } }]); return b }(), na = function (b) { function a() { _classCallCheck(this, a); return e.apply(this, arguments) } _inherits(a, b); var e = _createSuper(a); _createClass(a, [{ key: "fillPolygon", value: function (a, e) { return this._fillPolygon(a, e, !0) } }]); return a }(U), oa = function (b) { function a() { _classCallCheck(this, a); return e.apply(this, arguments) } _inherits(a, b); var e = _createSuper(a); _createClass(a, [{ key: "fillPolygon", value: function (a, e) { var c = this._fillPolygon(a, e), b = Object.assign({}, e, {hachureAngle: e.hachureAngle + 90}), b = this._fillPolygon(a, b); return c.ops = c.ops.concat(b.ops), c } }]); return a }(U), pa = function () { function b(a) { _classCallCheck(this, b); this.helper = a } _createClass(b, [{ key: "fillPolygon", value: function (a, e) { var c = C(a, e = Object.assign({}, e, {curveStepCount: 4, hachureAngle: 0, roughness: 1})); return this.dotsOnLines(c, e) } }, { key: "dotsOnLines", value: function (a, e) { var c = [], b = e.hachureGap; 0 > b && (b = 4 * e.strokeWidth); var b = Math.max(b, .1), d = e.fillWeight; 0 > d && (d = e.strokeWidth / 2); var r = b / 4, g = _createForOfIteratorHelper(a), n; try { for (g.s(); !(n = g.n()).done;) for (var m = n.value, l = h(m), w = Math.ceil(l / b) - 1, t = l - w * b, p = (m[0][0] + m[1][0]) / 2 - b / 4, q = Math.min(m[0][1], m[1][1]), u = 0; u < w; u++) { var v = q + t + u * b, z = this.helper.randOffsetWithRange(p - r, p + r, e), y = this.helper.randOffsetWithRange(v - r, v + r, e), F = this.helper.ellipse(z, y, d, d, e); c.push.apply(c, _toConsumableArray(F.ops)) } } catch (ha) { g.e(ha) } finally { g.f() } return {type: "fillSketch", ops: c} } }]); return b }(), qa = function () { function b(a) { _classCallCheck(this, b); this.helper = a } _createClass(b, [{ key: "fillPolygon", value: function (a, e) { var c = C(a, e); return {type: "fillSketch", ops: this.dashedLine(c, e)} } }, { key: "dashedLine", value: function (a, e) { var c = this, b = 0 > e.dashOffset ? 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap : e.dashOffset, d = 0 > e.dashGap ? 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap : e.dashGap, r = []; return a.forEach(function (a) { var f = h(a), g = Math.floor(f / (b + d)), f = (f + d - g * (b + d)) / 2, k = a[0], l = a[1]; k[0] > l[0] && (k = a[1], l = a[0]); a = Math.atan((l[1] - k[1]) / (l[0] - k[0])); for (l = 0; l < g; l++) { var t = l * (b + d), p = t + b, t = [k[0] + t * Math.cos(a) + f * Math.cos(a), k[1] + t * Math.sin(a) + f * Math.sin(a)], p = [k[0] + p * Math.cos(a) + f * Math.cos(a), k[1] + p * Math.sin(a) + f * Math.sin(a)]; r.push.apply(r, _toConsumableArray(c.helper.doubleLineOps(t[0], t[1], p[0], p[1], e))) } }), r } }]); return b }(), ra = function () { function b(a) { _classCallCheck(this, b); this.helper = a } _createClass(b, [{ key: "fillPolygon", value: function (a, e) { var c = 0 > e.hachureGap ? 4 * e.strokeWidth : e.hachureGap, b = 0 > e.zigzagOffset ? c : e.zigzagOffset, c = C(a, e = Object.assign({}, e, {hachureGap: c + b})); return {type: "fillSketch", ops: this.zigzagLines(c, b, e)} } }, { key: "zigzagLines", value: function (a, e, c) { var b = this, d = []; return a.forEach(function (a) { var f = h(a), f = Math.round(f / (2 * e)), k = a[0], m = a[1]; k[0] > m[0] && (k = a[1], m = a[0]); a = Math.atan((m[1] - k[1]) / (m[0] - k[0])); for (m = 0; m < f; m++) { var l = 2 * m * e, r = 2 * (m + 1) * e, t = Math.sqrt(2 * Math.pow(e, 2)), l = [k[0] + l * Math.cos(a), k[1] + l * Math.sin(a)], r = [k[0] + r * Math.cos(a), k[1] + r * Math.sin(a)], t = [l[0] + t * Math.cos(a + Math.PI / 4), l[1] + t * Math.sin(a + Math.PI / 4)]; d.push.apply(d, _toConsumableArray(b.helper.doubleLineOps(l[0], l[1], t[0], t[1], c)).concat(_toConsumableArray(b.helper.doubleLineOps(t[0], t[1], r[0], r[1], c)))) } }), d } }]); return b }(), A = {}, sa = function () { function b(a) { _classCallCheck(this, b); this.seed = a } _createClass(b, [{ key: "next", value: function () { return this.seed ? (Math.pow(2, 31) - 1 & (this.seed = Math.imul(48271, this.seed))) / Math.pow(2, 31) : Math.random() } }]); return b }(), K = { A: 7, a: 7, C: 6, c: 6, H: 1, h: 1, L: 2, l: 2, M: 2, m: 2, Q: 4, q: 4, S: 4, s: 4, T: 2, t: 2, V: 1, v: 1, Z: 0, z: 0 }, ma = { randOffset: function (b, a) { return u(b, a) }, randOffsetWithRange: function (b, a, e) { return O(b, a, e) }, ellipse: function (b, a, e, c, d) { e = aa(e, c, d); return T(b, a, d, e).opset }, doubleLineOps: function (b, a, e, c, d) { return D(b, a, e, c, d, !0) } }, S = function () { function b(a) { _classCallCheck(this, b); this.defaultOptions = { maxRandomnessOffset: 2, roughness: 1, bowing: 1, stroke: "#000", strokeWidth: 1, curveTightness: 0, curveFitting: .95, curveStepCount: 9, fillStyle: "hachure", fillWeight: -1, hachureAngle: -41, hachureGap: -1, dashOffset: -1, dashGap: -1, zigzagOffset: -1, seed: 0, combineNestedSvgPaths: !1, disableMultiStroke: !1, disableMultiStrokeFill: !1, preserveVertices: !1 }; this.config = a || {}; this.config.options && (this.defaultOptions = this._o(this.config.options)) } _createClass(b, [{ key: "_o", value: function (a) { return a ? Object.assign({}, this.defaultOptions, a) : this.defaultOptions } }, { key: "_d", value: function (a, e, c) { return {shape: a, sets: e || [], options: c || this.defaultOptions} } }, { key: "line", value: function (a, e, c, b, d) { d = this._o(d); return this._d("line", [{type: "path", ops: D(a, e, c, b, d)}], d) } }, { key: "rectangle", value: function (a, e, c, b, d) { d = this._o(d); var f = [], g; g = N([[a, e], [a + c, e], [a + c, e + b], [a, e + b]], !0, d); d.fill && (a = [[a, e], [a + c, e], [a + c, e + b], [a, e + b]], "solid" === d.fillStyle ? f.push(J(a, d)) : f.push(G(a, d))); return "none" !== d.stroke && f.push(g), this._d("rectangle", f, d) } }, { key: "ellipse", value: function (a, e, c, b, d) { d = this._o(d); var f = []; b = aa(c, b, d); c = T(a, e, d, b); d.fill && ("solid" === d.fillStyle ? (a = T(a, e, d, b).opset, a.type = "fillPath", f.push(a)) : f.push(G(c.estimatedPoints, d))); return "none" !== d.stroke && f.push(c.opset), this._d("ellipse", f, d) } }, { key: "circle", value: function (a, e, c, b) { a = this.ellipse(a, e, c, c, b); return a.shape = "circle", a } }, { key: "linearPath", value: function (a, e) { var c = this._o(e); return this._d("linearPath", [N(a, !1, c)], c) } }, { key: "arc", value: function (a, e, c, b, d, h) { var f = 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, k = this._o(7 < arguments.length ? arguments[7] : void 0), m = [], l = ca(a, e, c, b, d, h, f, !0, k); f && k.fill && ("solid" === k.fillStyle ? (f = ca(a, e, c, b, d, h, !0, !1, k), f.type = "fillPath", m.push(f)) : m.push(function (a, c, e, b, d, f, g) { e = Math.abs(e / 2); b = Math.abs(b / 2); e += u(.01 * e, g); for (b += u(.01 * b, g); 0 > d;) d += 2 * Math.PI, f += 2 * Math.PI; f - d > 2 * Math.PI && (d = 0, f = 2 * Math.PI); for (var k = (f - d) / g.curveStepCount, m = []; d <= f; d += k) m.push([a + e * Math.cos(d), c + b * Math.sin(d)]); return m.push([a + e * Math.cos(f), c + b * Math.sin(f)]), m.push([a, c]), G(m, g) }(a, e, c, b, d, h, k))); return "none" !== k.stroke && m.push(l), this._d("arc", m, k) } }, { key: "curve", value: function (a, e) { var c = this._o(e), b = [], d = la(a, c); if (c.fill && "none" !== c.fill && 3 <= a.length) { var h = ga(function (a) { var c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0, e = a.length; if (3 > e) throw Error("A curve must have at least three points."); var b = []; if (3 === e) b.push(_toConsumableArray(a[0]), _toConsumableArray(a[1]), _toConsumableArray(a[2]), _toConsumableArray(a[2])); else { e = []; e.push(a[0], a[0]); for (var d = 1; d < a.length; d++) e.push(a[d]), d === a.length - 1 && e.push(a[d]); d = []; c = 1 - c; b.push(_toConsumableArray(e[0])); for (var f = 1; f + 2 < e.length; f++) { var g = e[f]; d[0] = [g[0], g[1]]; d[1] = [g[0] + (c * e[f + 1][0] - c * e[f - 1][0]) / 6, g[1] + (c * e[f + 1][1] - c * e[f - 1][1]) / 6]; d[2] = [e[f + 1][0] + (c * e[f][0] - c * e[f + 2][0]) / 6, e[f + 1][1] + (c * e[f][1] - c * e[f + 2][1]) / 6]; d[3] = [e[f + 1][0], e[f + 1][1]]; b.push(d[1], d[2], d[3]) } } return b }(a), 10, (1 + c.roughness) / 2); "solid" === c.fillStyle ? b.push(J(h, c)) : b.push(G(h, c)) } return "none" !== c.stroke && b.push(d), this._d("curve", b, c) } }, { key: "polygon", value: function (a, e) { var c = this._o(e), b = [], d = N(a, !0, c); return c.fill && ("solid" === c.fillStyle ? b.push(J(a, c)) : b.push(G(a, c))), "none" !== c.stroke && b.push(d), this._d("polygon", b, c) } }, { key: "path", value: function (a, e) { var c = this._o(e), b = []; if (!a) return this._d("path", b, c); a = (a || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " "); var d = c.fill && "transparent" !== c.fill && "none" !== c.fill, h = "none" !== c.stroke, g = !!(c.simplification && 1 > c.simplification), l = function (a, c, e) { var b = X(W(H(a))), d = [], f = []; a = [0, 0]; var g = [], k = function () { var a; 4 <= g.length && (a = f).push.apply(a, _toConsumableArray(ga(g, c))); g = [] }, h = function () { k(); f.length && (d.push(f), f = []) }, b = _createForOfIteratorHelper(b), l; try { for (b.s(); !(l = b.n()).done;) { var m = l.value, n = m.data; switch (m.key) { case "M": h(); a = [n[0], n[1]]; f.push(a); break; case "L": k(); f.push([n[0], n[1]]); break; case "C": if (!g.length) { var r = f.length ? f[f.length - 1] : a; g.push([r[0], r[1]]) } g.push([n[0], n[1]]); g.push([n[2], n[3]]); g.push([n[4], n[5]]); break; case "Z": k(), f.push([a[0], a[1]]) } } } catch (ja) { b.e(ja) } finally { b.f() } if (h(), !e) return d; l = []; for (m = 0; m < d.length; m++) n = d[m], n = R(n, 0, n.length, e), n.length && l.push(n); return l }(a, 1, g ? 4 - 4 * c.simplification : (1 + c.roughness) / 2); if (d) if (c.combineNestedSvgPaths) { var m = []; l.forEach(function (a) { return m.push.apply(m, _toConsumableArray(a)) }); "solid" === c.fillStyle ? b.push(J(m, c)) : b.push(G(m, c)) } else l.forEach(function (a) { "solid" === c.fillStyle ? b.push(J(a, c)) : b.push(G(a, c)) }); return h && (g ? l.forEach(function (a) { b.push(N(a, !1, c)) }) : b.push(function (a, c) { var e = X(W(H(a))), b = [], d = [0, 0], f = [0, 0], e = _createForOfIteratorHelper(e), g; try { for (e.s(); !(g = e.n()).done;) { var k = g.value, h = k.data; switch (k.key) { case "M": if ("break" === function () { var a = 1 * (c.maxRandomnessOffset || 0), e = c.preserveVertices; b.push({ op: "move", data: h.map(function (b) { return b + (e ? 0 : u(a, c)) }) }); f = [h[0], h[1]]; d = [h[0], h[1]]; return "break" }()) break; case "L": b.push.apply(b, _toConsumableArray(D(f[0], f[1], h[0], h[1], c))); f = [h[0], h[1]]; break; case "C": var l = _slicedToArray(h, 6), m = l[4], n = l[5]; b.push.apply(b, _toConsumableArray(ta(l[0], l[1], l[2], l[3], m, n, f, c))); f = [m, n]; break; case "Z": b.push.apply(b, _toConsumableArray(D(f[0], f[1], d[0], d[1], c))), f = [d[0], d[1]] } } } catch (ia) { e.e(ia) } finally { e.f() } return {type: "path", ops: b} }(a, c))), this._d("path", b, c) } }, { key: "opsToPath", value: function (a, e) { var c = "", b = _createForOfIteratorHelper(a.ops), d; try { for (b.s(); !(d = b.n()).done;) { var h = d.value, g = "number" == typeof e && 0 <= e ? h.data.map(function (a) { return +a.toFixed(e) }) : h.data; switch (h.op) { case "move": c += "M".concat(g[0], " ").concat(g[1], " "); break; case "bcurveTo": c += "C".concat(g[0], " ").concat(g[1], ", ").concat(g[2], " ").concat(g[3], ", ").concat(g[4], " ").concat(g[5], " "); break; case "lineTo": c += "L".concat(g[0], " ").concat(g[1], " ") } } } catch (n) { b.e(n) } finally { b.f() } return c.trim() } }, { key: "toPaths", value: function (a) { var e = a.options || this.defaultOptions, c = []; a = _createForOfIteratorHelper(a.sets || []); var b; try { for (a.s(); !(b = a.n()).done;) { var d = b.value, h = null; switch (d.type) { case "path": h = { d: this.opsToPath(d), stroke: e.stroke, strokeWidth: e.strokeWidth, fill: "none" }; break; case "fillPath": h = {d: this.opsToPath(d), stroke: "none", strokeWidth: 0, fill: e.fill || "none"}; break; case "fillSketch": h = this.fillSketch(d, e) } h && c.push(h) } } catch (g) { a.e(g) } finally { a.f() } return c } }, { key: "fillSketch", value: function (a, e) { var c = e.fillWeight; return 0 > c && (c = e.strokeWidth / 2), { d: this.opsToPath(a), stroke: e.fill || "none", strokeWidth: c, fill: "none" } } }], [{ key: "newSeed", value: function () { return Math.floor(Math.random() * Math.pow(2, 31)) } }]); return b }(), ua = function () { function b(a, e) { _classCallCheck(this, b); this.canvas = a; this.ctx = this.canvas.getContext("2d"); this.gen = new S(e) } _createClass(b, [{ key: "draw", value: function (a) { var e = a.sets || [], c = a.options || this.getDefaultOptions(), b = this.ctx, e = _createForOfIteratorHelper(e), d; try { for (e.s(); !(d = e.n()).done;) { var h = d.value; switch (h.type) { case "path": b.save(); b.strokeStyle = "none" === c.stroke ? "transparent" : c.stroke; b.lineWidth = c.strokeWidth; c.strokeLineDash && b.setLineDash(c.strokeLineDash); c.strokeLineDashOffset && (b.lineDashOffset = c.strokeLineDashOffset); this._drawToContext(b, h); b.restore(); break; case "fillPath": b.save(); b.fillStyle = c.fill || ""; this._drawToContext(b, h, "curve" === a.shape || "polygon" === a.shape ? "evenodd" : "nonzero"); b.restore(); break; case "fillSketch": this.fillSketch(b, h, c) } } } catch (g) { e.e(g) } finally { e.f() } } }, { key: "fillSketch", value: function (a, e, c) { var b = c.fillWeight; 0 > b && (b = c.strokeWidth / 2); a.save(); c.fillLineDash && a.setLineDash(c.fillLineDash); c.fillLineDashOffset && (a.lineDashOffset = c.fillLineDashOffset); a.strokeStyle = c.fill || ""; a.lineWidth = b; this._drawToContext(a, e); a.restore() } }, { key: "_drawToContext", value: function (a, e) { var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "nonzero"; a.beginPath(); var b = _createForOfIteratorHelper(e.ops), d; try { for (b.s(); !(d = b.n()).done;) { var h = d.value, g = h.data; switch (h.op) { case "move": a.moveTo(g[0], g[1]); break; case "bcurveTo": a.bezierCurveTo(g[0], g[1], g[2], g[3], g[4], g[5]); break; case "lineTo": a.lineTo(g[0], g[1]) } } } catch (n) { b.e(n) } finally { b.f() } "fillPath" === e.type ? a.fill(c) : a.stroke() } }, { key: "getDefaultOptions", value: function () { return this.gen.defaultOptions } }, { key: "line", value: function (a, b, c, d, k) { a = this.gen.line(a, b, c, d, k); return this.draw(a), a } }, { key: "rectangle", value: function (a, b, c, d, k) { a = this.gen.rectangle(a, b, c, d, k); return this.draw(a), a } }, { key: "ellipse", value: function (a, b, c, d, k) { a = this.gen.ellipse(a, b, c, d, k); return this.draw(a), a } }, { key: "circle", value: function (a, b, c, d) { a = this.gen.circle(a, b, c, d); return this.draw(a), a } }, { key: "linearPath", value: function (a, b) { var c = this.gen.linearPath(a, b); return this.draw(c), c } }, { key: "polygon", value: function (a, b) { var c = this.gen.polygon(a, b); return this.draw(c), c } }, { key: "arc", value: function (a, b, c, d, k, h) { var e = this.gen.arc(a, b, c, d, k, h, 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, 7 < arguments.length ? arguments[7] : void 0); return this.draw(e), e } }, { key: "curve", value: function (a, b) { var c = this.gen.curve(a, b); return this.draw(c), c } }, { key: "path", value: function (a, b) { var c = this.gen.path(a, b); return this.draw(c), c } }, { key: "generator", get: function () { return this.gen } }]); return b }(), va = function () { function b(a, e) { _classCallCheck(this, b); this.svg = a; this.gen = new S(e) } _createClass(b, [{ key: "draw", value: function (a) { var b = a.sets || [], c = a.options || this.getDefaultOptions(), d = this.svg.ownerDocument || window.document, k = d.createElementNS("http://www.w3.org/2000/svg", "g"), h = a.options.fixedDecimalPlaceDigits, b = _createForOfIteratorHelper(b), g; try { for (b.s(); !(g = b.n()).done;) { var l = g.value, m = null; switch (l.type) { case "path": m = d.createElementNS("http://www.w3.org/2000/svg", "path"); m.setAttribute("d", this.opsToPath(l, h)); m.setAttribute("stroke", c.stroke); m.setAttribute("stroke-width", c.strokeWidth + ""); m.setAttribute("fill", "none"); c.strokeLineDash && m.setAttribute("stroke-dasharray", c.strokeLineDash.join(" ").trim()); c.strokeLineDashOffset && m.setAttribute("stroke-dashoffset", "".concat(c.strokeLineDashOffset)); break; case "fillPath": m = d.createElementNS("http://www.w3.org/2000/svg", "path"); m.setAttribute("d", this.opsToPath(l, h)); m.setAttribute("stroke", "none"); m.setAttribute("stroke-width", "0"); m.setAttribute("fill", c.fill || ""); "curve" !== a.shape && "polygon" !== a.shape || m.setAttribute("fill-rule", "evenodd"); break; case "fillSketch": m = this.fillSketch(d, l, c) } m && k.appendChild(m) } } catch (x) { b.e(x) } finally { b.f() } return k } }, { key: "fillSketch", value: function (a, b, c) { var e = c.fillWeight; 0 > e && (e = c.strokeWidth / 2); a = a.createElementNS("http://www.w3.org/2000/svg", "path"); return a.setAttribute("d", this.opsToPath(b, c.fixedDecimalPlaceDigits)), a.setAttribute("stroke", c.fill || ""), a.setAttribute("stroke-width", e + ""), a.setAttribute("fill", "none"), c.fillLineDash && a.setAttribute("stroke-dasharray", c.fillLineDash.join(" ").trim()), c.fillLineDashOffset && a.setAttribute("stroke-dashoffset", "".concat(c.fillLineDashOffset)), a } }, { key: "getDefaultOptions", value: function () { return this.gen.defaultOptions } }, { key: "opsToPath", value: function (a, b) { return this.gen.opsToPath(a, b) } }, { key: "line", value: function (a, b, c, d, h) { a = this.gen.line(a, b, c, d, h); return this.draw(a) } }, { key: "rectangle", value: function (a, b, c, d, h) { a = this.gen.rectangle(a, b, c, d, h); return this.draw(a) } }, { key: "ellipse", value: function (a, b, c, d, h) { a = this.gen.ellipse(a, b, c, d, h); return this.draw(a) } }, { key: "circle", value: function (a, b, c, d) { a = this.gen.circle(a, b, c, d); return this.draw(a) } }, { key: "linearPath", value: function (a, b) { var c = this.gen.linearPath(a, b); return this.draw(c) } }, { key: "polygon", value: function (a, b) { var c = this.gen.polygon(a, b); return this.draw(c) } }, { key: "arc", value: function (a, b, c, d, h, l) { var e = this.gen.arc(a, b, c, d, h, l, 6 < arguments.length && void 0 !== arguments[6] ? arguments[6] : !1, 7 < arguments.length ? arguments[7] : void 0); return this.draw(e) } }, { key: "curve", value: function (a, b) { var c = this.gen.curve(a, b); return this.draw(c) } }, { key: "path", value: function (a, b) { var c = this.gen.path(a, b); return this.draw(c) } }, { key: "generator", get: function () { return this.gen } }]); return b }(); return { canvas: function (b, a) { return new ua(b, a) }, svg: function (b, a) { return new va(b, a) }, generator: function (b) { return new S(b) }, newSeed: function () { return S.newSeed() } } }(); (() => { "use strict"; var t = {}; function e(t, e, n, r = (t => t)) { return t * r(.5 - e * (.5 - n)) } function n(t, e) { return [t[0] + e[0], t[1] + e[1]] } function r(t, e) { return [t[0] - e[0], t[1] - e[1]] } function i(t, e) { return [t[0] * e, t[1] * e] } function u(t) { return [t[1], -t[0]] } function o(t, e) { return t[0] * e[0] + t[1] * e[1] } function l(t, e) { return t[0] === e[0] && t[1] === e[1] } function s(t, e) { return function (t) { return t[0] * t[0] + t[1] * t[1] }(r(t, e)) } function c(t) { return function (t, e) { return [t[0] / e, t[1] / e] }(t, function (t) { return Math.hypot(t[0], t[1]) }(t)) } function h(t, e) { return Math.hypot(t[1] - e[1], t[0] - e[0]) } function f(t, e, n) { let r = Math.sin(n), i = Math.cos(n), u = t[0] - e[0], o = t[1] - e[1], l = u * r + o * i; return [u * i - o * r + e[0], l + e[1]] } function p(t, e, u) { return n(t, i(r(e, t), u)) } function a(t, e, r) { return n(t, i(e, r)) } t.g = function () { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")() } catch (t) { if ("object" == typeof window) return window } }(); var {min: g, PI: v} = Math, d = v + 1e-4; function M(t, v = {}) { return function (t, l = {}) { let { size: h = 16, smoothing: v = .5, thinning: M = .5, simulatePressure: m = !0, easing: y = (t => t), start: w = {}, end: P = {}, last: F = !1 } = l, {cap: b = !0, easing: x = (t => t * (2 - t))} = w, { cap: L = !0, easing: j = (t => --t * t * t + 1) } = P; if (0 === t.length || h <= 0) return []; let S, k = t[t.length - 1].runningLength, z = !1 === w.taper ? 0 : !0 === w.taper ? Math.max(h, k) : w.taper, A = !1 === P.taper ? 0 : !0 === P.taper ? Math.max(h, k) : P.taper, T = Math.pow(h * v, 2), I = [], Q = [], Z = t.slice(0, 10).reduce(((t, e) => { let n = e.pressure; if (m) { let r = g(1, e.distance / h), i = g(1, 1 - r); n = g(1, t + .275 * r * (i - t)) } return (t + n) / 2 }), t[0].pressure), q = e(h, M, t[t.length - 1].pressure, y), B = t[0].vector, C = t[0].point, D = C, E = C, G = D; for (let l = 0; l < t.length; l++) { let {pressure: c} = t[l], {point: a, vector: v, distance: w, runningLength: P} = t[l]; if (l < t.length - 1 && k - P < 3) continue; if (M) { if (m) { let t = g(1, w / h), e = g(1, 1 - t); c = g(1, Z + .275 * t * (e - Z)) } q = e(h, M, c, y) } else q = h / 2; void 0 === S && (S = q); let F = P < z ? x(P / z) : 1, b = k - P < A ? j((k - P) / A) : 1; if (q = Math.max(.01, q * Math.min(F, b)), l === t.length - 1) { let t = i(u(v), q); I.push(r(a, t)), Q.push(n(a, t)); continue } let L = t[l + 1].vector, H = o(v, L); if (H < 0) { let t = i(u(B), q); for (let e = 1 / 13, i = 0; i <= 1; i += e) E = f(r(a, t), a, d * i), I.push(E), G = f(n(a, t), a, d * -i), Q.push(G); C = E, D = G; continue } let J = i(u(p(L, v, H)), q); E = r(a, J), (l <= 1 || s(C, E) > T) && (I.push(E), C = E), G = n(a, J), (l <= 1 || s(D, G) > T) && (Q.push(G), D = G), Z = c, B = v } let H = t[0].point.slice(0, 2), J = t.length > 1 ? t[t.length - 1].point.slice(0, 2) : n(t[0].point, [1, 1]), K = [], N = []; if (1 === t.length) { if (!z && !A || F) { let t = a(H, c(u(r(H, J))), -(S || q)), e = []; for (let n = 1 / 13, r = n; r <= 1; r += n) e.push(f(t, H, 2 * d * r)); return e } } else { if (!(z || A && 1 === t.length)) if (b) for (let t = 1 / 13, e = t; e <= 1; e += t) { let t = f(Q[0], H, d * e); K.push(t) } else { let t = r(I[0], Q[0]), e = i(t, .5), u = i(t, .51); K.push(r(H, e), r(H, u), n(H, u), n(H, e)) } let e = u(function (t) { return [-t[0], -t[1]] }(t[t.length - 1].vector)); if (A || z && 1 === t.length) N.push(J); else if (L) { let t = a(J, e, q); for (let e = 1 / 29, n = e; n < 1; n += e) N.push(f(t, J, 3 * d * n)) } else N.push(n(J, i(e, q)), n(J, i(e, .99 * q)), r(J, i(e, .99 * q)), r(J, i(e, q))) } return I.concat(N, Q.reverse(), K) }(function (t, e = {}) { var i; let {streamline: u = .5, size: o = 16, last: s = !1} = e; if (0 === t.length) return []; let f = .15 + .85 * (1 - u), a = Array.isArray(t[0]) ? t : t.map((({x: t, y: e, pressure: n = .5}) => [t, e, n])); if (2 === a.length) { let t = a[1]; a = a.slice(0, -1); for (let e = 1; e < 5; e++) a.push(p(a[0], t, e / 4)) } 1 === a.length && (a = [...a, [...n(a[0], [1, 1]), ...a[0].slice(2)]]); let g = [{ point: [a[0][0], a[0][1]], pressure: a[0][2] >= 0 ? a[0][2] : .25, vector: [1, 1], distance: 0, runningLength: 0 }], v = !1, d = 0, M = g[0], m = a.length - 1; for (let t = 1; t < a.length; t++) { let e = s && t === m ? a[t].slice(0, 2) : p(M.point, a[t], f); if (l(M.point, e)) continue; let n = h(e, M.point); if (d += n, t < m && !v) { if (d < o) continue; v = !0 } M = { point: e, pressure: a[t][2] >= 0 ? a[t][2] : .5, vector: c(r(M.point, e)), distance: n, runningLength: d }, g.push(M) } return g[0].vector = (null == (i = g[1]) ? void 0 : i.vector) || [0, 0], g }(t, v), v) } t.g.PerfectFreehand = {}, PerfectFreehand.getStroke = function (t, e) { return M(t, e) }, PerfectFreehand.getSvgPathFromStroke = function (t, e) { let n = M(t, e); const r = n.reduce(((t, [e, n], r, i) => { const [u, o] = i[(r + 1) % i.length]; return t.push(e, n, (e + u) / 2, (n + o) / 2), t }), ["M", ...n[0], "Q"]); return r.push("Z"), r.join(" ") } })(); var Base64 = { _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (a, b) { var c = "", d = 0; for (null != b && b || (a = Base64._utf8_encode(a)); d < a.length;) { var e = a.charCodeAt(d++); b = a.charCodeAt(d++); var f = a.charCodeAt(d++); var g = e >> 2; e = (e & 3) << 4 | b >> 4; var k = (b & 15) << 2 | f >> 6; var l = f & 63; isNaN(b) ? k = l = 64 : isNaN(f) && (l = 64); c = c + this._keyStr.charAt(g) + this._keyStr.charAt(e) + this._keyStr.charAt(k) + this._keyStr.charAt(l) } return c }, decode: function (a, b) { b = null != b ? b : !1; var c = "", d = 0; for (a = a.replace(/[^A-Za-z0-9\+\/=]/g, ""); d < a.length;) { var e = this._keyStr.indexOf(a.charAt(d++)); var f = this._keyStr.indexOf(a.charAt(d++)); var g = this._keyStr.indexOf(a.charAt(d++)); var k = this._keyStr.indexOf(a.charAt(d++)); e = e << 2 | f >> 4; f = (f & 15) << 4 | g >> 2; var l = (g & 3) << 6 | k; c += String.fromCharCode(e); 64 != g && (c += String.fromCharCode(f)); 64 != k && (c += String.fromCharCode(l)) } b || (c = Base64._utf8_decode(c)); return c }, _utf8_encode: function (a) { a = a.replace(/\r\n/g, "\n"); for (var b = "", c = 0; c < a.length; c++) { var d = a.charCodeAt(c); 128 > d ? b += String.fromCharCode(d) : (127 < d && 2048 > d ? b += String.fromCharCode(d >> 6 | 192) : (b += String.fromCharCode(d >> 12 | 224), b += String.fromCharCode(d >> 6 & 63 | 128)), b += String.fromCharCode(d & 63 | 128)) } return b }, _utf8_decode: function (a) { var b = "", c = 0; for (c1 = c2 = 0; c < a.length;) { var d = a.charCodeAt(c); 128 > d ? (b += String.fromCharCode(d), c++) : 191 < d && 224 > d ? (c2 = a.charCodeAt(c + 1), b += String.fromCharCode((d & 31) << 6 | c2 & 63), c += 2) : (c2 = a.charCodeAt(c + 1), c3 = a.charCodeAt(c + 2), b += String.fromCharCode((d & 15) << 12 | (c2 & 63) << 6 | c3 & 63), c += 3) } return b } }; window.urlParams = window.urlParams || {}; window.isLocalStorage = window.isLocalStorage || !1; window.mxLoadSettings = window.mxLoadSettings || "1" != urlParams.configure; window.isSvgBrowser = !0; window.DRAWIO_BASE_URL = window.DRAWIO_BASE_URL || (/.*\.draw\.io$/.test(window.location.hostname) || /.*\.diagrams\.net$/.test(window.location.hostname) ? window.location.protocol + "//" + window.location.hostname : "https://app.diagrams.net"); window.DRAWIO_SERVER_URL = window.DRAWIO_SERVER_URL || ("test.draw.io" == window.location.hostname ? "https://ac.draw.io/" : ""); window.DRAWIO_LIGHTBOX_URL = window.DRAWIO_LIGHTBOX_URL || "https://viewer.diagrams.net"; window.EXPORT_URL = window.EXPORT_URL || "https://convert.diagrams.net/node/export"; window.PLANT_URL = window.PLANT_URL || "https://plant-aws.diagrams.net"; window.DRAW_MATH_URL = window.DRAW_MATH_URL || "math/es5"; window.VSD_CONVERT_URL = window.VSD_CONVERT_URL || "https://convert.diagrams.net/VsdConverter/api/converter"; window.EMF_CONVERT_URL = window.EMF_CONVERT_URL || "https://convert.diagrams.net/emf2png/convertEMF"; window.REALTIME_URL = window.REALTIME_URL || window.DRAWIO_SERVER_URL + "cache"; window.DRAWIO_GITLAB_URL = window.DRAWIO_GITLAB_URL || "https://gitlab.com"; window.DRAWIO_GITLAB_ID = window.DRAWIO_GITLAB_ID || "2b14debc5feeb18ba65358d863ec870e4cc9294b28c3c941cb3014eb4af9a9b4"; window.DRAWIO_GITHUB_URL = window.DRAWIO_GITHUB_URL || "https://github.com"; window.DRAWIO_GITHUB_API_URL = window.DRAWIO_GITHUB_API_URL || "https://api.github.com"; window.DRAWIO_GITHUB_ID = window.DRAWIO_GITHUB_ID || "Iv1.98d62f0431e40543"; window.DRAWIO_DROPBOX_ID = window.DRAWIO_DROPBOX_ID || "jg02tc0onwmhlgm"; window.SAVE_URL = window.SAVE_URL || window.DRAWIO_SERVER_URL + "save"; window.OPEN_URL = window.OPEN_URL || window.DRAWIO_SERVER_URL + "import"; window.PROXY_URL = window.PROXY_URL || window.DRAWIO_SERVER_URL + "proxy"; window.DRAWIO_VIEWER_URL = window.DRAWIO_VIEWER_URL || null; window.NOTIFICATIONS_URL = window.NOTIFICATIONS_URL || window.DRAWIO_SERVER_URL + "notifications"; window.RT_WEBSOCKET_URL = window.RT_WEBSOCKET_URL || "wss://" + ("test.draw.io" == window.location.hostname ? "app.diagrams.net" : window.location.hostname) + "/rt"; window.SHAPES_PATH = window.SHAPES_PATH || "shapes"; window.GRAPH_IMAGE_PATH = window.GRAPH_IMAGE_PATH || "img"; window.ICONSEARCH_PATH = window.ICONSEARCH_PATH || (urlParams.dev && "file:" != window.location.protocol ? "iconSearch" : window.DRAWIO_SERVER_URL + "iconSearch"); window.TEMPLATE_PATH = window.TEMPLATE_PATH || "templates"; window.NEW_DIAGRAM_CATS_PATH = window.NEW_DIAGRAM_CATS_PATH || "newDiagramCats"; window.PLUGINS_BASE_PATH = window.PLUGINS_BASE_PATH || ""; window.ALLOW_CUSTOM_PLUGINS = window.ALLOW_CUSTOM_PLUGINS || !1; window.RESOURCES_PATH = window.RESOURCES_PATH || "resources"; window.RESOURCE_BASE = window.RESOURCE_BASE || RESOURCES_PATH + "/dia"; window.DRAWIO_CONFIG = window.DRAWIO_CONFIG || null; window.mxLoadResources = window.mxLoadResources || !1; window.mxLanguage = window.mxLanguage || function () { var a = urlParams.lang; if (null == a && "undefined" != typeof JSON && isLocalStorage) try { var b = localStorage.getItem(".drawio-config"); null != b && (a = JSON.parse(b).language || null); if (!a && window.mxIsElectron && (a = urlParams.appLang, null != a)) { var c = a.indexOf("-"); 0 <= c && (a = a.substring(0, c)); a = a.toLowerCase() } } catch (d) { isLocalStorage = !1 } return a }(); window.mxLanguageMap = window.mxLanguageMap || { i18n: "", id: "Bahasa Indonesia", ms: "Bahasa Melayu", bs: "Bosanski", bg: "Bulgarian", ca: "Català", cs: "Čeština", da: "Dansk", de: "Deutsch", et: "Eesti", en: "English", es: "Español", eu: "Euskara", fil: "Filipino", fr: "Français", gl: "Galego", it: "Italiano", hu: "Magyar", lt: "Lietuvių", lv: "Latviešu", nl: "Nederlands", no: "Norsk", pl: "Polski", "pt-br": "Português (Brasil)", pt: "Português (Portugal)", ro: "Română", fi: "Suomi", sv: "Svenska", vi: "Tiếng Việt", tr: "Türkçe", el: "Ελληνικά", ru: "Русский", sr: "Српски", uk: "Українська", he: "עברית", ar: "العربية", fa: "فارسی", th: "ไทย", ko: "한국어", ja: "日本語", zh: "简体中文", "zh-tw": "繁體中文" }; "undefined" === typeof window.mxBasePath && (window.mxBasePath = "mxgraph", window.mxImageBasePath = "mxgraph/images"); if (null == window.mxLanguages) { window.mxLanguages = []; for (var lang in mxLanguageMap) "en" != lang && window.mxLanguages.push(lang); if (null == window.mxLanguage && ("test.draw.io" == window.location.hostname || "www.draw.io" == window.location.hostname || "viewer.diagrams.net" == window.location.hostname || "embed.diagrams.net" == window.location.hostname || "app.diagrams.net" == window.location.hostname || "jgraph.github.io" == window.location.hostname) && (lang = navigator.language, null != lang)) { var dash = lang.indexOf("-"); 0 < dash && (lang = lang.substring(0, dash)); 0 <= window.mxLanguages.indexOf(lang) && (window.mxLanguage = lang) } } "1" == urlParams.extAuth && /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent) && (urlParams.gapi = "0", urlParams.noDevice = "1", "1" != urlParams.lightbox && (urlParams.lightbox = "1", urlParams.layers = "1", urlParams.viewerOnlyMsg = "1")); "viewer.diagrams.net" == window.location.hostname && (urlParams.lightbox = "1"); "1" == urlParams.lightbox && (urlParams.chrome = "0"); "1" == urlParams.embedInline && (urlParams.embed = "1", urlParams.ui = "sketch", urlParams.plugins = "0", urlParams.proto = "json", urlParams.prefetchFonts = "1"); function setCurrentXml(a, b) { null != window.parent && null != window.parent.openFile && window.parent.openFile.setData(a, b) } window.uiTheme = window.uiTheme || function () { var a = urlParams.ui; "1" == urlParams.extAuth && (a = "sketch"); if (null == a && isLocalStorage && "undefined" !== typeof JSON && "1" != urlParams.lightbox) try { var b = localStorage.getItem(".drawio-config"); null != b && (a = JSON.parse(b).ui || null) } catch (d) { isLocalStorage = !1 } try { if (null == a && "1" != urlParams.embed && (1 == urlParams.dev || 1 == urlParams.test || "test.draw.io" === window.location.hostname || "www.draw.io" === window.location.hostname || "preprod.diagrams.net" === window.location.hostname || "app.diagrams.net" === window.location.hostname || "jgraph.github.io" === window.location.hostname)) { var c = navigator.userAgent || navigator.vendor || window.opera; if (1024 >= (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) || /android/i.test(c) || /iPad|iPhone|iPod/.test(c) && !window.MSStream || navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints) a = "simple" } } catch (d) { } "sketch" == a && null == urlParams.sketch && "ac.draw.io" === window.location.hostname ? urlParams.sketch = "1" : "1" != urlParams.dark || "" != a && "kennedy" != a || (a = "dark"); return a }(); (function () { if ("undefined" !== typeof JSON && isLocalStorage) try { var a = localStorage.getItem("1" == urlParams.sketch ? ".sketch-config" : ".drawio-config"), b = !0; null != a && (b = JSON.parse(a).showStartScreen); 0 == b && (urlParams.splash = "0") } catch (d) { } a = urlParams["export"]; null != a && (a = decodeURIComponent(a), "http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && (a = "http://" + a), EXPORT_URL = a); a = urlParams.gitlab; null != a && (a = decodeURIComponent(a), "http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && (a = "http://" + a), DRAWIO_GITLAB_URL = a); a = urlParams["gitlab-id"]; null != a && (DRAWIO_GITLAB_ID = a); window.DRAWIO_LOG_URL = window.DRAWIO_LOG_URL || ""; a = window.location.host; if ("test.draw.io" != a) { var c = "diagrams.net"; b = a.length - c.length; c = a.lastIndexOf(c, b); -1 !== c && c === b ? window.DRAWIO_LOG_URL = "https://log.diagrams.net" : (c = "draw.io", b = a.length - c.length, c = a.lastIndexOf(c, b), -1 !== c && c === b && (window.DRAWIO_LOG_URL = "https://log.draw.io")) } })(); if ("1" == urlParams.offline || "1" == urlParams.demo || "1" == urlParams.stealth || "1" == urlParams.local || "1" == urlParams.lockdown) urlParams.picker = "0", urlParams.gapi = "0", urlParams.db = "0", urlParams.od = "0", urlParams.gh = "0", urlParams.gl = "0", urlParams.tr = "0"; "se.diagrams.net" == window.location.hostname && (urlParams.db = "0", urlParams.od = "0", urlParams.gh = "0", urlParams.gl = "0", urlParams.tr = "0", urlParams.plugins = "0", urlParams.mode = "google", urlParams.lockdown = "1", window.DRAWIO_GOOGLE_APP_ID = window.DRAWIO_GOOGLE_APP_ID || "184079235871", window.DRAWIO_GOOGLE_CLIENT_ID = window.DRAWIO_GOOGLE_CLIENT_ID || "184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com"); "trello" == urlParams.mode && (urlParams.tr = "1"); "embed.diagrams.net" == window.location.hostname && (urlParams.embed = "1"); (null == window.location.hash || 1 >= window.location.hash.length) && null != urlParams.open && (window.location.hash = urlParams.open); window.urlParams = window.urlParams || {}; window.DOM_PURIFY_CONFIG = window.DOM_PURIFY_CONFIG || { ADD_TAGS: ["use"], FORBID_TAGS: ["form"], ALLOWED_URI_REGEXP: /^((?!javascript:).)*$/i, ADD_ATTR: ["target", "content"] }; window.MAX_REQUEST_SIZE = window.MAX_REQUEST_SIZE || 10485760; window.MAX_AREA = window.MAX_AREA || 225E6; window.EXPORT_URL = window.EXPORT_URL || "/export"; window.SAVE_URL = window.SAVE_URL || "/save"; window.OPEN_URL = window.OPEN_URL || "/open"; window.RESOURCES_PATH = window.RESOURCES_PATH || "resources"; window.RESOURCE_BASE = window.RESOURCE_BASE || window.RESOURCES_PATH + "/grapheditor"; window.STENCIL_PATH = window.STENCIL_PATH || "stencils"; window.IMAGE_PATH = window.IMAGE_PATH || "images"; window.STYLE_PATH = window.STYLE_PATH || "styles"; window.CSS_PATH = window.CSS_PATH || "styles"; window.OPEN_FORM = window.OPEN_FORM || "open.html"; window.mxBasePath = window.mxBasePath || "mxgraph"; window.mxImageBasePath = window.mxImageBasePath || "mxgraph/images"; window.mxLanguage = window.mxLanguage || urlParams.lang; window.mxLanguages = window.mxLanguages || ["de", "se"]; var mxClient = { VERSION: "22.1.21", IS_IE: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("MSIE"), IS_IE11: null != navigator.userAgent && !!navigator.userAgent.match(/Trident\/7\./), IS_EDGE: null != navigator.userAgent && !!navigator.userAgent.match(/Edge\//), IS_EM: "spellcheck" in document.createElement("textarea") && 8 == document.documentMode, VML_PREFIX: "v", OFFICE_PREFIX: "o", IS_NS: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("Mozilla/") && 0 > navigator.userAgent.indexOf("MSIE") && 0 > navigator.userAgent.indexOf("Edge/"), IS_OP: null != navigator.userAgent && (0 <= navigator.userAgent.indexOf("Opera/") || 0 <= navigator.userAgent.indexOf("OPR/")), IS_OT: null != navigator.userAgent && 0 <= navigator.userAgent.indexOf("Presto/") && 0 > navigator.userAgent.indexOf("Presto/2.4.") && 0 > navigator.userAgent.indexOf("Presto/2.3.") && 0 > navigator.userAgent.indexOf("Presto/2.2.") && 0 > navigator.userAgent.indexOf("Presto/2.1.") && 0 > navigator.userAgent.indexOf("Presto/2.0.") && 0 > navigator.userAgent.indexOf("Presto/1."), IS_SF: /Apple Computer, Inc/.test(navigator.vendor), IS_ANDROID: 0 <= navigator.appVersion.indexOf("Android"), IS_IOS: /iP(hone|od|ad)/.test(navigator.platform) || navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints, IS_WEBVIEW: /((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent), IS_GC: /Google Inc/.test(navigator.vendor), IS_CHROMEAPP: null != window.chrome && null != chrome.app && null != chrome.app.runtime, IS_FF: -1 < navigator.userAgent.toLowerCase().indexOf("firefox"), IS_MT: 0 <= navigator.userAgent.indexOf("Firefox/") && 0 > navigator.userAgent.indexOf("Firefox/1.") && 0 > navigator.userAgent.indexOf("Firefox/2.") || 0 <= navigator.userAgent.indexOf("Iceweasel/") && 0 > navigator.userAgent.indexOf("Iceweasel/1.") && 0 > navigator.userAgent.indexOf("Iceweasel/2.") || 0 <= navigator.userAgent.indexOf("SeaMonkey/") && 0 > navigator.userAgent.indexOf("SeaMonkey/1.") || 0 <= navigator.userAgent.indexOf("Iceape/") && 0 > navigator.userAgent.indexOf("Iceape/1."), IS_SVG: "MICROSOFT INTERNET EXPLORER" != navigator.appName.toUpperCase(), NO_FO: !document.createElementNS || "[object SVGForeignObjectElement]" !== document.createElementNS("http://www.w3.org/2000/svg", "foreignObject").toString() || 0 <= navigator.userAgent.indexOf("Opera/"), IS_WIN: 0 < navigator.appVersion.indexOf("Win"), IS_MAC: 0 < navigator.appVersion.indexOf("Mac"), IS_CHROMEOS: /\bCrOS\b/.test(navigator.appVersion), IS_LINUX: /\bLinux\b/.test(navigator.appVersion), IS_TOUCH: "ontouchstart" in document.documentElement, IS_POINTER: null != window.PointerEvent && !(0 < navigator.appVersion.indexOf("Mac")), IS_LOCAL: 0 > document.location.href.indexOf("http://") && 0 > document.location.href.indexOf("https://"), defaultBundles: [], isBrowserSupported: function () { return mxClient.IS_SVG }, link: function (a, b, c, d) { c = c || document; var e = c.createElement("link"); e.setAttribute("rel", a); e.setAttribute("href", b); e.setAttribute("charset", "UTF-8"); e.setAttribute("type", "text/css"); d && e.setAttribute("id", d); c.getElementsByTagName("head")[0].appendChild(e) }, loadResources: function (a, b) { function c() { 0 == --d && a() } for (var d = mxClient.defaultBundles.length, e = 0; e < mxClient.defaultBundles.length; e++) mxResources.add(mxClient.defaultBundles[e], b, c) }, include: function (a) { document.write('