/*! @license DOMPurify 3.0.3 | (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.3/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; c || (c = function (e, t, n) { return e.apply(t, n); }), i || (i = function (e) { return e; }), a || (a = function (e) { return e; }), s || (s = function (e, t) { return new e(...t); }); const m = b(Array.prototype.forEach), u = 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, r) { var i; (r = null !== (i = r) && void 0 !== i ? i : p), t && t(e, null); let a = o.length; for (; a--; ) { let t = o[a]; if ("string" == typeof t) { const e = r(t); e !== t && (n(o) || (o[a] = e), (t = e)); } e[t] = !0; } return e; } function S(t) { const n = l(null); for (const [o, r] of e(t)) n[o] = r; return n; } function R(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 w = 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", ]), D = 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", ]), L = 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", ]), v = 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", ]), x = 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", ]), k = i(["#text"]), O = 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", ]), I = 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", ]), M = 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", ]), U = i(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), P = a(/\{\{[\w\W]*|[\w\W]*\}\}/gm), F = a(/<%[\w\W]*|[\w\W]*%>/gm), H = a(/\${[\w\W]*}/gm), z = a(/^data-[\-\w.\u00B7-\uFFFF]/), B = a(/^aria-[\-\w]+$/), W = a( /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i, ), G = a(/^(?:\w+script|data):/i), Y = a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), j = a(/^html$/i); var q = Object.freeze({ __proto__: null, MUSTACHE_EXPR: P, ERB_EXPR: F, TMPLIT_EXPR: H, DATA_ATTR: z, ARIA_ATTR: B, IS_ALLOWED_URI: W, IS_SCRIPT_OR_DATA: G, ATTR_WHITESPACE: Y, DOCTYPE_NAME: j, }); const X = () => ("undefined" == typeof window ? null : window), K = 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 V = (function t() { let n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : X(); const o = (e) => t(e); if ( ((o.version = "3.0.3"), (o.removed = []), !n || !n.document || 9 !== n.document.nodeType) ) return (o.isSupported = !1), o; const r = n.document, a = r.currentScript; let { document: l } = n; const { DocumentFragment: c, HTMLTemplateElement: s, Node: _, Element: b, NodeFilter: P, NamedNodeMap: F = n.NamedNodeMap || n.MozNamedAttrMap, HTMLFormElement: H, DOMParser: z, trustedTypes: B, } = n, G = b.prototype, Y = R(G, "cloneNode"), V = R(G, "nextSibling"), $ = R(G, "childNodes"), Z = R(G, "parentNode"); if ("function" == typeof s) { const e = l.createElement("template"); e.content && e.content.ownerDocument && (l = e.content.ownerDocument); } let J, Q = ""; const { implementation: ee, createNodeIterator: te, createDocumentFragment: ne, getElementsByTagName: oe, } = l, { importNode: re } = r; let ie = {}; o.isSupported = "function" == typeof e && "function" == typeof Z && ee && void 0 !== ee.createHTMLDocument; const { MUSTACHE_EXPR: ae, ERB_EXPR: le, TMPLIT_EXPR: ce, DATA_ATTR: se, ARIA_ATTR: me, IS_SCRIPT_OR_DATA: ue, ATTR_WHITESPACE: fe, } = q; let { IS_ALLOWED_URI: pe } = q, de = null; const he = N({}, [...w, ...D, ...L, ...x, ...k]); let ge = null; const Te = N({}, [...O, ...I, ...M, ...U]); let ye = Object.seal( Object.create(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, }, }), ), Ee = null, Ae = null, _e = !0, be = !0, Ne = !1, Se = !0, Re = !1, we = !1, De = !1, Le = !1, ve = !1, xe = !1, Ce = !1, ke = !0, Oe = !1; const Ie = "user-content-"; let Me = !0, Ue = !1, Pe = {}, Fe = null; const He = 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 ze = null; const Be = N({}, ["audio", "video", "img", "source", "image", "track"]); let We = null; const Ge = N({}, [ "alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns", ]), Ye = "http://www.w3.org/1998/Math/MathML", je = "http://www.w3.org/2000/svg", qe = "http://www.w3.org/1999/xhtml"; let Xe = qe, Ke = !1, Ve = null; const $e = N({}, [Ye, je, qe], d); let Ze; const Je = ["application/xhtml+xml", "text/html"], Qe = "text/html"; let et, tt = null; const nt = l.createElement("form"), ot = function (e) { return e instanceof RegExp || e instanceof Function; }, rt = function (e) { if (!tt || tt !== e) { if ( ((e && "object" == typeof e) || (e = {}), (e = S(e)), (Ze = Ze = -1 === Je.indexOf(e.PARSER_MEDIA_TYPE) ? Qe : e.PARSER_MEDIA_TYPE), (et = "application/xhtml+xml" === Ze ? d : p), (de = "ALLOWED_TAGS" in e ? N({}, e.ALLOWED_TAGS, et) : he), (ge = "ALLOWED_ATTR" in e ? N({}, e.ALLOWED_ATTR, et) : Te), (Ve = "ALLOWED_NAMESPACES" in e ? N({}, e.ALLOWED_NAMESPACES, d) : $e), (We = "ADD_URI_SAFE_ATTR" in e ? N(S(Ge), e.ADD_URI_SAFE_ATTR, et) : Ge), (ze = "ADD_DATA_URI_TAGS" in e ? N(S(Be), e.ADD_DATA_URI_TAGS, et) : Be), (Fe = "FORBID_CONTENTS" in e ? N({}, e.FORBID_CONTENTS, et) : He), (Ee = "FORBID_TAGS" in e ? N({}, e.FORBID_TAGS, et) : {}), (Ae = "FORBID_ATTR" in e ? N({}, e.FORBID_ATTR, et) : {}), (Pe = "USE_PROFILES" in e && e.USE_PROFILES), (_e = !1 !== e.ALLOW_ARIA_ATTR), (be = !1 !== e.ALLOW_DATA_ATTR), (Ne = e.ALLOW_UNKNOWN_PROTOCOLS || !1), (Se = !1 !== e.ALLOW_SELF_CLOSE_IN_ATTR), (Re = e.SAFE_FOR_TEMPLATES || !1), (we = e.WHOLE_DOCUMENT || !1), (ve = e.RETURN_DOM || !1), (xe = e.RETURN_DOM_FRAGMENT || !1), (Ce = e.RETURN_TRUSTED_TYPE || !1), (Le = e.FORCE_BODY || !1), (ke = !1 !== e.SANITIZE_DOM), (Oe = e.SANITIZE_NAMED_PROPS || !1), (Me = !1 !== e.KEEP_CONTENT), (Ue = e.IN_PLACE || !1), (pe = e.ALLOWED_URI_REGEXP || W), (Xe = e.NAMESPACE || qe), (ye = e.CUSTOM_ELEMENT_HANDLING || {}), e.CUSTOM_ELEMENT_HANDLING && ot(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (ye.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && ot(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (ye.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof e.CUSTOM_ELEMENT_HANDLING .allowCustomizedBuiltInElements && (ye.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Re && (be = !1), xe && (ve = !0), Pe && ((de = N({}, [...k])), (ge = []), !0 === Pe.html && (N(de, w), N(ge, O)), !0 === Pe.svg && (N(de, D), N(ge, I), N(ge, U)), !0 === Pe.svgFilters && (N(de, L), N(ge, I), N(ge, U)), !0 === Pe.mathMl && (N(de, x), N(ge, M), N(ge, U))), e.ADD_TAGS && (de === he && (de = S(de)), N(de, e.ADD_TAGS, et)), e.ADD_ATTR && (ge === Te && (ge = S(ge)), N(ge, e.ADD_ATTR, et)), e.ADD_URI_SAFE_ATTR && N(We, e.ADD_URI_SAFE_ATTR, et), e.FORBID_CONTENTS && (Fe === He && (Fe = S(Fe)), N(Fe, e.FORBID_CONTENTS, et)), Me && (de["#text"] = !0), we && N(de, ["html", "head", "body"]), de.table && (N(de, ["tbody"]), delete Ee.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.', ); (J = e.TRUSTED_TYPES_POLICY), (Q = J.createHTML("")); } else void 0 === J && (J = K(B, a)), null !== J && "string" == typeof Q && (Q = J.createHTML("")); i && i(e), (tt = e); } }, it = N({}, ["mi", "mo", "mn", "ms", "mtext"]), at = N({}, ["foreignobject", "desc", "title", "annotation-xml"]), lt = N({}, ["title", "style", "font", "a", "script"]), ct = N({}, D); N(ct, L), N(ct, v); const st = N({}, x); N(st, C); const mt = function (e) { let t = Z(e); (t && t.tagName) || (t = { namespaceURI: Xe, tagName: "template" }); const n = p(e.tagName), o = p(t.tagName); return ( !!Ve[e.namespaceURI] && (e.namespaceURI === je ? t.namespaceURI === qe ? "svg" === n : t.namespaceURI === Ye ? "svg" === n && ("annotation-xml" === o || it[o]) : Boolean(ct[n]) : e.namespaceURI === Ye ? t.namespaceURI === qe ? "math" === n : t.namespaceURI === je ? "math" === n && at[o] : Boolean(st[n]) : e.namespaceURI === qe ? !(t.namespaceURI === je && !at[o]) && !(t.namespaceURI === Ye && !it[o]) && !st[n] && (lt[n] || !ct[n]) : !("application/xhtml+xml" !== Ze || !Ve[e.namespaceURI])) ); }, ut = function (e) { f(o.removed, { element: e }); try { e.parentNode.removeChild(e); } catch (t) { e.remove(); } }, ft = 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 && !ge[e])) if (ve || xe) try { ut(t); } catch (e) {} else try { t.setAttribute(e, ""); } catch (e) {} }, pt = function (e) { let t, n; if (Le) e = "" + e; else { const t = h(e, /^[\r\n\t ]+/); n = t && t[0]; } "application/xhtml+xml" === Ze && Xe === qe && (e = '' + e + ""); const o = J ? J.createHTML(e) : e; if (Xe === qe) try { t = new z().parseFromString(o, Ze); } catch (e) {} if (!t || !t.documentElement) { t = ee.createDocument(Xe, "template", null); try { t.documentElement.innerHTML = Ke ? Q : o; } catch (e) {} } const r = t.body || t.documentElement; return ( e && n && r.insertBefore(l.createTextNode(n), r.childNodes[0] || null), Xe === qe ? oe.call(t, we ? "html" : "body")[0] : we ? t.documentElement : r ); }, dt = function (e) { return te.call( e.ownerDocument || e, e, P.SHOW_ELEMENT | P.SHOW_COMMENT | P.SHOW_TEXT, null, !1, ); }, ht = function (e) { return ( e instanceof H && ("string" != typeof e.nodeName || "string" != typeof e.textContent || "function" != typeof e.removeChild || !(e.attributes instanceof F) || "function" != typeof e.removeAttribute || "function" != typeof e.setAttribute || "string" != typeof e.namespaceURI || "function" != typeof e.insertBefore || "function" != typeof e.hasChildNodes) ); }, gt = function (e) { return "object" == typeof _ ? e instanceof _ : e && "object" == typeof e && "number" == typeof e.nodeType && "string" == typeof e.nodeName; }, Tt = function (e, t, n) { ie[e] && m(ie[e], (e) => { e.call(o, t, n, tt); }); }, yt = function (e) { let t; if ((Tt("beforeSanitizeElements", e, null), ht(e))) return ut(e), !0; const n = et(e.nodeName); if ( (Tt("uponSanitizeElement", e, { tagName: n, allowedTags: de }), e.hasChildNodes() && !gt(e.firstElementChild) && (!gt(e.content) || !gt(e.content.firstElementChild)) && E(/<[/\w]/g, e.innerHTML) && E(/<[/\w]/g, e.textContent)) ) return ut(e), !0; if (!de[n] || Ee[n]) { if (!Ee[n] && At(n)) { if (ye.tagNameCheck instanceof RegExp && E(ye.tagNameCheck, n)) return !1; if (ye.tagNameCheck instanceof Function && ye.tagNameCheck(n)) return !1; } if (Me && !Fe[n]) { const t = Z(e) || e.parentNode, n = $(e) || e.childNodes; if (n && t) { for (let o = n.length - 1; o >= 0; --o) t.insertBefore(Y(n[o], !0), V(e)); } } return ut(e), !0; } return e instanceof b && !mt(e) ? (ut(e), !0) : ("noscript" !== n && "noembed" !== n) || !E(/<\/no(script|embed)/i, e.innerHTML) ? (Re && 3 === e.nodeType && ((t = e.textContent), (t = g(t, ae, " ")), (t = g(t, le, " ")), (t = g(t, ce, " ")), e.textContent !== t && (f(o.removed, { element: e.cloneNode() }), (e.textContent = t))), Tt("afterSanitizeElements", e, null), !1) : (ut(e), !0); }, Et = function (e, t, n) { if (ke && ("id" === t || "name" === t) && (n in l || n in nt)) return !1; if (be && !Ae[t] && E(se, t)); else if (_e && E(me, t)); else if (!ge[t] || Ae[t]) { if ( !( (At(e) && ((ye.tagNameCheck instanceof RegExp && E(ye.tagNameCheck, e)) || (ye.tagNameCheck instanceof Function && ye.tagNameCheck(e))) && ((ye.attributeNameCheck instanceof RegExp && E(ye.attributeNameCheck, t)) || (ye.attributeNameCheck instanceof Function && ye.attributeNameCheck(t)))) || ("is" === t && ye.allowCustomizedBuiltInElements && ((ye.tagNameCheck instanceof RegExp && E(ye.tagNameCheck, n)) || (ye.tagNameCheck instanceof Function && ye.tagNameCheck(n)))) ) ) return !1; } else if (We[t]); else if (E(pe, g(n, fe, ""))); else if ( ("src" !== t && "xlink:href" !== t && "href" !== t) || "script" === e || 0 !== T(n, "data:") || !ze[e] ) { if (Ne && !E(ue, g(n, fe, ""))); else if (n) return !1; } else; return !0; }, At = function (e) { return e.indexOf("-") > 0; }, _t = function (e) { let t, n, r, i; Tt("beforeSanitizeAttributes", e, null); const { attributes: a } = e; if (!a) return; const l = { attrName: "", attrValue: "", keepAttr: !0, allowedAttributes: ge, }; for (i = a.length; i--; ) { t = a[i]; const { name: c, namespaceURI: s } = t; if ( ((n = "value" === c ? t.value : y(t.value)), (r = et(c)), (l.attrName = r), (l.attrValue = n), (l.keepAttr = !0), (l.forceKeepAttr = void 0), Tt("uponSanitizeAttribute", e, l), (n = l.attrValue), l.forceKeepAttr) ) continue; if ((ft(c, e), !l.keepAttr)) continue; if (!Se && E(/\/>/i, n)) { ft(c, e); continue; } Re && ((n = g(n, ae, " ")), (n = g(n, le, " ")), (n = g(n, ce, " "))); const m = et(e.nodeName); if (Et(m, r, n)) { if ( (!Oe || ("id" !== r && "name" !== r) || (ft(c, e), (n = Ie + n)), J && "object" == typeof B && "function" == typeof B.getAttributeType) ) if (s); else switch (B.getAttributeType(m, r)) { case "TrustedHTML": n = J.createHTML(n); break; case "TrustedScriptURL": n = J.createScriptURL(n); } try { s ? e.setAttributeNS(s, c, n) : e.setAttribute(c, n), u(o.removed); } catch (e) {} } } Tt("afterSanitizeAttributes", e, null); }, bt = function e(t) { let n; const o = dt(t); for (Tt("beforeSanitizeShadowDOM", t, null); (n = o.nextNode()); ) Tt("uponSanitizeShadowNode", n, null), yt(n) || (n.content instanceof c && e(n.content), _t(n)); Tt("afterSanitizeShadowDOM", t, null); }; return ( (o.sanitize = function (e) { let t, n, i, a, l = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if ( ((Ke = !e), Ke && (e = "\x3c!--\x3e"), "string" != typeof e && !gt(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 ( (De || rt(l), (o.removed = []), "string" == typeof e && (Ue = !1), Ue) ) { if (e.nodeName) { const t = et(e.nodeName); if (!de[t] || Ee[t]) throw A( "root node is forbidden and cannot be sanitized in-place", ); } } else if (e instanceof _) (t = pt("\x3c!----\x3e")), (n = t.ownerDocument.importNode(e, !0)), (1 === n.nodeType && "BODY" === n.nodeName) || "HTML" === n.nodeName ? (t = n) : t.appendChild(n); else { if (!ve && !Re && !we && -1 === e.indexOf("<")) return J && Ce ? J.createHTML(e) : e; if (((t = pt(e)), !t)) return ve ? null : Ce ? Q : ""; } t && Le && ut(t.firstChild); const s = dt(Ue ? e : t); for (; (i = s.nextNode()); ) yt(i) || (i.content instanceof c && bt(i.content), _t(i)); if (Ue) return e; if (ve) { if (xe) for (a = ne.call(t.ownerDocument); t.firstChild; ) a.appendChild(t.firstChild); else a = t; return ( (ge.shadowroot || ge.shadowrootmod) && (a = re.call(r, a, !0)), a ); } let m = we ? t.outerHTML : t.innerHTML; return ( we && de["!doctype"] && t.ownerDocument && t.ownerDocument.doctype && t.ownerDocument.doctype.name && E(j, t.ownerDocument.doctype.name) && (m = "\n" + m), Re && ((m = g(m, ae, " ")), (m = g(m, le, " ")), (m = g(m, ce, " "))), J && Ce ? J.createHTML(m) : m ); }), (o.setConfig = function (e) { rt(e), (De = !0); }), (o.clearConfig = function () { (tt = null), (De = !1); }), (o.isValidAttribute = function (e, t, n) { tt || rt({}); const o = et(e), r = et(t); return Et(o, r, n); }), (o.addHook = function (e, t) { "function" == typeof t && ((ie[e] = ie[e] || []), f(ie[e], t)); }), (o.removeHook = function (e) { if (ie[e]) return u(ie[e]); }), (o.removeHooks = function (e) { ie[e] && (ie[e] = []); }), (o.removeAllHooks = function () { ie = {}; }), o ); })(); return V; }); //# sourceMappingURL=purify.min.js.map