{"version":3,"sources":["jsdelivr-header.js","/npm/rrweb-snapshot@2.0.0-alpha.4/lib/rrweb-snapshot.js"],"names":[],"mappings":"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","file":"/npm/rrweb-snapshot@2.0.0-alpha.4/lib/rrweb-snapshot.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/rrweb-snapshot@2.0.0-alpha.4/lib/rrweb-snapshot.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nexports.NodeType = void 0;\r\n(function (NodeType) {\r\n    NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n    NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n    NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n    NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n    NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n    NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(exports.NodeType || (exports.NodeType = {}));\n\nfunction isElement(n) {\r\n    return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n    var host = n === null || n === void 0 ? void 0 : n.host;\r\n    return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n    return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n    if (cssText.includes(' background-clip: text;') &&\r\n        !cssText.includes(' -webkit-background-clip: text;')) {\r\n        cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n    }\r\n    return cssText;\r\n}\r\nfunction getCssRulesString(s) {\r\n    try {\r\n        var rules = s.rules || s.cssRules;\r\n        return rules\r\n            ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules).map(getCssRuleString).join(''))\r\n            : null;\r\n    }\r\n    catch (error) {\r\n        return null;\r\n    }\r\n}\r\nfunction getCssRuleString(rule) {\r\n    var cssStringified = rule.cssText;\r\n    if (isCSSImportRule(rule)) {\r\n        try {\r\n            cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\r\n        }\r\n        catch (_a) {\r\n        }\r\n    }\r\n    return cssStringified;\r\n}\r\nfunction isCSSImportRule(rule) {\r\n    return 'styleSheet' in rule;\r\n}\r\nvar Mirror = (function () {\r\n    function Mirror() {\r\n        this.idNodeMap = new Map();\r\n        this.nodeMetaMap = new WeakMap();\r\n    }\r\n    Mirror.prototype.getId = function (n) {\r\n        var _a;\r\n        if (!n)\r\n            return -1;\r\n        var id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n        return id !== null && id !== void 0 ? id : -1;\r\n    };\r\n    Mirror.prototype.getNode = function (id) {\r\n        return this.idNodeMap.get(id) || null;\r\n    };\r\n    Mirror.prototype.getIds = function () {\r\n        return Array.from(this.idNodeMap.keys());\r\n    };\r\n    Mirror.prototype.getMeta = function (n) {\r\n        return this.nodeMetaMap.get(n) || null;\r\n    };\r\n    Mirror.prototype.removeNodeFromMap = function (n) {\r\n        var _this = this;\r\n        var id = this.getId(n);\r\n        this.idNodeMap[\"delete\"](id);\r\n        if (n.childNodes) {\r\n            n.childNodes.forEach(function (childNode) {\r\n                return _this.removeNodeFromMap(childNode);\r\n            });\r\n        }\r\n    };\r\n    Mirror.prototype.has = function (id) {\r\n        return this.idNodeMap.has(id);\r\n    };\r\n    Mirror.prototype.hasNode = function (node) {\r\n        return this.nodeMetaMap.has(node);\r\n    };\r\n    Mirror.prototype.add = function (n, meta) {\r\n        var id = meta.id;\r\n        this.idNodeMap.set(id, n);\r\n        this.nodeMetaMap.set(n, meta);\r\n    };\r\n    Mirror.prototype.replace = function (id, n) {\r\n        var oldNode = this.getNode(id);\r\n        if (oldNode) {\r\n            var meta = this.nodeMetaMap.get(oldNode);\r\n            if (meta)\r\n                this.nodeMetaMap.set(n, meta);\r\n        }\r\n        this.idNodeMap.set(id, n);\r\n    };\r\n    Mirror.prototype.reset = function () {\r\n        this.idNodeMap = new Map();\r\n        this.nodeMetaMap = new WeakMap();\r\n    };\r\n    return Mirror;\r\n}());\r\nfunction createMirror() {\r\n    return new Mirror();\r\n}\r\nfunction maskInputValue(_a) {\r\n    var maskInputOptions = _a.maskInputOptions, tagName = _a.tagName, type = _a.type, value = _a.value, maskInputFn = _a.maskInputFn;\r\n    var text = value || '';\r\n    if (maskInputOptions[tagName.toLowerCase()] ||\r\n        maskInputOptions[type]) {\r\n        if (maskInputFn) {\r\n            text = maskInputFn(text);\r\n        }\r\n        else {\r\n            text = '*'.repeat(text.length);\r\n        }\r\n    }\r\n    return text;\r\n}\r\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n    var ctx = canvas.getContext('2d');\r\n    if (!ctx)\r\n        return true;\r\n    var chunkSize = 50;\r\n    for (var x = 0; x < canvas.width; x += chunkSize) {\r\n        for (var y = 0; y < canvas.height; y += chunkSize) {\r\n            var getImageData = ctx.getImageData;\r\n            var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n                ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n                : getImageData;\r\n            var pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n            if (pixelBuffer.some(function (pixel) { return pixel !== 0; }))\r\n                return false;\r\n        }\r\n    }\r\n    return true;\r\n}\n\nvar _id = 1;\r\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nvar IGNORED_NODE = -2;\r\nfunction genId() {\r\n    return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n    if (element instanceof HTMLFormElement) {\r\n        return 'form';\r\n    }\r\n    var processedTagName = element.tagName.toLowerCase().trim();\r\n    if (tagNameRegex.test(processedTagName)) {\r\n        return 'div';\r\n    }\r\n    return processedTagName;\r\n}\r\nfunction stringifyStyleSheet(sheet) {\r\n    return sheet.cssRules\r\n        ? Array.from(sheet.cssRules)\r\n            .map(function (rule) { return rule.cssText || ''; })\r\n            .join('')\r\n        : '';\r\n}\r\nfunction extractOrigin(url) {\r\n    var origin = '';\r\n    if (url.indexOf('//') > -1) {\r\n        origin = url.split('/').slice(0, 3).join('/');\r\n    }\r\n    else {\r\n        origin = url.split('/')[0];\r\n    }\r\n    origin = origin.split('?')[0];\r\n    return origin;\r\n}\r\nvar canvasService;\r\nvar canvasCtx;\r\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\r\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n    return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\r\n        var filePath = path1 || path2 || path3;\r\n        var maybeQuote = quote1 || quote2 || '';\r\n        if (!filePath) {\r\n            return origin;\r\n        }\r\n        if (!RELATIVE_PATH.test(filePath)) {\r\n            return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n        }\r\n        if (DATA_URI.test(filePath)) {\r\n            return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n        }\r\n        if (filePath[0] === '/') {\r\n            return \"url(\".concat(maybeQuote).concat(extractOrigin(href) + filePath).concat(maybeQuote, \")\");\r\n        }\r\n        var stack = href.split('/');\r\n        var parts = filePath.split('/');\r\n        stack.pop();\r\n        for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\r\n            var part = parts_1[_i];\r\n            if (part === '.') {\r\n                continue;\r\n            }\r\n            else if (part === '..') {\r\n                stack.pop();\r\n            }\r\n            else {\r\n                stack.push(part);\r\n            }\r\n        }\r\n        return \"url(\".concat(maybeQuote).concat(stack.join('/')).concat(maybeQuote, \")\");\r\n    });\r\n}\r\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n    if (attributeValue.trim() === '') {\r\n        return attributeValue;\r\n    }\r\n    var pos = 0;\r\n    function collectCharacters(regEx) {\r\n        var chars;\r\n        var match = regEx.exec(attributeValue.substring(pos));\r\n        if (match) {\r\n            chars = match[0];\r\n            pos += chars.length;\r\n            return chars;\r\n        }\r\n        return '';\r\n    }\r\n    var output = [];\r\n    while (true) {\r\n        collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n        if (pos >= attributeValue.length) {\r\n            break;\r\n        }\r\n        var url = collectCharacters(SRCSET_NOT_SPACES);\r\n        if (url.slice(-1) === ',') {\r\n            url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n            output.push(url);\r\n        }\r\n        else {\r\n            var descriptorsStr = '';\r\n            url = absoluteToDoc(doc, url);\r\n            var inParens = false;\r\n            while (true) {\r\n                var c = attributeValue.charAt(pos);\r\n                if (c === '') {\r\n                    output.push((url + descriptorsStr).trim());\r\n                    break;\r\n                }\r\n                else if (!inParens) {\r\n                    if (c === ',') {\r\n                        pos += 1;\r\n                        output.push((url + descriptorsStr).trim());\r\n                        break;\r\n                    }\r\n                    else if (c === '(') {\r\n                        inParens = true;\r\n                    }\r\n                }\r\n                else {\r\n                    if (c === ')') {\r\n                        inParens = false;\r\n                    }\r\n                }\r\n                descriptorsStr += c;\r\n                pos += 1;\r\n            }\r\n        }\r\n    }\r\n    return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n    if (!attributeValue || attributeValue.trim() === '') {\r\n        return attributeValue;\r\n    }\r\n    var a = doc.createElement('a');\r\n    a.href = attributeValue;\r\n    return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n    return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n    var a = document.createElement('a');\r\n    a.href = '';\r\n    return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n    if (name === 'src' ||\r\n        (name === 'href' && value && !(tagName === 'use' && value[0] === '#'))) {\r\n        return absoluteToDoc(doc, value);\r\n    }\r\n    else if (name === 'xlink:href' && value && value[0] !== '#') {\r\n        return absoluteToDoc(doc, value);\r\n    }\r\n    else if (name === 'background' &&\r\n        value &&\r\n        (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n        return absoluteToDoc(doc, value);\r\n    }\r\n    else if (name === 'srcset' && value) {\r\n        return getAbsoluteSrcsetString(doc, value);\r\n    }\r\n    else if (name === 'style' && value) {\r\n        return absoluteToStylesheet(value, getHref());\r\n    }\r\n    else if (tagName === 'object' && name === 'data' && value) {\r\n        return absoluteToDoc(doc, value);\r\n    }\r\n    else {\r\n        return value;\r\n    }\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n    if (typeof blockClass === 'string') {\r\n        if (element.classList.contains(blockClass)) {\r\n            return true;\r\n        }\r\n    }\r\n    else {\r\n        for (var eIndex = element.classList.length; eIndex--;) {\r\n            var className = element.classList[eIndex];\r\n            if (blockClass.test(className)) {\r\n                return true;\r\n            }\r\n        }\r\n    }\r\n    if (blockSelector) {\r\n        return element.matches(blockSelector);\r\n    }\r\n    return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n    if (!node)\r\n        return false;\r\n    if (node.nodeType !== node.ELEMENT_NODE) {\r\n        if (!checkAncestors)\r\n            return false;\r\n        return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n    }\r\n    for (var eIndex = node.classList.length; eIndex--;) {\r\n        var className = node.classList[eIndex];\r\n        if (regex.test(className)) {\r\n            return true;\r\n        }\r\n    }\r\n    if (!checkAncestors)\r\n        return false;\r\n    return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\r\n    var el = node.nodeType === node.ELEMENT_NODE\r\n        ? node\r\n        : node.parentElement;\r\n    if (el === null)\r\n        return false;\r\n    if (typeof maskTextClass === 'string') {\r\n        if (el.classList.contains(maskTextClass))\r\n            return true;\r\n        if (el.closest(\".\".concat(maskTextClass)))\r\n            return true;\r\n    }\r\n    else {\r\n        if (classMatchesRegex(el, maskTextClass, true))\r\n            return true;\r\n    }\r\n    if (maskTextSelector) {\r\n        if (el.matches(maskTextSelector))\r\n            return true;\r\n        if (el.closest(maskTextSelector))\r\n            return true;\r\n    }\r\n    return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n    var win = iframeEl.contentWindow;\r\n    if (!win) {\r\n        return;\r\n    }\r\n    var fired = false;\r\n    var readyState;\r\n    try {\r\n        readyState = win.document.readyState;\r\n    }\r\n    catch (error) {\r\n        return;\r\n    }\r\n    if (readyState !== 'complete') {\r\n        var timer_1 = setTimeout(function () {\r\n            if (!fired) {\r\n                listener();\r\n                fired = true;\r\n            }\r\n        }, iframeLoadTimeout);\r\n        iframeEl.addEventListener('load', function () {\r\n            clearTimeout(timer_1);\r\n            fired = true;\r\n            listener();\r\n        });\r\n        return;\r\n    }\r\n    var blankUrl = 'about:blank';\r\n    if (win.location.href !== blankUrl ||\r\n        iframeEl.src === blankUrl ||\r\n        iframeEl.src === '') {\r\n        setTimeout(listener, 0);\r\n        return iframeEl.addEventListener('load', listener);\r\n    }\r\n    iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n    var fired = false;\r\n    var styleSheetLoaded;\r\n    try {\r\n        styleSheetLoaded = link.sheet;\r\n    }\r\n    catch (error) {\r\n        return;\r\n    }\r\n    if (styleSheetLoaded)\r\n        return;\r\n    var timer = setTimeout(function () {\r\n        if (!fired) {\r\n            listener();\r\n            fired = true;\r\n        }\r\n    }, styleSheetLoadTimeout);\r\n    link.addEventListener('load', function () {\r\n        clearTimeout(timer);\r\n        fired = true;\r\n        listener();\r\n    });\r\n}\r\nfunction serializeNode(n, options) {\r\n    var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c;\r\n    var rootId = getRootId(doc, mirror);\r\n    switch (n.nodeType) {\r\n        case n.DOCUMENT_NODE:\r\n            if (n.compatMode !== 'CSS1Compat') {\r\n                return {\r\n                    type: exports.NodeType.Document,\r\n                    childNodes: [],\r\n                    compatMode: n.compatMode\r\n                };\r\n            }\r\n            else {\r\n                return {\r\n                    type: exports.NodeType.Document,\r\n                    childNodes: []\r\n                };\r\n            }\r\n        case n.DOCUMENT_TYPE_NODE:\r\n            return {\r\n                type: exports.NodeType.DocumentType,\r\n                name: n.name,\r\n                publicId: n.publicId,\r\n                systemId: n.systemId,\r\n                rootId: rootId\r\n            };\r\n        case n.ELEMENT_NODE:\r\n            return serializeElementNode(n, {\r\n                doc: doc,\r\n                blockClass: blockClass,\r\n                blockSelector: blockSelector,\r\n                inlineStylesheet: inlineStylesheet,\r\n                maskInputOptions: maskInputOptions,\r\n                maskInputFn: maskInputFn,\r\n                dataURLOptions: dataURLOptions,\r\n                inlineImages: inlineImages,\r\n                recordCanvas: recordCanvas,\r\n                keepIframeSrcFn: keepIframeSrcFn,\r\n                newlyAddedElement: newlyAddedElement,\r\n                rootId: rootId\r\n            });\r\n        case n.TEXT_NODE:\r\n            return serializeTextNode(n, {\r\n                maskTextClass: maskTextClass,\r\n                maskTextSelector: maskTextSelector,\r\n                maskTextFn: maskTextFn,\r\n                rootId: rootId\r\n            });\r\n        case n.CDATA_SECTION_NODE:\r\n            return {\r\n                type: exports.NodeType.CDATA,\r\n                textContent: '',\r\n                rootId: rootId\r\n            };\r\n        case n.COMMENT_NODE:\r\n            return {\r\n                type: exports.NodeType.Comment,\r\n                textContent: n.textContent || '',\r\n                rootId: rootId\r\n            };\r\n        default:\r\n            return false;\r\n    }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n    if (!mirror.hasNode(doc))\r\n        return undefined;\r\n    var docId = mirror.getId(doc);\r\n    return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n    var _a;\r\n    var maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, maskTextFn = options.maskTextFn, rootId = options.rootId;\r\n    var parentTagName = n.parentNode && n.parentNode.tagName;\r\n    var textContent = n.textContent;\r\n    var isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n    var isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n    if (isStyle && textContent) {\r\n        try {\r\n            if (n.nextSibling || n.previousSibling) {\r\n            }\r\n            else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n                textContent = stringifyStyleSheet(n.parentNode.sheet);\r\n            }\r\n        }\r\n        catch (err) {\r\n            console.warn(\"Cannot get CSS styles from text's parentNode. Error: \".concat(err), n);\r\n        }\r\n        textContent = absoluteToStylesheet(textContent, getHref());\r\n    }\r\n    if (isScript) {\r\n        textContent = 'SCRIPT_PLACEHOLDER';\r\n    }\r\n    if (!isStyle &&\r\n        !isScript &&\r\n        textContent &&\r\n        needMaskingText(n, maskTextClass, maskTextSelector)) {\r\n        textContent = maskTextFn\r\n            ? maskTextFn(textContent)\r\n            : textContent.replace(/[\\S]/g, '*');\r\n    }\r\n    return {\r\n        type: exports.NodeType.Text,\r\n        textContent: textContent || '',\r\n        isStyle: isStyle,\r\n        rootId: rootId\r\n    };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n    var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c, rootId = options.rootId;\r\n    var needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n    var tagName = getValidTagName(n);\r\n    var attributes = {};\r\n    var len = n.attributes.length;\r\n    for (var i = 0; i < len; i++) {\r\n        var attr = n.attributes[i];\r\n        attributes[attr.name] = transformAttribute(doc, tagName, attr.name, attr.value);\r\n    }\r\n    if (tagName === 'link' && inlineStylesheet) {\r\n        var stylesheet = Array.from(doc.styleSheets).find(function (s) {\r\n            return s.href === n.href;\r\n        });\r\n        var cssText = null;\r\n        if (stylesheet) {\r\n            cssText = getCssRulesString(stylesheet);\r\n        }\r\n        if (cssText) {\r\n            delete attributes.rel;\r\n            delete attributes.href;\r\n            attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n        }\r\n    }\r\n    if (tagName === 'style' &&\r\n        n.sheet &&\r\n        !(n.innerText || n.textContent || '').trim().length) {\r\n        var cssText = getCssRulesString(n.sheet);\r\n        if (cssText) {\r\n            attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n        }\r\n    }\r\n    if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n        var value = n.value;\r\n        var checked = n.checked;\r\n        if (attributes.type !== 'radio' &&\r\n            attributes.type !== 'checkbox' &&\r\n            attributes.type !== 'submit' &&\r\n            attributes.type !== 'button' &&\r\n            value) {\r\n            attributes.value = maskInputValue({\r\n                type: attributes.type,\r\n                tagName: tagName,\r\n                value: value,\r\n                maskInputOptions: maskInputOptions,\r\n                maskInputFn: maskInputFn\r\n            });\r\n        }\r\n        else if (checked) {\r\n            attributes.checked = checked;\r\n        }\r\n    }\r\n    if (tagName === 'option') {\r\n        if (n.selected && !maskInputOptions['select']) {\r\n            attributes.selected = true;\r\n        }\r\n        else {\r\n            delete attributes.selected;\r\n        }\r\n    }\r\n    if (tagName === 'canvas' && recordCanvas) {\r\n        if (n.__context === '2d') {\r\n            if (!is2DCanvasBlank(n)) {\r\n                attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n            }\r\n        }\r\n        else if (!('__context' in n)) {\r\n            var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n            var blankCanvas = document.createElement('canvas');\r\n            blankCanvas.width = n.width;\r\n            blankCanvas.height = n.height;\r\n            var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n            if (canvasDataURL !== blankCanvasDataURL) {\r\n                attributes.rr_dataURL = canvasDataURL;\r\n            }\r\n        }\r\n    }\r\n    if (tagName === 'img' && inlineImages) {\r\n        if (!canvasService) {\r\n            canvasService = doc.createElement('canvas');\r\n            canvasCtx = canvasService.getContext('2d');\r\n        }\r\n        var image_1 = n;\r\n        var oldValue_1 = image_1.crossOrigin;\r\n        image_1.crossOrigin = 'anonymous';\r\n        var recordInlineImage = function () {\r\n            try {\r\n                canvasService.width = image_1.naturalWidth;\r\n                canvasService.height = image_1.naturalHeight;\r\n                canvasCtx.drawImage(image_1, 0, 0);\r\n                attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n            }\r\n            catch (err) {\r\n                console.warn(\"Cannot inline img src=\".concat(image_1.currentSrc, \"! Error: \").concat(err));\r\n            }\r\n            oldValue_1\r\n                ? (attributes.crossOrigin = oldValue_1)\r\n                : image_1.removeAttribute('crossorigin');\r\n        };\r\n        if (image_1.complete && image_1.naturalWidth !== 0)\r\n            recordInlineImage();\r\n        else\r\n            image_1.onload = recordInlineImage;\r\n    }\r\n    if (tagName === 'audio' || tagName === 'video') {\r\n        attributes.rr_mediaState = n.paused\r\n            ? 'paused'\r\n            : 'played';\r\n        attributes.rr_mediaCurrentTime = n.currentTime;\r\n    }\r\n    if (!newlyAddedElement) {\r\n        if (n.scrollLeft) {\r\n            attributes.rr_scrollLeft = n.scrollLeft;\r\n        }\r\n        if (n.scrollTop) {\r\n            attributes.rr_scrollTop = n.scrollTop;\r\n        }\r\n    }\r\n    if (needBlock) {\r\n        var _d = n.getBoundingClientRect(), width = _d.width, height = _d.height;\r\n        attributes = {\r\n            \"class\": attributes[\"class\"],\r\n            rr_width: \"\".concat(width, \"px\"),\r\n            rr_height: \"\".concat(height, \"px\")\r\n        };\r\n    }\r\n    if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n        if (!n.contentDocument) {\r\n            attributes.rr_src = attributes.src;\r\n        }\r\n        delete attributes.src;\r\n    }\r\n    return {\r\n        type: exports.NodeType.Element,\r\n        tagName: tagName,\r\n        attributes: attributes,\r\n        childNodes: [],\r\n        isSVG: isSVGElement(n) || undefined,\r\n        needBlock: needBlock,\r\n        rootId: rootId\r\n    };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n    if (maybeAttr === undefined) {\r\n        return '';\r\n    }\r\n    else {\r\n        return maybeAttr.toLowerCase();\r\n    }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n    if (slimDOMOptions.comment && sn.type === exports.NodeType.Comment) {\r\n        return true;\r\n    }\r\n    else if (sn.type === exports.NodeType.Element) {\r\n        if (slimDOMOptions.script &&\r\n            (sn.tagName === 'script' ||\r\n                (sn.tagName === 'link' &&\r\n                    sn.attributes.rel === 'preload' &&\r\n                    sn.attributes.as === 'script') ||\r\n                (sn.tagName === 'link' &&\r\n                    sn.attributes.rel === 'prefetch' &&\r\n                    typeof sn.attributes.href === 'string' &&\r\n                    sn.attributes.href.endsWith('.js')))) {\r\n            return true;\r\n        }\r\n        else if (slimDOMOptions.headFavicon &&\r\n            ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n                (sn.tagName === 'meta' &&\r\n                    (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n                        lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n                        lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n                        lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n                        lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n            return true;\r\n        }\r\n        else if (sn.tagName === 'meta') {\r\n            if (slimDOMOptions.headMetaDescKeywords &&\r\n                lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n                return true;\r\n            }\r\n            else if (slimDOMOptions.headMetaSocial &&\r\n                (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n                    lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n                    lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n                return true;\r\n            }\r\n            else if (slimDOMOptions.headMetaRobots &&\r\n                (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n                    lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n                    lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n                return true;\r\n            }\r\n            else if (slimDOMOptions.headMetaHttpEquiv &&\r\n                sn.attributes['http-equiv'] !== undefined) {\r\n                return true;\r\n            }\r\n            else if (slimDOMOptions.headMetaAuthorship &&\r\n                (lowerIfExists(sn.attributes.name) === 'author' ||\r\n                    lowerIfExists(sn.attributes.name) === 'generator' ||\r\n                    lowerIfExists(sn.attributes.name) === 'framework' ||\r\n                    lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n                    lowerIfExists(sn.attributes.name) === 'progid' ||\r\n                    lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n                    lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n                return true;\r\n            }\r\n            else if (slimDOMOptions.headMetaVerification &&\r\n                (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n                    lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n                    lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n                    lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n                    lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n                    lowerIfExists(sn.attributes.name) === 'verification' ||\r\n                    lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n                return true;\r\n            }\r\n        }\r\n    }\r\n    return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n    var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.inlineStylesheet, inlineStylesheet = _b === void 0 ? true : _b, _c = options.maskInputOptions, maskInputOptions = _c === void 0 ? {} : _c, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, slimDOMOptions = options.slimDOMOptions, _d = options.dataURLOptions, dataURLOptions = _d === void 0 ? {} : _d, _e = options.inlineImages, inlineImages = _e === void 0 ? false : _e, _f = options.recordCanvas, recordCanvas = _f === void 0 ? false : _f, onSerialize = options.onSerialize, onIframeLoad = options.onIframeLoad, _g = options.iframeLoadTimeout, iframeLoadTimeout = _g === void 0 ? 5000 : _g, onStylesheetLoad = options.onStylesheetLoad, _h = options.stylesheetLoadTimeout, stylesheetLoadTimeout = _h === void 0 ? 5000 : _h, _j = options.keepIframeSrcFn, keepIframeSrcFn = _j === void 0 ? function () { return false; } : _j, _k = options.newlyAddedElement, newlyAddedElement = _k === void 0 ? false : _k;\r\n    var _l = options.preserveWhiteSpace, preserveWhiteSpace = _l === void 0 ? true : _l;\r\n    var _serializedNode = serializeNode(n, {\r\n        doc: doc,\r\n        mirror: mirror,\r\n        blockClass: blockClass,\r\n        blockSelector: blockSelector,\r\n        maskTextClass: maskTextClass,\r\n        maskTextSelector: maskTextSelector,\r\n        inlineStylesheet: inlineStylesheet,\r\n        maskInputOptions: maskInputOptions,\r\n        maskTextFn: maskTextFn,\r\n        maskInputFn: maskInputFn,\r\n        dataURLOptions: dataURLOptions,\r\n        inlineImages: inlineImages,\r\n        recordCanvas: recordCanvas,\r\n        keepIframeSrcFn: keepIframeSrcFn,\r\n        newlyAddedElement: newlyAddedElement\r\n    });\r\n    if (!_serializedNode) {\r\n        console.warn(n, 'not serialized');\r\n        return null;\r\n    }\r\n    var id;\r\n    if (mirror.hasNode(n)) {\r\n        id = mirror.getId(n);\r\n    }\r\n    else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n        (!preserveWhiteSpace &&\r\n            _serializedNode.type === exports.NodeType.Text &&\r\n            !_serializedNode.isStyle &&\r\n            !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n        id = IGNORED_NODE;\r\n    }\r\n    else {\r\n        id = genId();\r\n    }\r\n    var serializedNode = Object.assign(_serializedNode, { id: id });\r\n    mirror.add(n, serializedNode);\r\n    if (id === IGNORED_NODE) {\r\n        return null;\r\n    }\r\n    if (onSerialize) {\r\n        onSerialize(n);\r\n    }\r\n    var recordChild = !skipChild;\r\n    if (serializedNode.type === exports.NodeType.Element) {\r\n        recordChild = recordChild && !serializedNode.needBlock;\r\n        delete serializedNode.needBlock;\r\n        var shadowRoot = n.shadowRoot;\r\n        if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n            serializedNode.isShadowHost = true;\r\n    }\r\n    if ((serializedNode.type === exports.NodeType.Document ||\r\n        serializedNode.type === exports.NodeType.Element) &&\r\n        recordChild) {\r\n        if (slimDOMOptions.headWhitespace &&\r\n            serializedNode.type === exports.NodeType.Element &&\r\n            serializedNode.tagName === 'head') {\r\n            preserveWhiteSpace = false;\r\n        }\r\n        var bypassOptions = {\r\n            doc: doc,\r\n            mirror: mirror,\r\n            blockClass: blockClass,\r\n            blockSelector: blockSelector,\r\n            maskTextClass: maskTextClass,\r\n            maskTextSelector: maskTextSelector,\r\n            skipChild: skipChild,\r\n            inlineStylesheet: inlineStylesheet,\r\n            maskInputOptions: maskInputOptions,\r\n            maskTextFn: maskTextFn,\r\n            maskInputFn: maskInputFn,\r\n            slimDOMOptions: slimDOMOptions,\r\n            dataURLOptions: dataURLOptions,\r\n            inlineImages: inlineImages,\r\n            recordCanvas: recordCanvas,\r\n            preserveWhiteSpace: preserveWhiteSpace,\r\n            onSerialize: onSerialize,\r\n            onIframeLoad: onIframeLoad,\r\n            iframeLoadTimeout: iframeLoadTimeout,\r\n            onStylesheetLoad: onStylesheetLoad,\r\n            stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n            keepIframeSrcFn: keepIframeSrcFn\r\n        };\r\n        for (var _i = 0, _m = Array.from(n.childNodes); _i < _m.length; _i++) {\r\n            var childN = _m[_i];\r\n            var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n            if (serializedChildNode) {\r\n                serializedNode.childNodes.push(serializedChildNode);\r\n            }\r\n        }\r\n        if (isElement(n) && n.shadowRoot) {\r\n            for (var _o = 0, _p = Array.from(n.shadowRoot.childNodes); _o < _p.length; _o++) {\r\n                var childN = _p[_o];\r\n                var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n                if (serializedChildNode) {\r\n                    isNativeShadowDom(n.shadowRoot) &&\r\n                        (serializedChildNode.isShadow = true);\r\n                    serializedNode.childNodes.push(serializedChildNode);\r\n                }\r\n            }\r\n        }\r\n    }\r\n    if (n.parentNode &&\r\n        isShadowRoot(n.parentNode) &&\r\n        isNativeShadowDom(n.parentNode)) {\r\n        serializedNode.isShadow = true;\r\n    }\r\n    if (serializedNode.type === exports.NodeType.Element &&\r\n        serializedNode.tagName === 'iframe') {\r\n        onceIframeLoaded(n, function () {\r\n            var iframeDoc = n.contentDocument;\r\n            if (iframeDoc && onIframeLoad) {\r\n                var serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n                    doc: iframeDoc,\r\n                    mirror: mirror,\r\n                    blockClass: blockClass,\r\n                    blockSelector: blockSelector,\r\n                    maskTextClass: maskTextClass,\r\n                    maskTextSelector: maskTextSelector,\r\n                    skipChild: false,\r\n                    inlineStylesheet: inlineStylesheet,\r\n                    maskInputOptions: maskInputOptions,\r\n                    maskTextFn: maskTextFn,\r\n                    maskInputFn: maskInputFn,\r\n                    slimDOMOptions: slimDOMOptions,\r\n                    dataURLOptions: dataURLOptions,\r\n                    inlineImages: inlineImages,\r\n                    recordCanvas: recordCanvas,\r\n                    preserveWhiteSpace: preserveWhiteSpace,\r\n                    onSerialize: onSerialize,\r\n                    onIframeLoad: onIframeLoad,\r\n                    iframeLoadTimeout: iframeLoadTimeout,\r\n                    onStylesheetLoad: onStylesheetLoad,\r\n                    stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n                    keepIframeSrcFn: keepIframeSrcFn\r\n                });\r\n                if (serializedIframeNode) {\r\n                    onIframeLoad(n, serializedIframeNode);\r\n                }\r\n            }\r\n        }, iframeLoadTimeout);\r\n    }\r\n    if (serializedNode.type === exports.NodeType.Element &&\r\n        serializedNode.tagName === 'link' &&\r\n        serializedNode.attributes.rel === 'stylesheet') {\r\n        onceStylesheetLoaded(n, function () {\r\n            if (onStylesheetLoad) {\r\n                var serializedLinkNode = serializeNodeWithId(n, {\r\n                    doc: doc,\r\n                    mirror: mirror,\r\n                    blockClass: blockClass,\r\n                    blockSelector: blockSelector,\r\n                    maskTextClass: maskTextClass,\r\n                    maskTextSelector: maskTextSelector,\r\n                    skipChild: false,\r\n                    inlineStylesheet: inlineStylesheet,\r\n                    maskInputOptions: maskInputOptions,\r\n                    maskTextFn: maskTextFn,\r\n                    maskInputFn: maskInputFn,\r\n                    slimDOMOptions: slimDOMOptions,\r\n                    dataURLOptions: dataURLOptions,\r\n                    inlineImages: inlineImages,\r\n                    recordCanvas: recordCanvas,\r\n                    preserveWhiteSpace: preserveWhiteSpace,\r\n                    onSerialize: onSerialize,\r\n                    onIframeLoad: onIframeLoad,\r\n                    iframeLoadTimeout: iframeLoadTimeout,\r\n                    onStylesheetLoad: onStylesheetLoad,\r\n                    stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n                    keepIframeSrcFn: keepIframeSrcFn\r\n                });\r\n                if (serializedLinkNode) {\r\n                    onStylesheetLoad(n, serializedLinkNode);\r\n                }\r\n            }\r\n        }, stylesheetLoadTimeout);\r\n    }\r\n    return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n    var _a = options || {}, _b = _a.mirror, mirror = _b === void 0 ? new Mirror() : _b, _c = _a.blockClass, blockClass = _c === void 0 ? 'rr-block' : _c, _d = _a.blockSelector, blockSelector = _d === void 0 ? null : _d, _e = _a.maskTextClass, maskTextClass = _e === void 0 ? 'rr-mask' : _e, _f = _a.maskTextSelector, maskTextSelector = _f === void 0 ? null : _f, _g = _a.inlineStylesheet, inlineStylesheet = _g === void 0 ? true : _g, _h = _a.inlineImages, inlineImages = _h === void 0 ? false : _h, _j = _a.recordCanvas, recordCanvas = _j === void 0 ? false : _j, _k = _a.maskAllInputs, maskAllInputs = _k === void 0 ? false : _k, maskTextFn = _a.maskTextFn, maskInputFn = _a.maskInputFn, _l = _a.slimDOM, slimDOM = _l === void 0 ? false : _l, dataURLOptions = _a.dataURLOptions, preserveWhiteSpace = _a.preserveWhiteSpace, onSerialize = _a.onSerialize, onIframeLoad = _a.onIframeLoad, iframeLoadTimeout = _a.iframeLoadTimeout, onStylesheetLoad = _a.onStylesheetLoad, stylesheetLoadTimeout = _a.stylesheetLoadTimeout, _m = _a.keepIframeSrcFn, keepIframeSrcFn = _m === void 0 ? function () { return false; } : _m;\r\n    var maskInputOptions = maskAllInputs === true\r\n        ? {\r\n            color: true,\r\n            date: true,\r\n            'datetime-local': true,\r\n            email: true,\r\n            month: true,\r\n            number: true,\r\n            range: true,\r\n            search: true,\r\n            tel: true,\r\n            text: true,\r\n            time: true,\r\n            url: true,\r\n            week: true,\r\n            textarea: true,\r\n            select: true,\r\n            password: true\r\n        }\r\n        : maskAllInputs === false\r\n            ? {\r\n                password: true\r\n            }\r\n            : maskAllInputs;\r\n    var slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n        ?\r\n            {\r\n                script: true,\r\n                comment: true,\r\n                headFavicon: true,\r\n                headWhitespace: true,\r\n                headMetaDescKeywords: slimDOM === 'all',\r\n                headMetaSocial: true,\r\n                headMetaRobots: true,\r\n                headMetaHttpEquiv: true,\r\n                headMetaAuthorship: true,\r\n                headMetaVerification: true\r\n            }\r\n        : slimDOM === false\r\n            ? {}\r\n            : slimDOM;\r\n    return serializeNodeWithId(n, {\r\n        doc: n,\r\n        mirror: mirror,\r\n        blockClass: blockClass,\r\n        blockSelector: blockSelector,\r\n        maskTextClass: maskTextClass,\r\n        maskTextSelector: maskTextSelector,\r\n        skipChild: false,\r\n        inlineStylesheet: inlineStylesheet,\r\n        maskInputOptions: maskInputOptions,\r\n        maskTextFn: maskTextFn,\r\n        maskInputFn: maskInputFn,\r\n        slimDOMOptions: slimDOMOptions,\r\n        dataURLOptions: dataURLOptions,\r\n        inlineImages: inlineImages,\r\n        recordCanvas: recordCanvas,\r\n        preserveWhiteSpace: preserveWhiteSpace,\r\n        onSerialize: onSerialize,\r\n        onIframeLoad: onIframeLoad,\r\n        iframeLoadTimeout: iframeLoadTimeout,\r\n        onStylesheetLoad: onStylesheetLoad,\r\n        stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n        keepIframeSrcFn: keepIframeSrcFn,\r\n        newlyAddedElement: false\r\n    });\r\n}\r\nfunction visitSnapshot(node, onVisit) {\r\n    function walk(current) {\r\n        onVisit(current);\r\n        if (current.type === exports.NodeType.Document ||\r\n            current.type === exports.NodeType.Element) {\r\n            current.childNodes.forEach(walk);\r\n        }\r\n    }\r\n    walk(node);\r\n}\r\nfunction cleanupSnapshot() {\r\n    _id = 1;\r\n}\n\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options) {\r\n    if (options === void 0) { options = {}; }\r\n    var lineno = 1;\r\n    var column = 1;\r\n    function updatePosition(str) {\r\n        var lines = str.match(/\\n/g);\r\n        if (lines) {\r\n            lineno += lines.length;\r\n        }\r\n        var i = str.lastIndexOf('\\n');\r\n        column = i === -1 ? column + str.length : str.length - i;\r\n    }\r\n    function position() {\r\n        var start = { line: lineno, column: column };\r\n        return function (node) {\r\n            node.position = new Position(start);\r\n            whitespace();\r\n            return node;\r\n        };\r\n    }\r\n    var Position = (function () {\r\n        function Position(start) {\r\n            this.start = start;\r\n            this.end = { line: lineno, column: column };\r\n            this.source = options.source;\r\n        }\r\n        return Position;\r\n    }());\r\n    Position.prototype.content = css;\r\n    var errorsList = [];\r\n    function error(msg) {\r\n        var err = new Error(\"\".concat(options.source || '', \":\").concat(lineno, \":\").concat(column, \": \").concat(msg));\r\n        err.reason = msg;\r\n        err.filename = options.source;\r\n        err.line = lineno;\r\n        err.column = column;\r\n        err.source = css;\r\n        if (options.silent) {\r\n            errorsList.push(err);\r\n        }\r\n        else {\r\n            throw err;\r\n        }\r\n    }\r\n    function stylesheet() {\r\n        var rulesList = rules();\r\n        return {\r\n            type: 'stylesheet',\r\n            stylesheet: {\r\n                source: options.source,\r\n                rules: rulesList,\r\n                parsingErrors: errorsList\r\n            }\r\n        };\r\n    }\r\n    function open() {\r\n        return match(/^{\\s*/);\r\n    }\r\n    function close() {\r\n        return match(/^}/);\r\n    }\r\n    function rules() {\r\n        var node;\r\n        var rules = [];\r\n        whitespace();\r\n        comments(rules);\r\n        while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n            if (node !== false) {\r\n                rules.push(node);\r\n                comments(rules);\r\n            }\r\n        }\r\n        return rules;\r\n    }\r\n    function match(re) {\r\n        var m = re.exec(css);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        var str = m[0];\r\n        updatePosition(str);\r\n        css = css.slice(str.length);\r\n        return m;\r\n    }\r\n    function whitespace() {\r\n        match(/^\\s*/);\r\n    }\r\n    function comments(rules) {\r\n        if (rules === void 0) { rules = []; }\r\n        var c;\r\n        while ((c = comment())) {\r\n            if (c !== false) {\r\n                rules.push(c);\r\n            }\r\n            c = comment();\r\n        }\r\n        return rules;\r\n    }\r\n    function comment() {\r\n        var pos = position();\r\n        if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n            return;\r\n        }\r\n        var i = 2;\r\n        while ('' !== css.charAt(i) &&\r\n            ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n            ++i;\r\n        }\r\n        i += 2;\r\n        if ('' === css.charAt(i - 1)) {\r\n            return error('End of comment missing');\r\n        }\r\n        var str = css.slice(2, i - 2);\r\n        column += 2;\r\n        updatePosition(str);\r\n        css = css.slice(i);\r\n        column += 2;\r\n        return pos({\r\n            type: 'comment',\r\n            comment: str\r\n        });\r\n    }\r\n    function selector() {\r\n        var m = match(/^([^{]+)/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        return trim(m[0])\r\n            .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n            .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\r\n            return m.replace(/,/g, '\\u200C');\r\n        })\r\n            .split(/\\s*(?![^(]*\\)),\\s*/)\r\n            .map(function (s) {\r\n            return s.replace(/\\u200C/g, ',');\r\n        });\r\n    }\r\n    function declaration() {\r\n        var pos = position();\r\n        var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n        if (!propMatch) {\r\n            return;\r\n        }\r\n        var prop = trim(propMatch[0]);\r\n        if (!match(/^:\\s*/)) {\r\n            return error(\"property missing ':'\");\r\n        }\r\n        var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n        var ret = pos({\r\n            type: 'declaration',\r\n            property: prop.replace(commentre, ''),\r\n            value: val ? trim(val[0]).replace(commentre, '') : ''\r\n        });\r\n        match(/^[;\\s]*/);\r\n        return ret;\r\n    }\r\n    function declarations() {\r\n        var decls = [];\r\n        if (!open()) {\r\n            return error(\"missing '{'\");\r\n        }\r\n        comments(decls);\r\n        var decl;\r\n        while ((decl = declaration())) {\r\n            if (decl !== false) {\r\n                decls.push(decl);\r\n                comments(decls);\r\n            }\r\n            decl = declaration();\r\n        }\r\n        if (!close()) {\r\n            return error(\"missing '}'\");\r\n        }\r\n        return decls;\r\n    }\r\n    function keyframe() {\r\n        var m;\r\n        var vals = [];\r\n        var pos = position();\r\n        while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n            vals.push(m[1]);\r\n            match(/^,\\s*/);\r\n        }\r\n        if (!vals.length) {\r\n            return;\r\n        }\r\n        return pos({\r\n            type: 'keyframe',\r\n            values: vals,\r\n            declarations: declarations()\r\n        });\r\n    }\r\n    function atkeyframes() {\r\n        var pos = position();\r\n        var m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        var vendor = m[1];\r\n        m = match(/^([-\\w]+)\\s*/);\r\n        if (!m) {\r\n            return error('@keyframes missing name');\r\n        }\r\n        var name = m[1];\r\n        if (!open()) {\r\n            return error(\"@keyframes missing '{'\");\r\n        }\r\n        var frame;\r\n        var frames = comments();\r\n        while ((frame = keyframe())) {\r\n            frames.push(frame);\r\n            frames = frames.concat(comments());\r\n        }\r\n        if (!close()) {\r\n            return error(\"@keyframes missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'keyframes',\r\n            name: name,\r\n            vendor: vendor,\r\n            keyframes: frames\r\n        });\r\n    }\r\n    function atsupports() {\r\n        var pos = position();\r\n        var m = match(/^@supports *([^{]+)/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        var supports = trim(m[1]);\r\n        if (!open()) {\r\n            return error(\"@supports missing '{'\");\r\n        }\r\n        var style = comments().concat(rules());\r\n        if (!close()) {\r\n            return error(\"@supports missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'supports',\r\n            supports: supports,\r\n            rules: style\r\n        });\r\n    }\r\n    function athost() {\r\n        var pos = position();\r\n        var m = match(/^@host\\s*/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        if (!open()) {\r\n            return error(\"@host missing '{'\");\r\n        }\r\n        var style = comments().concat(rules());\r\n        if (!close()) {\r\n            return error(\"@host missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'host',\r\n            rules: style\r\n        });\r\n    }\r\n    function atmedia() {\r\n        var pos = position();\r\n        var m = match(/^@media *([^{]+)/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        var media = trim(m[1]);\r\n        if (!open()) {\r\n            return error(\"@media missing '{'\");\r\n        }\r\n        var style = comments().concat(rules());\r\n        if (!close()) {\r\n            return error(\"@media missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'media',\r\n            media: media,\r\n            rules: style\r\n        });\r\n    }\r\n    function atcustommedia() {\r\n        var pos = position();\r\n        var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        return pos({\r\n            type: 'custom-media',\r\n            name: trim(m[1]),\r\n            media: trim(m[2])\r\n        });\r\n    }\r\n    function atpage() {\r\n        var pos = position();\r\n        var m = match(/^@page */);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        var sel = selector() || [];\r\n        if (!open()) {\r\n            return error(\"@page missing '{'\");\r\n        }\r\n        var decls = comments();\r\n        var decl;\r\n        while ((decl = declaration())) {\r\n            decls.push(decl);\r\n            decls = decls.concat(comments());\r\n        }\r\n        if (!close()) {\r\n            return error(\"@page missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'page',\r\n            selectors: sel,\r\n            declarations: decls\r\n        });\r\n    }\r\n    function atdocument() {\r\n        var pos = position();\r\n        var m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        var vendor = trim(m[1]);\r\n        var doc = trim(m[2]);\r\n        if (!open()) {\r\n            return error(\"@document missing '{'\");\r\n        }\r\n        var style = comments().concat(rules());\r\n        if (!close()) {\r\n            return error(\"@document missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'document',\r\n            document: doc,\r\n            vendor: vendor,\r\n            rules: style\r\n        });\r\n    }\r\n    function atfontface() {\r\n        var pos = position();\r\n        var m = match(/^@font-face\\s*/);\r\n        if (!m) {\r\n            return;\r\n        }\r\n        if (!open()) {\r\n            return error(\"@font-face missing '{'\");\r\n        }\r\n        var decls = comments();\r\n        var decl;\r\n        while ((decl = declaration())) {\r\n            decls.push(decl);\r\n            decls = decls.concat(comments());\r\n        }\r\n        if (!close()) {\r\n            return error(\"@font-face missing '}'\");\r\n        }\r\n        return pos({\r\n            type: 'font-face',\r\n            declarations: decls\r\n        });\r\n    }\r\n    var atimport = _compileAtrule('import');\r\n    var atcharset = _compileAtrule('charset');\r\n    var atnamespace = _compileAtrule('namespace');\r\n    function _compileAtrule(name) {\r\n        var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n        return function () {\r\n            var pos = position();\r\n            var m = match(re);\r\n            if (!m) {\r\n                return;\r\n            }\r\n            var ret = { type: name };\r\n            ret[name] = m[1].trim();\r\n            return pos(ret);\r\n        };\r\n    }\r\n    function atrule() {\r\n        if (css[0] !== '@') {\r\n            return;\r\n        }\r\n        return (atkeyframes() ||\r\n            atmedia() ||\r\n            atcustommedia() ||\r\n            atsupports() ||\r\n            atimport() ||\r\n            atcharset() ||\r\n            atnamespace() ||\r\n            atdocument() ||\r\n            atpage() ||\r\n            athost() ||\r\n            atfontface());\r\n    }\r\n    function rule() {\r\n        var pos = position();\r\n        var sel = selector();\r\n        if (!sel) {\r\n            return error('selector missing');\r\n        }\r\n        comments();\r\n        return pos({\r\n            type: 'rule',\r\n            selectors: sel,\r\n            declarations: declarations()\r\n        });\r\n    }\r\n    return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n    return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n    var isNode = obj && typeof obj.type === 'string';\r\n    var childParent = isNode ? obj : parent;\r\n    for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\r\n        var k = _a[_i];\r\n        var value = obj[k];\r\n        if (Array.isArray(value)) {\r\n            value.forEach(function (v) {\r\n                addParent(v, childParent);\r\n            });\r\n        }\r\n        else if (value && typeof value === 'object') {\r\n            addParent(value, childParent);\r\n        }\r\n    }\r\n    if (isNode) {\r\n        Object.defineProperty(obj, 'parent', {\r\n            configurable: true,\r\n            writable: true,\r\n            enumerable: false,\r\n            value: parent || null\r\n        });\r\n    }\r\n    return obj;\r\n}\n\nvar tagMap = {\r\n    script: 'noscript',\r\n    altglyph: 'altGlyph',\r\n    altglyphdef: 'altGlyphDef',\r\n    altglyphitem: 'altGlyphItem',\r\n    animatecolor: 'animateColor',\r\n    animatemotion: 'animateMotion',\r\n    animatetransform: 'animateTransform',\r\n    clippath: 'clipPath',\r\n    feblend: 'feBlend',\r\n    fecolormatrix: 'feColorMatrix',\r\n    fecomponenttransfer: 'feComponentTransfer',\r\n    fecomposite: 'feComposite',\r\n    feconvolvematrix: 'feConvolveMatrix',\r\n    fediffuselighting: 'feDiffuseLighting',\r\n    fedisplacementmap: 'feDisplacementMap',\r\n    fedistantlight: 'feDistantLight',\r\n    fedropshadow: 'feDropShadow',\r\n    feflood: 'feFlood',\r\n    fefunca: 'feFuncA',\r\n    fefuncb: 'feFuncB',\r\n    fefuncg: 'feFuncG',\r\n    fefuncr: 'feFuncR',\r\n    fegaussianblur: 'feGaussianBlur',\r\n    feimage: 'feImage',\r\n    femerge: 'feMerge',\r\n    femergenode: 'feMergeNode',\r\n    femorphology: 'feMorphology',\r\n    feoffset: 'feOffset',\r\n    fepointlight: 'fePointLight',\r\n    fespecularlighting: 'feSpecularLighting',\r\n    fespotlight: 'feSpotLight',\r\n    fetile: 'feTile',\r\n    feturbulence: 'feTurbulence',\r\n    foreignobject: 'foreignObject',\r\n    glyphref: 'glyphRef',\r\n    lineargradient: 'linearGradient',\r\n    radialgradient: 'radialGradient'\r\n};\r\nfunction getTagName(n) {\r\n    var tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n    if (tagName === 'link' && n.attributes._cssText) {\r\n        tagName = 'style';\r\n    }\r\n    return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\r\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n    var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n    if (cachedStyle)\r\n        return cachedStyle;\r\n    var ast = parse(cssText, {\r\n        silent: true\r\n    });\r\n    if (!ast.stylesheet) {\r\n        return cssText;\r\n    }\r\n    var selectors = [];\r\n    ast.stylesheet.rules.forEach(function (rule) {\r\n        if ('selectors' in rule) {\r\n            (rule.selectors || []).forEach(function (selector) {\r\n                if (HOVER_SELECTOR.test(selector)) {\r\n                    selectors.push(selector);\r\n                }\r\n            });\r\n        }\r\n    });\r\n    if (selectors.length === 0) {\r\n        return cssText;\r\n    }\r\n    var selectorMatcher = new RegExp(selectors\r\n        .filter(function (selector, index) { return selectors.indexOf(selector) === index; })\r\n        .sort(function (a, b) { return b.length - a.length; })\r\n        .map(function (selector) {\r\n        return escapeRegExp(selector);\r\n    })\r\n        .join('|'), 'g');\r\n    var result = cssText.replace(selectorMatcher, function (selector) {\r\n        var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n        return \"\".concat(selector, \", \").concat(newSelector);\r\n    });\r\n    cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n    return result;\r\n}\r\nfunction createCache() {\r\n    var stylesWithHoverClass = new Map();\r\n    return {\r\n        stylesWithHoverClass: stylesWithHoverClass\r\n    };\r\n}\r\nfunction buildNode(n, options) {\r\n    var doc = options.doc, hackCss = options.hackCss, cache = options.cache;\r\n    switch (n.type) {\r\n        case exports.NodeType.Document:\r\n            return doc.implementation.createDocument(null, '', null);\r\n        case exports.NodeType.DocumentType:\r\n            return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n        case exports.NodeType.Element: {\r\n            var tagName = getTagName(n);\r\n            var node_1;\r\n            if (n.isSVG) {\r\n                node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n            }\r\n            else {\r\n                node_1 = doc.createElement(tagName);\r\n            }\r\n            var specialAttributes = {};\r\n            for (var name_1 in n.attributes) {\r\n                if (!Object.prototype.hasOwnProperty.call(n.attributes, name_1)) {\r\n                    continue;\r\n                }\r\n                var value = n.attributes[name_1];\r\n                if (tagName === 'option' &&\r\n                    name_1 === 'selected' &&\r\n                    value === false) {\r\n                    continue;\r\n                }\r\n                if (value === true)\r\n                    value = '';\r\n                if (name_1.startsWith('rr_')) {\r\n                    specialAttributes[name_1] = value;\r\n                    continue;\r\n                }\r\n                var isTextarea = tagName === 'textarea' && name_1 === 'value';\r\n                var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_cssText';\r\n                if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n                    value = addHoverClass(value, cache);\r\n                }\r\n                if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n                    var child = doc.createTextNode(value);\r\n                    for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\r\n                        var c = _a[_i];\r\n                        if (c.nodeType === node_1.TEXT_NODE) {\r\n                            node_1.removeChild(c);\r\n                        }\r\n                    }\r\n                    node_1.appendChild(child);\r\n                    continue;\r\n                }\r\n                try {\r\n                    if (n.isSVG && name_1 === 'xlink:href') {\r\n                        node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value.toString());\r\n                    }\r\n                    else if (name_1 === 'onload' ||\r\n                        name_1 === 'onclick' ||\r\n                        name_1.substring(0, 7) === 'onmouse') {\r\n                        node_1.setAttribute('_' + name_1, value.toString());\r\n                    }\r\n                    else if (tagName === 'meta' &&\r\n                        n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n                        name_1 === 'content') {\r\n                        node_1.setAttribute('csp-content', value.toString());\r\n                        continue;\r\n                    }\r\n                    else if (tagName === 'link' &&\r\n                        n.attributes.rel === 'preload' &&\r\n                        n.attributes.as === 'script') {\r\n                    }\r\n                    else if (tagName === 'link' &&\r\n                        n.attributes.rel === 'prefetch' &&\r\n                        typeof n.attributes.href === 'string' &&\r\n                        n.attributes.href.endsWith('.js')) {\r\n                    }\r\n                    else if (tagName === 'img' &&\r\n                        n.attributes.srcset &&\r\n                        n.attributes.rr_dataURL) {\r\n                        node_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n                    }\r\n                    else {\r\n                        node_1.setAttribute(name_1, value.toString());\r\n                    }\r\n                }\r\n                catch (error) {\r\n                }\r\n            }\r\n            var _loop_1 = function (name_2) {\r\n                var value = specialAttributes[name_2];\r\n                if (tagName === 'canvas' && name_2 === 'rr_dataURL') {\r\n                    var image_1 = document.createElement('img');\r\n                    image_1.onload = function () {\r\n                        var ctx = node_1.getContext('2d');\r\n                        if (ctx) {\r\n                            ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\r\n                        }\r\n                    };\r\n                    image_1.src = value.toString();\r\n                    if (node_1.RRNodeType)\r\n                        node_1.rr_dataURL = value.toString();\r\n                }\r\n                else if (tagName === 'img' && name_2 === 'rr_dataURL') {\r\n                    var image = node_1;\r\n                    if (!image.currentSrc.startsWith('data:')) {\r\n                        image.setAttribute('rrweb-original-src', n.attributes.src);\r\n                        image.src = value.toString();\r\n                    }\r\n                }\r\n                if (name_2 === 'rr_width') {\r\n                    node_1.style.width = value.toString();\r\n                }\r\n                else if (name_2 === 'rr_height') {\r\n                    node_1.style.height = value.toString();\r\n                }\r\n                else if (name_2 === 'rr_mediaCurrentTime' &&\r\n                    typeof value === 'number') {\r\n                    node_1.currentTime = value;\r\n                }\r\n                else if (name_2 === 'rr_mediaState') {\r\n                    switch (value) {\r\n                        case 'played':\r\n                            node_1\r\n                                .play()[\"catch\"](function (e) { return console.warn('media playback error', e); });\r\n                            break;\r\n                        case 'paused':\r\n                            node_1.pause();\r\n                            break;\r\n                    }\r\n                }\r\n            };\r\n            for (var name_2 in specialAttributes) {\r\n                _loop_1(name_2);\r\n            }\r\n            if (n.isShadowHost) {\r\n                if (!node_1.shadowRoot) {\r\n                    node_1.attachShadow({ mode: 'open' });\r\n                }\r\n                else {\r\n                    while (node_1.shadowRoot.firstChild) {\r\n                        node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\r\n                    }\r\n                }\r\n            }\r\n            return node_1;\r\n        }\r\n        case exports.NodeType.Text:\r\n            return doc.createTextNode(n.isStyle && hackCss\r\n                ? addHoverClass(n.textContent, cache)\r\n                : n.textContent);\r\n        case exports.NodeType.CDATA:\r\n            return doc.createCDATASection(n.textContent);\r\n        case exports.NodeType.Comment:\r\n            return doc.createComment(n.textContent);\r\n        default:\r\n            return null;\r\n    }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n    var doc = options.doc, mirror = options.mirror, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.hackCss, hackCss = _b === void 0 ? true : _b, afterAppend = options.afterAppend, cache = options.cache;\r\n    var node = buildNode(n, { doc: doc, hackCss: hackCss, cache: cache });\r\n    if (!node) {\r\n        return null;\r\n    }\r\n    if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n        mirror.replace(n.rootId, doc);\r\n    }\r\n    if (n.type === exports.NodeType.Document) {\r\n        doc.close();\r\n        doc.open();\r\n        if (n.compatMode === 'BackCompat' &&\r\n            n.childNodes &&\r\n            n.childNodes[0].type !== exports.NodeType.DocumentType) {\r\n            if (n.childNodes[0].type === exports.NodeType.Element &&\r\n                'xmlns' in n.childNodes[0].attributes &&\r\n                n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n                doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n            }\r\n            else {\r\n                doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n            }\r\n        }\r\n        node = doc;\r\n    }\r\n    mirror.add(node, n);\r\n    if ((n.type === exports.NodeType.Document || n.type === exports.NodeType.Element) &&\r\n        !skipChild) {\r\n        for (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\r\n            var childN = _c[_i];\r\n            var childNode = buildNodeWithSN(childN, {\r\n                doc: doc,\r\n                mirror: mirror,\r\n                skipChild: false,\r\n                hackCss: hackCss,\r\n                afterAppend: afterAppend,\r\n                cache: cache\r\n            });\r\n            if (!childNode) {\r\n                console.warn('Failed to rebuild', childN);\r\n                continue;\r\n            }\r\n            if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n                node.shadowRoot.appendChild(childNode);\r\n            }\r\n            else {\r\n                node.appendChild(childNode);\r\n            }\r\n            if (afterAppend) {\r\n                afterAppend(childNode, childN.id);\r\n            }\r\n        }\r\n    }\r\n    return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n    function walk(node) {\r\n        onVisit(node);\r\n    }\r\n    for (var _i = 0, _a = mirror.getIds(); _i < _a.length; _i++) {\r\n        var id = _a[_i];\r\n        if (mirror.has(id)) {\r\n            walk(mirror.getNode(id));\r\n        }\r\n    }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n    var n = mirror.getMeta(node);\r\n    if ((n === null || n === void 0 ? void 0 : n.type) !== exports.NodeType.Element) {\r\n        return;\r\n    }\r\n    var el = node;\r\n    for (var name_3 in n.attributes) {\r\n        if (!(Object.prototype.hasOwnProperty.call(n.attributes, name_3) &&\r\n            name_3.startsWith('rr_'))) {\r\n            continue;\r\n        }\r\n        var value = n.attributes[name_3];\r\n        if (name_3 === 'rr_scrollLeft') {\r\n            el.scrollLeft = value;\r\n        }\r\n        if (name_3 === 'rr_scrollTop') {\r\n            el.scrollTop = value;\r\n        }\r\n    }\r\n}\r\nfunction rebuild(n, options) {\r\n    var doc = options.doc, onVisit = options.onVisit, _a = options.hackCss, hackCss = _a === void 0 ? true : _a, afterAppend = options.afterAppend, cache = options.cache, _b = options.mirror, mirror = _b === void 0 ? new Mirror() : _b;\r\n    var node = buildNodeWithSN(n, {\r\n        doc: doc,\r\n        mirror: mirror,\r\n        skipChild: false,\r\n        hackCss: hackCss,\r\n        afterAppend: afterAppend,\r\n        cache: cache\r\n    });\r\n    visit(mirror, function (visitedNode) {\r\n        if (onVisit) {\r\n            onVisit(visitedNode);\r\n        }\r\n        handleScroll(visitedNode, mirror);\r\n    });\r\n    return node;\r\n}\n\nexports.IGNORED_NODE = IGNORED_NODE;\nexports.Mirror = Mirror;\nexports.addHoverClass = addHoverClass;\nexports.buildNodeWithSN = buildNodeWithSN;\nexports.classMatchesRegex = classMatchesRegex;\nexports.cleanupSnapshot = cleanupSnapshot;\nexports.createCache = createCache;\nexports.createMirror = createMirror;\nexports.genId = genId;\nexports.getCssRuleString = getCssRuleString;\nexports.getCssRulesString = getCssRulesString;\nexports.is2DCanvasBlank = is2DCanvasBlank;\nexports.isCSSImportRule = isCSSImportRule;\nexports.isElement = isElement;\nexports.isNativeShadowDom = isNativeShadowDom;\nexports.isShadowRoot = isShadowRoot;\nexports.maskInputValue = maskInputValue;\nexports.needMaskingText = needMaskingText;\nexports.rebuild = rebuild;\nexports.serializeNodeWithId = serializeNodeWithId;\nexports.snapshot = snapshot;\nexports.transformAttribute = transformAttribute;\nexports.visitSnapshot = visitSnapshot;\n"]}