{
  "version": 3,
  "sources": ["../../rrdom/dist/rrdom.js", "../../types/dist/rrweb-types.js", "../src/document-nodejs.ts", "../src/polyfill.ts", "../src/index.ts"],
  "sourcesContent": ["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet Mirror$1 = class Mirror {\n  constructor() {\n    __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n    __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n  }\n  getId(n) {\n    var _a;\n    if (!n) return -1;\n    const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n    return id ?? -1;\n  }\n  getNode(id) {\n    return this.idNodeMap.get(id) || null;\n  }\n  getIds() {\n    return Array.from(this.idNodeMap.keys());\n  }\n  getMeta(n) {\n    return this.nodeMetaMap.get(n) || null;\n  }\n  // removes the node from idNodeMap\n  // doesn't remove the node from nodeMetaMap\n  removeNodeFromMap(n) {\n    const id = this.getId(n);\n    this.idNodeMap.delete(id);\n    if (n.childNodes) {\n      n.childNodes.forEach(\n        (childNode) => this.removeNodeFromMap(childNode)\n      );\n    }\n  }\n  has(id) {\n    return this.idNodeMap.has(id);\n  }\n  hasNode(node2) {\n    return this.nodeMetaMap.has(node2);\n  }\n  add(n, meta) {\n    const id = meta.id;\n    this.idNodeMap.set(id, n);\n    this.nodeMetaMap.set(n, meta);\n  }\n  replace(id, n) {\n    const oldNode = this.getNode(id);\n    if (oldNode) {\n      const meta = this.nodeMetaMap.get(oldNode);\n      if (meta) this.nodeMetaMap.set(n, meta);\n    }\n    this.idNodeMap.set(id, n);\n  }\n  reset() {\n    this.idNodeMap = /* @__PURE__ */ new Map();\n    this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n  }\n};\nfunction createMirror$1() {\n  return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x) {\n  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n) {\n  if (Object.prototype.hasOwnProperty.call(n, \"__esModule\")) return n;\n  var f = n.default;\n  if (typeof f == \"function\") {\n    var a = function a2() {\n      if (this instanceof a2) {\n        return Reflect.construct(f, arguments, this.constructor);\n      }\n      return f.apply(this, arguments);\n    };\n    a.prototype = f.prototype;\n  } else a = {};\n  Object.defineProperty(a, \"__esModule\", { value: true });\n  Object.keys(n).forEach(function(k) {\n    var d = Object.getOwnPropertyDescriptor(n, k);\n    Object.defineProperty(a, k, d.get ? d : {\n      enumerable: true,\n      get: function() {\n        return n[k];\n      }\n    });\n  });\n  return a;\n}\nvar picocolors_browser = { exports: {} };\nvar hasRequiredPicocolors_browser;\nfunction requirePicocolors_browser() {\n  if (hasRequiredPicocolors_browser) return picocolors_browser.exports;\n  hasRequiredPicocolors_browser = 1;\n  var x = String;\n  var create = function() {\n    return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };\n  };\n  picocolors_browser.exports = create();\n  picocolors_browser.exports.createColors = create;\n  return picocolors_browser.exports;\n}\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar cssSyntaxError;\nvar hasRequiredCssSyntaxError;\nfunction requireCssSyntaxError() {\n  if (hasRequiredCssSyntaxError) return cssSyntaxError;\n  hasRequiredCssSyntaxError = 1;\n  let pico = /* @__PURE__ */ requirePicocolors_browser();\n  let terminalHighlight = require$$2;\n  class CssSyntaxError extends Error {\n    constructor(message, line, column, source, file, plugin) {\n      super(message);\n      this.name = \"CssSyntaxError\";\n      this.reason = message;\n      if (file) {\n        this.file = file;\n      }\n      if (source) {\n        this.source = source;\n      }\n      if (plugin) {\n        this.plugin = plugin;\n      }\n      if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n        if (typeof line === \"number\") {\n          this.line = line;\n          this.column = column;\n        } else {\n          this.line = line.line;\n          this.column = line.column;\n          this.endLine = column.line;\n          this.endColumn = column.column;\n        }\n      }\n      this.setMessage();\n      if (Error.captureStackTrace) {\n        Error.captureStackTrace(this, CssSyntaxError);\n      }\n    }\n    setMessage() {\n      this.message = this.plugin ? this.plugin + \": \" : \"\";\n      this.message += this.file ? this.file : \"<css input>\";\n      if (typeof this.line !== \"undefined\") {\n        this.message += \":\" + this.line + \":\" + this.column;\n      }\n      this.message += \": \" + this.reason;\n    }\n    showSourceCode(color) {\n      if (!this.source) return \"\";\n      let css = this.source;\n      if (color == null) color = pico.isColorSupported;\n      let aside = (text) => text;\n      let mark = (text) => text;\n      let highlight = (text) => text;\n      if (color) {\n        let { bold, gray, red } = pico.createColors(true);\n        mark = (text) => bold(red(text));\n        aside = (text) => gray(text);\n        if (terminalHighlight) {\n          highlight = (text) => terminalHighlight(text);\n        }\n      }\n      let lines = css.split(/\\r?\\n/);\n      let start = Math.max(this.line - 3, 0);\n      let end = Math.min(this.line + 2, lines.length);\n      let maxWidth = String(end).length;\n      return lines.slice(start, end).map((line, index2) => {\n        let number = start + 1 + index2;\n        let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n        if (number === this.line) {\n          if (line.length > 160) {\n            let padding = 20;\n            let subLineStart = Math.max(0, this.column - padding);\n            let subLineEnd = Math.max(\n              this.column + padding,\n              this.endColumn + padding\n            );\n            let subLine = line.slice(subLineStart, subLineEnd);\n            let spacing2 = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\\t]/g, \" \");\n            return mark(\">\") + aside(gutter) + highlight(subLine) + \"\\n \" + spacing2 + mark(\"^\");\n          }\n          let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n          return mark(\">\") + aside(gutter) + highlight(line) + \"\\n \" + spacing + mark(\"^\");\n        }\n        return \" \" + aside(gutter) + highlight(line);\n      }).join(\"\\n\");\n    }\n    toString() {\n      let code = this.showSourceCode();\n      if (code) {\n        code = \"\\n\\n\" + code + \"\\n\";\n      }\n      return this.name + \": \" + this.message + code;\n    }\n  }\n  cssSyntaxError = CssSyntaxError;\n  CssSyntaxError.default = CssSyntaxError;\n  return cssSyntaxError;\n}\nvar stringifier;\nvar hasRequiredStringifier;\nfunction requireStringifier() {\n  if (hasRequiredStringifier) return stringifier;\n  hasRequiredStringifier = 1;\n  const STYLE_TAG = /(<)(\\/?style\\b)/gi;\n  const COMMENT_OPEN = /(<)(!--)/g;\n  function escapeHTMLInCSS(str) {\n    if (typeof str !== \"string\") return str;\n    if (!str.includes(\"<\")) return str;\n    return str.replace(STYLE_TAG, \"\\\\3c $2\").replace(COMMENT_OPEN, \"\\\\3c $2\");\n  }\n  const DEFAULT_RAW = {\n    after: \"\\n\",\n    beforeClose: \"\\n\",\n    beforeComment: \"\\n\",\n    beforeDecl: \"\\n\",\n    beforeOpen: \" \",\n    beforeRule: \"\\n\",\n    colon: \": \",\n    commentLeft: \" \",\n    commentRight: \" \",\n    emptyBody: \"\",\n    indent: \"    \",\n    semicolon: false\n  };\n  function capitalize(str) {\n    return str[0].toUpperCase() + str.slice(1);\n  }\n  class Stringifier {\n    constructor(builder) {\n      this.builder = builder;\n    }\n    atrule(node2, semicolon) {\n      let name = \"@\" + node2.name;\n      let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n      if (typeof node2.raws.afterName !== \"undefined\") {\n        name += node2.raws.afterName;\n      } else if (params) {\n        name += \" \";\n      }\n      if (node2.nodes) {\n        this.block(node2, name + params);\n      } else {\n        let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n        this.builder(escapeHTMLInCSS(name + params + end), node2);\n      }\n    }\n    beforeAfter(node2, detect) {\n      let value;\n      if (node2.type === \"decl\") {\n        value = this.raw(node2, null, \"beforeDecl\");\n      } else if (node2.type === \"comment\") {\n        value = this.raw(node2, null, \"beforeComment\");\n      } else if (detect === \"before\") {\n        value = this.raw(node2, null, \"beforeRule\");\n      } else {\n        value = this.raw(node2, null, \"beforeClose\");\n      }\n      let buf = node2.parent;\n      let depth = 0;\n      while (buf && buf.type !== \"root\") {\n        depth += 1;\n        buf = buf.parent;\n      }\n      if (value.includes(\"\\n\")) {\n        let indent = this.raw(node2, null, \"indent\");\n        if (indent.length) {\n          for (let step = 0; step < depth; step++) value += indent;\n        }\n      }\n      return value;\n    }\n    block(node2, start) {\n      let between = this.raw(node2, \"between\", \"beforeOpen\");\n      this.builder(escapeHTMLInCSS(start + between) + \"{\", node2, \"start\");\n      let after;\n      if (node2.nodes && node2.nodes.length) {\n        this.body(node2);\n        after = this.raw(node2, \"after\");\n      } else {\n        after = this.raw(node2, \"after\", \"emptyBody\");\n      }\n      if (after) this.builder(escapeHTMLInCSS(after));\n      this.builder(\"}\", node2, \"end\");\n    }\n    body(node2) {\n      let last = node2.nodes.length - 1;\n      while (last > 0) {\n        if (node2.nodes[last].type !== \"comment\") break;\n        last -= 1;\n      }\n      let semicolon = this.raw(node2, \"semicolon\");\n      let isDocument = node2.type === \"document\";\n      for (let i = 0; i < node2.nodes.length; i++) {\n        let child = node2.nodes[i];\n        let before = this.raw(child, \"before\");\n        if (before) this.builder(isDocument ? before : escapeHTMLInCSS(before));\n        this.stringify(child, last !== i || semicolon);\n      }\n    }\n    comment(node2) {\n      let left = this.raw(node2, \"left\", \"commentLeft\");\n      let right = this.raw(node2, \"right\", \"commentRight\");\n      this.builder(escapeHTMLInCSS(\"/*\" + left + node2.text + right + \"*/\"), node2);\n    }\n    decl(node2, semicolon) {\n      let between = this.raw(node2, \"between\", \"colon\");\n      let string = node2.prop + between + this.rawValue(node2, \"value\");\n      if (node2.important) {\n        string += node2.raws.important || \" !important\";\n      }\n      if (semicolon) string += \";\";\n      this.builder(escapeHTMLInCSS(string), node2);\n    }\n    document(node2) {\n      this.body(node2);\n    }\n    raw(node2, own, detect) {\n      let value;\n      if (!detect) detect = own;\n      if (own) {\n        value = node2.raws[own];\n        if (typeof value !== \"undefined\") return value;\n      }\n      let parent = node2.parent;\n      if (detect === \"before\") {\n        if (!parent || parent.type === \"root\" && parent.first === node2) {\n          return \"\";\n        }\n        if (parent && parent.type === \"document\") {\n          return \"\";\n        }\n      }\n      if (!parent) return DEFAULT_RAW[detect];\n      let root2 = node2.root();\n      if (!root2.rawCache) root2.rawCache = {};\n      if (typeof root2.rawCache[detect] !== \"undefined\") {\n        return root2.rawCache[detect];\n      }\n      if (detect === \"before\" || detect === \"after\") {\n        return this.beforeAfter(node2, detect);\n      } else {\n        let method = \"raw\" + capitalize(detect);\n        if (this[method]) {\n          value = this[method](root2, node2);\n        } else {\n          root2.walk((i) => {\n            value = i.raws[own];\n            if (typeof value !== \"undefined\") return false;\n          });\n        }\n      }\n      if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n      root2.rawCache[detect] = value;\n      return value;\n    }\n    rawBeforeClose(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && i.nodes.length > 0) {\n          if (typeof i.raws.after !== \"undefined\") {\n            value = i.raws.after;\n            if (value.includes(\"\\n\")) {\n              value = value.replace(/[^\\n]+$/, \"\");\n            }\n            return false;\n          }\n        }\n      });\n      if (value) value = value.replace(/\\S/g, \"\");\n      return value;\n    }\n    rawBeforeComment(root2, node2) {\n      let value;\n      root2.walkComments((i) => {\n        if (typeof i.raws.before !== \"undefined\") {\n          value = i.raws.before;\n          if (value.includes(\"\\n\")) {\n            value = value.replace(/[^\\n]+$/, \"\");\n          }\n          return false;\n        }\n      });\n      if (typeof value === \"undefined\") {\n        value = this.raw(node2, null, \"beforeDecl\");\n      } else if (value) {\n        value = value.replace(/\\S/g, \"\");\n      }\n      return value;\n    }\n    rawBeforeDecl(root2, node2) {\n      let value;\n      root2.walkDecls((i) => {\n        if (typeof i.raws.before !== \"undefined\") {\n          value = i.raws.before;\n          if (value.includes(\"\\n\")) {\n            value = value.replace(/[^\\n]+$/, \"\");\n          }\n          return false;\n        }\n      });\n      if (typeof value === \"undefined\") {\n        value = this.raw(node2, null, \"beforeRule\");\n      } else if (value) {\n        value = value.replace(/\\S/g, \"\");\n      }\n      return value;\n    }\n    rawBeforeOpen(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.type !== \"decl\") {\n          value = i.raws.between;\n          if (typeof value !== \"undefined\") return false;\n        }\n      });\n      return value;\n    }\n    rawBeforeRule(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n          if (typeof i.raws.before !== \"undefined\") {\n            value = i.raws.before;\n            if (value.includes(\"\\n\")) {\n              value = value.replace(/[^\\n]+$/, \"\");\n            }\n            return false;\n          }\n        }\n      });\n      if (value) value = value.replace(/\\S/g, \"\");\n      return value;\n    }\n    rawColon(root2) {\n      let value;\n      root2.walkDecls((i) => {\n        if (typeof i.raws.between !== \"undefined\") {\n          value = i.raws.between.replace(/[^\\s:]/g, \"\");\n          return false;\n        }\n      });\n      return value;\n    }\n    rawEmptyBody(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && i.nodes.length === 0) {\n          value = i.raws.after;\n          if (typeof value !== \"undefined\") return false;\n        }\n      });\n      return value;\n    }\n    rawIndent(root2) {\n      if (root2.raws.indent) return root2.raws.indent;\n      let value;\n      root2.walk((i) => {\n        let p = i.parent;\n        if (p && p !== root2 && p.parent && p.parent === root2) {\n          if (typeof i.raws.before !== \"undefined\") {\n            let parts = i.raws.before.split(\"\\n\");\n            value = parts[parts.length - 1];\n            value = value.replace(/\\S/g, \"\");\n            return false;\n          }\n        }\n      });\n      return value;\n    }\n    rawSemicolon(root2) {\n      let value;\n      root2.walk((i) => {\n        if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n          value = i.raws.semicolon;\n          if (typeof value !== \"undefined\") return false;\n        }\n      });\n      return value;\n    }\n    rawValue(node2, prop) {\n      let value = node2[prop];\n      let raw = node2.raws[prop];\n      if (raw && raw.value === value) {\n        return raw.raw;\n      }\n      return value;\n    }\n    root(node2) {\n      this.body(node2);\n      if (node2.raws.after) {\n        let after = node2.raws.after;\n        let isDocument = node2.parent && node2.parent.type === \"document\";\n        this.builder(isDocument ? after : escapeHTMLInCSS(after));\n      }\n    }\n    rule(node2) {\n      this.block(node2, this.rawValue(node2, \"selector\"));\n      if (node2.raws.ownSemicolon) {\n        this.builder(escapeHTMLInCSS(node2.raws.ownSemicolon), node2, \"end\");\n      }\n    }\n    stringify(node2, semicolon) {\n      if (!this[node2.type]) {\n        throw new Error(\n          \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n        );\n      }\n      this[node2.type](node2, semicolon);\n    }\n  }\n  stringifier = Stringifier;\n  Stringifier.default = Stringifier;\n  return stringifier;\n}\nvar stringify_1;\nvar hasRequiredStringify;\nfunction requireStringify() {\n  if (hasRequiredStringify) return stringify_1;\n  hasRequiredStringify = 1;\n  let Stringifier = requireStringifier();\n  function stringify(node2, builder) {\n    let str = new Stringifier(builder);\n    str.stringify(node2);\n  }\n  stringify_1 = stringify;\n  stringify.default = stringify;\n  return stringify_1;\n}\nvar symbols = {};\nvar hasRequiredSymbols;\nfunction requireSymbols() {\n  if (hasRequiredSymbols) return symbols;\n  hasRequiredSymbols = 1;\n  symbols.isClean = Symbol(\"isClean\");\n  symbols.my = Symbol(\"my\");\n  return symbols;\n}\nvar node;\nvar hasRequiredNode;\nfunction requireNode() {\n  if (hasRequiredNode) return node;\n  hasRequiredNode = 1;\n  let CssSyntaxError = requireCssSyntaxError();\n  let Stringifier = requireStringifier();\n  let stringify = requireStringify();\n  let { isClean, my } = requireSymbols();\n  function cloneNode(obj, parent) {\n    let cloned = new obj.constructor();\n    for (let i in obj) {\n      if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n        continue;\n      }\n      if (i === \"proxyCache\") continue;\n      let value = obj[i];\n      let type = typeof value;\n      if (i === \"parent\" && type === \"object\") {\n        if (parent) cloned[i] = parent;\n      } else if (i === \"source\") {\n        cloned[i] = value;\n      } else if (Array.isArray(value)) {\n        cloned[i] = value.map((j) => cloneNode(j, cloned));\n      } else {\n        if (type === \"object\" && value !== null) value = cloneNode(value);\n        cloned[i] = value;\n      }\n    }\n    return cloned;\n  }\n  function sourceOffset(inputCSS, position) {\n    if (position && typeof position.offset !== \"undefined\") {\n      return position.offset;\n    }\n    let column = 1;\n    let line = 1;\n    let offset = 0;\n    for (let i = 0; i < inputCSS.length; i++) {\n      if (line === position.line && column === position.column) {\n        offset = i;\n        break;\n      }\n      if (inputCSS[i] === \"\\n\") {\n        column = 1;\n        line += 1;\n      } else {\n        column += 1;\n      }\n    }\n    return offset;\n  }\n  class Node {\n    get proxyOf() {\n      return this;\n    }\n    constructor(defaults = {}) {\n      this.raws = {};\n      this[isClean] = false;\n      this[my] = true;\n      for (let name in defaults) {\n        if (name === \"nodes\") {\n          this.nodes = [];\n          for (let node2 of defaults[name]) {\n            if (typeof node2.clone === \"function\") {\n              this.append(node2.clone());\n            } else {\n              this.append(node2);\n            }\n          }\n        } else {\n          this[name] = defaults[name];\n        }\n      }\n    }\n    addToError(error) {\n      error.postcssNode = this;\n      if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n        let s = this.source;\n        error.stack = error.stack.replace(\n          /\\n\\s{4}at /,\n          `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n        );\n      }\n      return error;\n    }\n    after(add) {\n      this.parent.insertAfter(this, add);\n      return this;\n    }\n    assign(overrides = {}) {\n      for (let name in overrides) {\n        this[name] = overrides[name];\n      }\n      return this;\n    }\n    before(add) {\n      this.parent.insertBefore(this, add);\n      return this;\n    }\n    cleanRaws(keepBetween) {\n      delete this.raws.before;\n      delete this.raws.after;\n      if (!keepBetween) delete this.raws.between;\n    }\n    clone(overrides = {}) {\n      let cloned = cloneNode(this);\n      for (let name in overrides) {\n        cloned[name] = overrides[name];\n      }\n      return cloned;\n    }\n    cloneAfter(overrides = {}) {\n      let cloned = this.clone(overrides);\n      this.parent.insertAfter(this, cloned);\n      return cloned;\n    }\n    cloneBefore(overrides = {}) {\n      let cloned = this.clone(overrides);\n      this.parent.insertBefore(this, cloned);\n      return cloned;\n    }\n    error(message, opts = {}) {\n      if (this.source) {\n        let { end, start } = this.rangeBy(opts);\n        return this.source.input.error(\n          message,\n          { column: start.column, line: start.line },\n          { column: end.column, line: end.line },\n          opts\n        );\n      }\n      return new CssSyntaxError(message);\n    }\n    getProxyProcessor() {\n      return {\n        get(node2, prop) {\n          if (prop === \"proxyOf\") {\n            return node2;\n          } else if (prop === \"root\") {\n            return () => node2.root().toProxy();\n          } else {\n            return node2[prop];\n          }\n        },\n        set(node2, prop, value) {\n          if (node2[prop] === value) return true;\n          node2[prop] = value;\n          if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n          prop === \"text\") {\n            node2.markDirty();\n          }\n          return true;\n        }\n      };\n    }\n    /* c8 ignore next 3 */\n    markClean() {\n      this[isClean] = true;\n    }\n    markDirty() {\n      if (this[isClean]) {\n        this[isClean] = false;\n        let next = this;\n        while (next = next.parent) {\n          next[isClean] = false;\n        }\n      }\n    }\n    next() {\n      if (!this.parent) return void 0;\n      let index2 = this.parent.index(this);\n      return this.parent.nodes[index2 + 1];\n    }\n    positionBy(opts = {}) {\n      let pos = this.source.start;\n      if (opts.index) {\n        pos = this.positionInside(opts.index);\n      } else if (opts.word) {\n        let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n        let stringRepresentation = inputString.slice(\n          sourceOffset(inputString, this.source.start),\n          sourceOffset(inputString, this.source.end)\n        );\n        let index2 = stringRepresentation.indexOf(opts.word);\n        if (index2 !== -1) pos = this.positionInside(index2);\n      }\n      return pos;\n    }\n    positionInside(index2) {\n      let column = this.source.start.column;\n      let line = this.source.start.line;\n      let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n      let offset = sourceOffset(inputString, this.source.start);\n      let end = offset + index2;\n      for (let i = offset; i < end; i++) {\n        if (inputString[i] === \"\\n\") {\n          column = 1;\n          line += 1;\n        } else {\n          column += 1;\n        }\n      }\n      return { column, line, offset: end };\n    }\n    prev() {\n      if (!this.parent) return void 0;\n      let index2 = this.parent.index(this);\n      return this.parent.nodes[index2 - 1];\n    }\n    rangeBy(opts = {}) {\n      let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n      let start = {\n        column: this.source.start.column,\n        line: this.source.start.line,\n        offset: sourceOffset(inputString, this.source.start)\n      };\n      let end = this.source.end ? {\n        column: this.source.end.column + 1,\n        line: this.source.end.line,\n        offset: typeof this.source.end.offset === \"number\" ? (\n          // `source.end.offset` is exclusive, so we don't need to add 1\n          this.source.end.offset\n        ) : (\n          // Since line/column in this.source.end is inclusive,\n          // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n          // So, we add 1 to convert it to exclusive.\n          sourceOffset(inputString, this.source.end) + 1\n        )\n      } : {\n        column: start.column + 1,\n        line: start.line,\n        offset: start.offset + 1\n      };\n      if (opts.word) {\n        let stringRepresentation = inputString.slice(\n          sourceOffset(inputString, this.source.start),\n          sourceOffset(inputString, this.source.end)\n        );\n        let index2 = stringRepresentation.indexOf(opts.word);\n        if (index2 !== -1) {\n          start = this.positionInside(index2);\n          end = this.positionInside(index2 + opts.word.length);\n        }\n      } else {\n        if (opts.start) {\n          start = {\n            column: opts.start.column,\n            line: opts.start.line,\n            offset: sourceOffset(inputString, opts.start)\n          };\n        } else if (opts.index) {\n          start = this.positionInside(opts.index);\n        }\n        if (opts.end) {\n          end = {\n            column: opts.end.column,\n            line: opts.end.line,\n            offset: sourceOffset(inputString, opts.end)\n          };\n        } else if (typeof opts.endIndex === \"number\") {\n          end = this.positionInside(opts.endIndex);\n        } else if (opts.index) {\n          end = this.positionInside(opts.index + 1);\n        }\n      }\n      if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n        end = {\n          column: start.column + 1,\n          line: start.line,\n          offset: start.offset + 1\n        };\n      }\n      return { end, start };\n    }\n    raw(prop, defaultType) {\n      let str = new Stringifier();\n      return str.raw(this, prop, defaultType);\n    }\n    remove() {\n      if (this.parent) {\n        this.parent.removeChild(this);\n      }\n      this.parent = void 0;\n      return this;\n    }\n    replaceWith(...nodes) {\n      if (this.parent) {\n        let bookmark = this;\n        let foundSelf = false;\n        for (let node2 of nodes) {\n          if (node2 === this) {\n            foundSelf = true;\n          } else if (foundSelf) {\n            this.parent.insertAfter(bookmark, node2);\n            bookmark = node2;\n          } else {\n            this.parent.insertBefore(bookmark, node2);\n          }\n        }\n        if (!foundSelf) {\n          this.remove();\n        }\n      }\n      return this;\n    }\n    root() {\n      let result2 = this;\n      while (result2.parent && result2.parent.type !== \"document\") {\n        result2 = result2.parent;\n      }\n      return result2;\n    }\n    toJSON(_, inputs) {\n      let fixed = {};\n      let emitInputs = inputs == null;\n      inputs = inputs || /* @__PURE__ */ new Map();\n      let inputsNextIndex = 0;\n      for (let name in this) {\n        if (!Object.prototype.hasOwnProperty.call(this, name)) {\n          continue;\n        }\n        if (name === \"parent\" || name === \"proxyCache\") continue;\n        let value = this[name];\n        if (Array.isArray(value)) {\n          fixed[name] = value.map((i) => {\n            if (typeof i === \"object\" && i.toJSON) {\n              return i.toJSON(null, inputs);\n            } else {\n              return i;\n            }\n          });\n        } else if (typeof value === \"object\" && value.toJSON) {\n          fixed[name] = value.toJSON(null, inputs);\n        } else if (name === \"source\") {\n          if (value == null) continue;\n          let inputId = inputs.get(value.input);\n          if (inputId == null) {\n            inputId = inputsNextIndex;\n            inputs.set(value.input, inputsNextIndex);\n            inputsNextIndex++;\n          }\n          fixed[name] = {\n            end: value.end,\n            inputId,\n            start: value.start\n          };\n        } else {\n          fixed[name] = value;\n        }\n      }\n      if (emitInputs) {\n        fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n      }\n      return fixed;\n    }\n    toProxy() {\n      if (!this.proxyCache) {\n        this.proxyCache = new Proxy(this, this.getProxyProcessor());\n      }\n      return this.proxyCache;\n    }\n    toString(stringifier2 = stringify) {\n      if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n      let result2 = \"\";\n      stringifier2(this, (i) => {\n        result2 += i;\n      });\n      return result2;\n    }\n    warn(result2, text, opts = {}) {\n      let data = { node: this };\n      for (let i in opts) data[i] = opts[i];\n      return result2.warn(text, data);\n    }\n  }\n  node = Node;\n  Node.default = Node;\n  return node;\n}\nvar comment;\nvar hasRequiredComment;\nfunction requireComment() {\n  if (hasRequiredComment) return comment;\n  hasRequiredComment = 1;\n  let Node = requireNode();\n  class Comment extends Node {\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"comment\";\n    }\n  }\n  comment = Comment;\n  Comment.default = Comment;\n  return comment;\n}\nvar declaration;\nvar hasRequiredDeclaration;\nfunction requireDeclaration() {\n  if (hasRequiredDeclaration) return declaration;\n  hasRequiredDeclaration = 1;\n  let Node = requireNode();\n  class Declaration extends Node {\n    get variable() {\n      return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n    }\n    constructor(defaults) {\n      if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n        defaults = { ...defaults, value: String(defaults.value) };\n      }\n      super(defaults);\n      this.type = \"decl\";\n    }\n  }\n  declaration = Declaration;\n  Declaration.default = Declaration;\n  return declaration;\n}\nvar container;\nvar hasRequiredContainer;\nfunction requireContainer() {\n  if (hasRequiredContainer) return container;\n  hasRequiredContainer = 1;\n  let Comment = requireComment();\n  let Declaration = requireDeclaration();\n  let Node = requireNode();\n  let { isClean, my } = requireSymbols();\n  let AtRule, parse, Root, Rule;\n  function cleanSource(nodes) {\n    return nodes.map((i) => {\n      if (i.nodes) i.nodes = cleanSource(i.nodes);\n      delete i.source;\n      return i;\n    });\n  }\n  function markTreeDirty(node2) {\n    node2[isClean] = false;\n    if (node2.proxyOf.nodes) {\n      for (let i of node2.proxyOf.nodes) {\n        markTreeDirty(i);\n      }\n    }\n  }\n  class Container extends Node {\n    get first() {\n      if (!this.proxyOf.nodes) return void 0;\n      return this.proxyOf.nodes[0];\n    }\n    get last() {\n      if (!this.proxyOf.nodes) return void 0;\n      return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n    }\n    append(...children) {\n      for (let child of children) {\n        let nodes = this.normalize(child, this.last);\n        for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n      }\n      this.markDirty();\n      return this;\n    }\n    cleanRaws(keepBetween) {\n      super.cleanRaws(keepBetween);\n      if (this.nodes) {\n        for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n      }\n    }\n    each(callback) {\n      if (!this.proxyOf.nodes) return void 0;\n      let iterator = this.getIterator();\n      let index2, result2;\n      while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n        index2 = this.indexes[iterator];\n        result2 = callback(this.proxyOf.nodes[index2], index2);\n        if (result2 === false) break;\n        this.indexes[iterator] += 1;\n      }\n      delete this.indexes[iterator];\n      return result2;\n    }\n    every(condition) {\n      return this.nodes.every(condition);\n    }\n    getIterator() {\n      if (!this.lastEach) this.lastEach = 0;\n      if (!this.indexes) this.indexes = {};\n      this.lastEach += 1;\n      let iterator = this.lastEach;\n      this.indexes[iterator] = 0;\n      return iterator;\n    }\n    getProxyProcessor() {\n      return {\n        get(node2, prop) {\n          if (prop === \"proxyOf\") {\n            return node2;\n          } else if (!node2[prop]) {\n            return node2[prop];\n          } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n            return (...args) => {\n              return node2[prop](\n                ...args.map((i) => {\n                  if (typeof i === \"function\") {\n                    return (child, index2) => i(child.toProxy(), index2);\n                  } else {\n                    return i;\n                  }\n                })\n              );\n            };\n          } else if (prop === \"every\" || prop === \"some\") {\n            return (cb) => {\n              return node2[prop](\n                (child, ...other) => cb(child.toProxy(), ...other)\n              );\n            };\n          } else if (prop === \"root\") {\n            return () => node2.root().toProxy();\n          } else if (prop === \"nodes\") {\n            return node2.nodes.map((i) => i.toProxy());\n          } else if (prop === \"first\" || prop === \"last\") {\n            return node2[prop].toProxy();\n          } else {\n            return node2[prop];\n          }\n        },\n        set(node2, prop, value) {\n          if (node2[prop] === value) return true;\n          node2[prop] = value;\n          if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n            node2.markDirty();\n          }\n          return true;\n        }\n      };\n    }\n    index(child) {\n      if (typeof child === \"number\") return child;\n      if (child.proxyOf) child = child.proxyOf;\n      return this.proxyOf.nodes.indexOf(child);\n    }\n    insertAfter(exist, add) {\n      let existIndex = this.index(exist);\n      let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n      existIndex = this.index(exist);\n      for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n      let index2;\n      for (let id in this.indexes) {\n        index2 = this.indexes[id];\n        if (existIndex < index2) {\n          this.indexes[id] = index2 + nodes.length;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    insertBefore(exist, add) {\n      let existIndex = this.index(exist);\n      let type = existIndex === 0 ? \"prepend\" : false;\n      let nodes = this.normalize(\n        add,\n        this.proxyOf.nodes[existIndex],\n        type\n      ).reverse();\n      existIndex = this.index(exist);\n      for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n      let index2;\n      for (let id in this.indexes) {\n        index2 = this.indexes[id];\n        if (existIndex <= index2) {\n          this.indexes[id] = index2 + nodes.length;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    normalize(nodes, sample) {\n      if (typeof nodes === \"string\") {\n        nodes = cleanSource(parse(nodes).nodes);\n      } else if (typeof nodes === \"undefined\") {\n        nodes = [];\n      } else if (Array.isArray(nodes)) {\n        nodes = nodes.slice(0);\n        for (let i of nodes) {\n          if (i.parent) i.parent.removeChild(i, \"ignore\");\n        }\n      } else if (nodes.type === \"root\" && this.type !== \"document\") {\n        nodes = nodes.nodes.slice(0);\n        for (let i of nodes) {\n          if (i.parent) i.parent.removeChild(i, \"ignore\");\n        }\n      } else if (nodes.type) {\n        nodes = [nodes];\n      } else if (nodes.prop) {\n        if (typeof nodes.value === \"undefined\") {\n          throw new Error(\"Value field is missed in node creation\");\n        } else if (typeof nodes.value !== \"string\") {\n          nodes.value = String(nodes.value);\n        }\n        nodes = [new Declaration(nodes)];\n      } else if (nodes.selector || nodes.selectors) {\n        nodes = [new Rule(nodes)];\n      } else if (nodes.name) {\n        nodes = [new AtRule(nodes)];\n      } else if (nodes.text) {\n        nodes = [new Comment(nodes)];\n      } else {\n        throw new Error(\"Unknown node type in node creation\");\n      }\n      let processed = nodes.map((i) => {\n        if (!i[my]) Container.rebuild(i);\n        i = i.proxyOf;\n        if (i.parent) i.parent.removeChild(i);\n        if (i[isClean]) markTreeDirty(i);\n        if (!i.raws) i.raws = {};\n        if (typeof i.raws.before === \"undefined\") {\n          if (sample && typeof sample.raws.before !== \"undefined\") {\n            i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n          }\n        }\n        i.parent = this.proxyOf;\n        return i;\n      });\n      return processed;\n    }\n    prepend(...children) {\n      children = children.reverse();\n      for (let child of children) {\n        let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n        for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n        for (let id in this.indexes) {\n          this.indexes[id] = this.indexes[id] + nodes.length;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    push(child) {\n      child.parent = this;\n      this.proxyOf.nodes.push(child);\n      return this;\n    }\n    removeAll() {\n      for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n      this.proxyOf.nodes = [];\n      this.markDirty();\n      return this;\n    }\n    removeChild(child) {\n      child = this.index(child);\n      this.proxyOf.nodes[child].parent = void 0;\n      this.proxyOf.nodes.splice(child, 1);\n      let index2;\n      for (let id in this.indexes) {\n        index2 = this.indexes[id];\n        if (index2 >= child) {\n          this.indexes[id] = index2 - 1;\n        }\n      }\n      this.markDirty();\n      return this;\n    }\n    replaceValues(pattern, opts, callback) {\n      if (!callback) {\n        callback = opts;\n        opts = {};\n      }\n      this.walkDecls((decl) => {\n        if (opts.props && !opts.props.includes(decl.prop)) return;\n        if (opts.fast && !decl.value.includes(opts.fast)) return;\n        decl.value = decl.value.replace(pattern, callback);\n      });\n      this.markDirty();\n      return this;\n    }\n    some(condition) {\n      return this.nodes.some(condition);\n    }\n    walk(callback) {\n      return this.each((child, i) => {\n        let result2;\n        try {\n          result2 = callback(child, i);\n        } catch (e) {\n          throw child.addToError(e);\n        }\n        if (result2 !== false && child.walk) {\n          result2 = child.walk(callback);\n        }\n        return result2;\n      });\n    }\n    walkAtRules(name, callback) {\n      if (!callback) {\n        callback = name;\n        return this.walk((child, i) => {\n          if (child.type === \"atrule\") {\n            return callback(child, i);\n          }\n        });\n      }\n      if (name instanceof RegExp) {\n        return this.walk((child, i) => {\n          if (child.type === \"atrule\" && name.test(child.name)) {\n            return callback(child, i);\n          }\n        });\n      }\n      return this.walk((child, i) => {\n        if (child.type === \"atrule\" && child.name === name) {\n          return callback(child, i);\n        }\n      });\n    }\n    walkComments(callback) {\n      return this.walk((child, i) => {\n        if (child.type === \"comment\") {\n          return callback(child, i);\n        }\n      });\n    }\n    walkDecls(prop, callback) {\n      if (!callback) {\n        callback = prop;\n        return this.walk((child, i) => {\n          if (child.type === \"decl\") {\n            return callback(child, i);\n          }\n        });\n      }\n      if (prop instanceof RegExp) {\n        return this.walk((child, i) => {\n          if (child.type === \"decl\" && prop.test(child.prop)) {\n            return callback(child, i);\n          }\n        });\n      }\n      return this.walk((child, i) => {\n        if (child.type === \"decl\" && child.prop === prop) {\n          return callback(child, i);\n        }\n      });\n    }\n    walkRules(selector, callback) {\n      if (!callback) {\n        callback = selector;\n        return this.walk((child, i) => {\n          if (child.type === \"rule\") {\n            return callback(child, i);\n          }\n        });\n      }\n      if (selector instanceof RegExp) {\n        return this.walk((child, i) => {\n          if (child.type === \"rule\" && selector.test(child.selector)) {\n            return callback(child, i);\n          }\n        });\n      }\n      return this.walk((child, i) => {\n        if (child.type === \"rule\" && child.selector === selector) {\n          return callback(child, i);\n        }\n      });\n    }\n  }\n  Container.registerParse = (dependant) => {\n    parse = dependant;\n  };\n  Container.registerRule = (dependant) => {\n    Rule = dependant;\n  };\n  Container.registerAtRule = (dependant) => {\n    AtRule = dependant;\n  };\n  Container.registerRoot = (dependant) => {\n    Root = dependant;\n  };\n  container = Container;\n  Container.default = Container;\n  Container.rebuild = (node2) => {\n    if (node2.type === \"atrule\") {\n      Object.setPrototypeOf(node2, AtRule.prototype);\n    } else if (node2.type === \"rule\") {\n      Object.setPrototypeOf(node2, Rule.prototype);\n    } else if (node2.type === \"decl\") {\n      Object.setPrototypeOf(node2, Declaration.prototype);\n    } else if (node2.type === \"comment\") {\n      Object.setPrototypeOf(node2, Comment.prototype);\n    } else if (node2.type === \"root\") {\n      Object.setPrototypeOf(node2, Root.prototype);\n    }\n    node2[my] = true;\n    if (node2.nodes) {\n      node2.nodes.forEach((child) => {\n        Container.rebuild(child);\n      });\n    }\n  };\n  return container;\n}\nvar atRule;\nvar hasRequiredAtRule;\nfunction requireAtRule() {\n  if (hasRequiredAtRule) return atRule;\n  hasRequiredAtRule = 1;\n  let Container = requireContainer();\n  class AtRule extends Container {\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"atrule\";\n    }\n    append(...children) {\n      if (!this.proxyOf.nodes) this.nodes = [];\n      return super.append(...children);\n    }\n    prepend(...children) {\n      if (!this.proxyOf.nodes) this.nodes = [];\n      return super.prepend(...children);\n    }\n  }\n  atRule = AtRule;\n  AtRule.default = AtRule;\n  Container.registerAtRule(AtRule);\n  return atRule;\n}\nvar document$1;\nvar hasRequiredDocument;\nfunction requireDocument() {\n  if (hasRequiredDocument) return document$1;\n  hasRequiredDocument = 1;\n  let Container = requireContainer();\n  let LazyResult, Processor;\n  class Document2 extends Container {\n    constructor(defaults) {\n      super({ type: \"document\", ...defaults });\n      if (!this.nodes) {\n        this.nodes = [];\n      }\n    }\n    toResult(opts = {}) {\n      let lazy = new LazyResult(new Processor(), this, opts);\n      return lazy.stringify();\n    }\n  }\n  Document2.registerLazyResult = (dependant) => {\n    LazyResult = dependant;\n  };\n  Document2.registerProcessor = (dependant) => {\n    Processor = dependant;\n  };\n  document$1 = Document2;\n  Document2.default = Document2;\n  return document$1;\n}\nvar nonSecure;\nvar hasRequiredNonSecure;\nfunction requireNonSecure() {\n  if (hasRequiredNonSecure) return nonSecure;\n  hasRequiredNonSecure = 1;\n  let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n  let customAlphabet = (alphabet, defaultSize = 21) => {\n    return (size = defaultSize) => {\n      let id = \"\";\n      let i = size | 0;\n      while (i--) {\n        id += alphabet[Math.random() * alphabet.length | 0];\n      }\n      return id;\n    };\n  };\n  let nanoid = (size = 21) => {\n    let id = \"\";\n    let i = size | 0;\n    while (i--) {\n      id += urlAlphabet[Math.random() * 64 | 0];\n    }\n    return id;\n  };\n  nonSecure = { nanoid, customAlphabet };\n  return nonSecure;\n}\nvar previousMap;\nvar hasRequiredPreviousMap;\nfunction requirePreviousMap() {\n  if (hasRequiredPreviousMap) return previousMap;\n  hasRequiredPreviousMap = 1;\n  let { existsSync, readFileSync } = require$$2;\n  let { dirname, join } = require$$2;\n  let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n  function fromBase64(str) {\n    if (Buffer) {\n      return Buffer.from(str, \"base64\").toString();\n    } else {\n      return window.atob(str);\n    }\n  }\n  class PreviousMap {\n    constructor(css, opts) {\n      if (opts.map === false) return;\n      this.loadAnnotation(css);\n      this.inline = this.startWith(this.annotation, \"data:\");\n      let prev = opts.map ? opts.map.prev : void 0;\n      let text = this.loadMap(opts.from, prev);\n      if (!this.mapFile && opts.from) {\n        this.mapFile = opts.from;\n      }\n      if (this.mapFile) this.root = dirname(this.mapFile);\n      if (text) this.text = text;\n    }\n    consumer() {\n      if (!this.consumerCache) {\n        this.consumerCache = new SourceMapConsumer(this.text);\n      }\n      return this.consumerCache;\n    }\n    decodeInline(text) {\n      let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n      let baseUri = /^data:application\\/json;base64,/;\n      let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n      let uri = /^data:application\\/json,/;\n      let uriMatch = text.match(charsetUri) || text.match(uri);\n      if (uriMatch) {\n        return decodeURIComponent(text.substr(uriMatch[0].length));\n      }\n      let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri);\n      if (baseUriMatch) {\n        return fromBase64(text.substr(baseUriMatch[0].length));\n      }\n      let encoding = text.slice(\"data:application/json;\".length);\n      encoding = encoding.slice(0, encoding.indexOf(\",\"));\n      throw new Error(\"Unsupported source map encoding \" + encoding);\n    }\n    getAnnotationURL(sourceMapString) {\n      return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n    }\n    isMap(map) {\n      if (typeof map !== \"object\") return false;\n      return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n    }\n    loadAnnotation(css) {\n      let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g);\n      if (!comments) return;\n      let start = css.lastIndexOf(comments.pop());\n      let end = css.indexOf(\"*/\", start);\n      if (start > -1 && end > -1) {\n        this.annotation = this.getAnnotationURL(css.substring(start, end));\n      }\n    }\n    loadFile(path) {\n      this.root = dirname(path);\n      if (existsSync(path)) {\n        this.mapFile = path;\n        return readFileSync(path, \"utf-8\").toString().trim();\n      }\n    }\n    loadMap(file, prev) {\n      if (prev === false) return false;\n      if (prev) {\n        if (typeof prev === \"string\") {\n          return prev;\n        } else if (typeof prev === \"function\") {\n          let prevPath = prev(file);\n          if (prevPath) {\n            let map = this.loadFile(prevPath);\n            if (!map) {\n              throw new Error(\n                \"Unable to load previous source map: \" + prevPath.toString()\n              );\n            }\n            return map;\n          }\n        } else if (prev instanceof SourceMapConsumer) {\n          return SourceMapGenerator.fromSourceMap(prev).toString();\n        } else if (prev instanceof SourceMapGenerator) {\n          return prev.toString();\n        } else if (this.isMap(prev)) {\n          return JSON.stringify(prev);\n        } else {\n          throw new Error(\n            \"Unsupported previous source map format: \" + prev.toString()\n          );\n        }\n      } else if (this.inline) {\n        return this.decodeInline(this.annotation);\n      } else if (this.annotation) {\n        let map = this.annotation;\n        if (file) map = join(dirname(file), map);\n        return this.loadFile(map);\n      }\n    }\n    startWith(string, start) {\n      if (!string) return false;\n      return string.substr(0, start.length) === start;\n    }\n    withContent() {\n      return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n    }\n  }\n  previousMap = PreviousMap;\n  PreviousMap.default = PreviousMap;\n  return previousMap;\n}\nvar input;\nvar hasRequiredInput;\nfunction requireInput() {\n  if (hasRequiredInput) return input;\n  hasRequiredInput = 1;\n  let { nanoid } = /* @__PURE__ */ requireNonSecure();\n  let { isAbsolute, resolve } = require$$2;\n  let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n  let { fileURLToPath, pathToFileURL } = require$$2;\n  let CssSyntaxError = requireCssSyntaxError();\n  let PreviousMap = requirePreviousMap();\n  let terminalHighlight = require$$2;\n  let lineToIndexCache = Symbol(\"lineToIndexCache\");\n  let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n  let pathAvailable = Boolean(resolve && isAbsolute);\n  function getLineToIndex(input2) {\n    if (input2[lineToIndexCache]) return input2[lineToIndexCache];\n    let lines = input2.css.split(\"\\n\");\n    let lineToIndex = new Array(lines.length);\n    let prevIndex = 0;\n    for (let i = 0, l = lines.length; i < l; i++) {\n      lineToIndex[i] = prevIndex;\n      prevIndex += lines[i].length + 1;\n    }\n    input2[lineToIndexCache] = lineToIndex;\n    return lineToIndex;\n  }\n  class Input {\n    get from() {\n      return this.file || this.id;\n    }\n    constructor(css, opts = {}) {\n      if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n        throw new Error(`PostCSS received ${css} instead of CSS string`);\n      }\n      this.css = css.toString();\n      if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n        this.hasBOM = true;\n        this.css = this.css.slice(1);\n      } else {\n        this.hasBOM = false;\n      }\n      this.document = this.css;\n      if (opts.document) this.document = opts.document.toString();\n      if (opts.from) {\n        if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n          this.file = opts.from;\n        } else {\n          this.file = resolve(opts.from);\n        }\n      }\n      if (pathAvailable && sourceMapAvailable) {\n        let map = new PreviousMap(this.css, opts);\n        if (map.text) {\n          this.map = map;\n          let file = map.consumer().file;\n          if (!this.file && file) this.file = this.mapResolve(file);\n        }\n      }\n      if (!this.file) {\n        this.id = \"<input css \" + nanoid(6) + \">\";\n      }\n      if (this.map) this.map.file = this.from;\n    }\n    error(message, line, column, opts = {}) {\n      let endColumn, endLine, endOffset, offset, result2;\n      if (line && typeof line === \"object\") {\n        let start = line;\n        let end = column;\n        if (typeof start.offset === \"number\") {\n          offset = start.offset;\n          let pos = this.fromOffset(offset);\n          line = pos.line;\n          column = pos.col;\n        } else {\n          line = start.line;\n          column = start.column;\n          offset = this.fromLineAndColumn(line, column);\n        }\n        if (typeof end.offset === \"number\") {\n          endOffset = end.offset;\n          let pos = this.fromOffset(endOffset);\n          endLine = pos.line;\n          endColumn = pos.col;\n        } else {\n          endLine = end.line;\n          endColumn = end.column;\n          endOffset = this.fromLineAndColumn(end.line, end.column);\n        }\n      } else if (!column) {\n        offset = line;\n        let pos = this.fromOffset(offset);\n        line = pos.line;\n        column = pos.col;\n      } else {\n        offset = this.fromLineAndColumn(line, column);\n      }\n      let origin = this.origin(line, column, endLine, endColumn);\n      if (origin) {\n        result2 = new CssSyntaxError(\n          message,\n          origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n          origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n          origin.source,\n          origin.file,\n          opts.plugin\n        );\n      } else {\n        result2 = new CssSyntaxError(\n          message,\n          endLine === void 0 ? line : { column, line },\n          endLine === void 0 ? column : { column: endColumn, line: endLine },\n          this.css,\n          this.file,\n          opts.plugin\n        );\n      }\n      result2.input = {\n        column,\n        endColumn,\n        endLine,\n        endOffset,\n        line,\n        offset,\n        source: this.css\n      };\n      if (this.file) {\n        if (pathToFileURL) {\n          result2.input.url = pathToFileURL(this.file).toString();\n        }\n        result2.input.file = this.file;\n      }\n      return result2;\n    }\n    fromLineAndColumn(line, column) {\n      let lineToIndex = getLineToIndex(this);\n      let index2 = lineToIndex[line - 1];\n      return index2 + column - 1;\n    }\n    fromOffset(offset) {\n      let lineToIndex = getLineToIndex(this);\n      let lastLine = lineToIndex[lineToIndex.length - 1];\n      let min = 0;\n      if (offset >= lastLine) {\n        min = lineToIndex.length - 1;\n      } else {\n        let max = lineToIndex.length - 2;\n        let mid;\n        while (min < max) {\n          mid = min + (max - min >> 1);\n          if (offset < lineToIndex[mid]) {\n            max = mid - 1;\n          } else if (offset >= lineToIndex[mid + 1]) {\n            min = mid + 1;\n          } else {\n            min = mid;\n            break;\n          }\n        }\n      }\n      return {\n        col: offset - lineToIndex[min] + 1,\n        line: min + 1\n      };\n    }\n    mapResolve(file) {\n      if (/^\\w+:\\/\\//.test(file)) {\n        return file;\n      }\n      return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n    }\n    origin(line, column, endLine, endColumn) {\n      if (!this.map) return false;\n      let consumer = this.map.consumer();\n      let from = consumer.originalPositionFor({ column, line });\n      if (!from.source) return false;\n      let to;\n      if (typeof endLine === \"number\") {\n        to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n      }\n      let fromUrl;\n      if (isAbsolute(from.source)) {\n        fromUrl = pathToFileURL(from.source);\n      } else {\n        fromUrl = new URL(\n          from.source,\n          this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n        );\n      }\n      let result2 = {\n        column: from.column,\n        endColumn: to && to.column,\n        endLine: to && to.line,\n        line: from.line,\n        url: fromUrl.toString()\n      };\n      if (fromUrl.protocol === \"file:\") {\n        if (fileURLToPath) {\n          result2.file = fileURLToPath(fromUrl);\n        } else {\n          throw new Error(`file: protocol is not available in this PostCSS build`);\n        }\n      }\n      let source = consumer.sourceContentFor(from.source);\n      if (source) result2.source = source;\n      return result2;\n    }\n    toJSON() {\n      let json = {};\n      for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n        if (this[name] != null) {\n          json[name] = this[name];\n        }\n      }\n      if (this.map) {\n        json.map = { ...this.map };\n        if (json.map.consumerCache) {\n          json.map.consumerCache = void 0;\n        }\n      }\n      return json;\n    }\n  }\n  input = Input;\n  Input.default = Input;\n  if (terminalHighlight && terminalHighlight.registerInput) {\n    terminalHighlight.registerInput(Input);\n  }\n  return input;\n}\nvar root;\nvar hasRequiredRoot;\nfunction requireRoot() {\n  if (hasRequiredRoot) return root;\n  hasRequiredRoot = 1;\n  let Container = requireContainer();\n  let LazyResult, Processor;\n  class Root extends Container {\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"root\";\n      if (!this.nodes) this.nodes = [];\n    }\n    normalize(child, sample, type) {\n      let nodes = super.normalize(child);\n      if (sample) {\n        if (type === \"prepend\") {\n          if (this.nodes.length > 1) {\n            sample.raws.before = this.nodes[1].raws.before;\n          } else {\n            delete sample.raws.before;\n          }\n        } else if (this.first !== sample) {\n          for (let node2 of nodes) {\n            node2.raws.before = sample.raws.before;\n          }\n        }\n      }\n      return nodes;\n    }\n    removeChild(child, ignore) {\n      let index2 = this.index(child);\n      if (!ignore && index2 === 0 && this.nodes.length > 1) {\n        this.nodes[1].raws.before = this.nodes[index2].raws.before;\n      }\n      return super.removeChild(child);\n    }\n    toResult(opts = {}) {\n      let lazy = new LazyResult(new Processor(), this, opts);\n      return lazy.stringify();\n    }\n  }\n  Root.registerLazyResult = (dependant) => {\n    LazyResult = dependant;\n  };\n  Root.registerProcessor = (dependant) => {\n    Processor = dependant;\n  };\n  root = Root;\n  Root.default = Root;\n  Container.registerRoot(Root);\n  return root;\n}\nvar list_1;\nvar hasRequiredList;\nfunction requireList() {\n  if (hasRequiredList) return list_1;\n  hasRequiredList = 1;\n  let list = {\n    comma(string) {\n      return list.split(string, [\",\"], true);\n    },\n    space(string) {\n      let spaces = [\" \", \"\\n\", \"\t\"];\n      return list.split(string, spaces);\n    },\n    split(string, separators, last) {\n      let array = [];\n      let current = \"\";\n      let split = false;\n      let func = 0;\n      let inQuote = false;\n      let prevQuote = \"\";\n      let escape = false;\n      for (let letter of string) {\n        if (escape) {\n          escape = false;\n        } else if (letter === \"\\\\\") {\n          escape = true;\n        } else if (inQuote) {\n          if (letter === prevQuote) {\n            inQuote = false;\n          }\n        } else if (letter === '\"' || letter === \"'\") {\n          inQuote = true;\n          prevQuote = letter;\n        } else if (letter === \"(\") {\n          func += 1;\n        } else if (letter === \")\") {\n          if (func > 0) func -= 1;\n        } else if (func === 0) {\n          if (separators.includes(letter)) split = true;\n        }\n        if (split) {\n          if (current !== \"\") array.push(current.trim());\n          current = \"\";\n          split = false;\n        } else {\n          current += letter;\n        }\n      }\n      if (last || current !== \"\") array.push(current.trim());\n      return array;\n    }\n  };\n  list_1 = list;\n  list.default = list;\n  return list_1;\n}\nvar rule;\nvar hasRequiredRule;\nfunction requireRule() {\n  if (hasRequiredRule) return rule;\n  hasRequiredRule = 1;\n  let Container = requireContainer();\n  let list = requireList();\n  class Rule extends Container {\n    get selectors() {\n      return list.comma(this.selector);\n    }\n    set selectors(values) {\n      let match = this.selector ? this.selector.match(/,\\s*/) : null;\n      let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n      this.selector = values.join(sep);\n    }\n    constructor(defaults) {\n      super(defaults);\n      this.type = \"rule\";\n      if (!this.nodes) this.nodes = [];\n    }\n  }\n  rule = Rule;\n  Rule.default = Rule;\n  Container.registerRule(Rule);\n  return rule;\n}\nvar fromJSON_1;\nvar hasRequiredFromJSON;\nfunction requireFromJSON() {\n  if (hasRequiredFromJSON) return fromJSON_1;\n  hasRequiredFromJSON = 1;\n  let AtRule = requireAtRule();\n  let Comment = requireComment();\n  let Declaration = requireDeclaration();\n  let Input = requireInput();\n  let PreviousMap = requirePreviousMap();\n  let Root = requireRoot();\n  let Rule = requireRule();\n  function fromJSON(json, inputs) {\n    if (Array.isArray(json)) return json.map((n) => fromJSON(n));\n    let { inputs: ownInputs, ...defaults } = json;\n    if (ownInputs) {\n      inputs = [];\n      for (let input2 of ownInputs) {\n        let inputHydrated = { ...input2, __proto__: Input.prototype };\n        if (inputHydrated.map) {\n          inputHydrated.map = {\n            ...inputHydrated.map,\n            __proto__: PreviousMap.prototype\n          };\n        }\n        inputs.push(inputHydrated);\n      }\n    }\n    if (defaults.nodes) {\n      defaults.nodes = json.nodes.map((n) => fromJSON(n, inputs));\n    }\n    if (defaults.source) {\n      let { inputId, ...source } = defaults.source;\n      defaults.source = source;\n      if (inputId != null) {\n        defaults.source.input = inputs[inputId];\n      }\n    }\n    if (defaults.type === \"root\") {\n      return new Root(defaults);\n    } else if (defaults.type === \"decl\") {\n      return new Declaration(defaults);\n    } else if (defaults.type === \"rule\") {\n      return new Rule(defaults);\n    } else if (defaults.type === \"comment\") {\n      return new Comment(defaults);\n    } else if (defaults.type === \"atrule\") {\n      return new AtRule(defaults);\n    } else {\n      throw new Error(\"Unknown node type: \" + json.type);\n    }\n  }\n  fromJSON_1 = fromJSON;\n  fromJSON.default = fromJSON;\n  return fromJSON_1;\n}\nvar mapGenerator;\nvar hasRequiredMapGenerator;\nfunction requireMapGenerator() {\n  if (hasRequiredMapGenerator) return mapGenerator;\n  hasRequiredMapGenerator = 1;\n  let { dirname, relative, resolve, sep } = require$$2;\n  let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n  let { pathToFileURL } = require$$2;\n  let Input = requireInput();\n  let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n  let pathAvailable = Boolean(dirname && resolve && relative && sep);\n  class MapGenerator {\n    constructor(stringify, root2, opts, cssString) {\n      this.stringify = stringify;\n      this.mapOpts = opts.map || {};\n      this.root = root2;\n      this.opts = opts;\n      this.css = cssString;\n      this.originalCSS = cssString;\n      this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n      this.memoizedFileURLs = /* @__PURE__ */ new Map();\n      this.memoizedPaths = /* @__PURE__ */ new Map();\n      this.memoizedURLs = /* @__PURE__ */ new Map();\n    }\n    addAnnotation() {\n      let content;\n      if (this.isInline()) {\n        content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n      } else if (typeof this.mapOpts.annotation === \"string\") {\n        content = this.mapOpts.annotation;\n      } else if (typeof this.mapOpts.annotation === \"function\") {\n        content = this.mapOpts.annotation(this.opts.to, this.root);\n      } else {\n        content = this.outputFile() + \".map\";\n      }\n      let eol = \"\\n\";\n      if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n      this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n    }\n    applyPrevMaps() {\n      for (let prev of this.previous()) {\n        let from = this.toUrl(this.path(prev.file));\n        let root2 = prev.root || dirname(prev.file);\n        let map;\n        if (this.mapOpts.sourcesContent === false) {\n          map = new SourceMapConsumer(prev.text);\n          if (map.sourcesContent) {\n            map.sourcesContent = null;\n          }\n        } else {\n          map = prev.consumer();\n        }\n        this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n      }\n    }\n    clearAnnotation() {\n      if (this.mapOpts.annotation === false) return;\n      if (this.root) {\n        let node2;\n        for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n          node2 = this.root.nodes[i];\n          if (node2.type !== \"comment\") continue;\n          if (node2.text.startsWith(\"# sourceMappingURL=\")) {\n            this.root.removeChild(i);\n          }\n        }\n      } else if (this.css) {\n        let startIndex;\n        while ((startIndex = this.css.lastIndexOf(\"/*#\")) !== -1) {\n          let endIndex = this.css.indexOf(\"*/\", startIndex + 3);\n          if (endIndex === -1) break;\n          while (startIndex > 0 && this.css[startIndex - 1] === \"\\n\") {\n            startIndex--;\n          }\n          this.css = this.css.slice(0, startIndex) + this.css.slice(endIndex + 2);\n        }\n      }\n    }\n    generate() {\n      this.clearAnnotation();\n      if (pathAvailable && sourceMapAvailable && this.isMap()) {\n        return this.generateMap();\n      } else {\n        let result2 = \"\";\n        this.stringify(this.root, (i) => {\n          result2 += i;\n        });\n        return [result2];\n      }\n    }\n    generateMap() {\n      if (this.root) {\n        this.generateString();\n      } else if (this.previous().length === 1) {\n        let prev = this.previous()[0].consumer();\n        prev.file = this.outputFile();\n        this.map = SourceMapGenerator.fromSourceMap(prev, {\n          ignoreInvalidMapping: true\n        });\n      } else {\n        this.map = new SourceMapGenerator({\n          file: this.outputFile(),\n          ignoreInvalidMapping: true\n        });\n        this.map.addMapping({\n          generated: { column: 0, line: 1 },\n          original: { column: 0, line: 1 },\n          source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n        });\n      }\n      if (this.isSourcesContent()) this.setSourcesContent();\n      if (this.root && this.previous().length > 0) this.applyPrevMaps();\n      if (this.isAnnotation()) this.addAnnotation();\n      if (this.isInline()) {\n        return [this.css];\n      } else {\n        return [this.css, this.map];\n      }\n    }\n    generateString() {\n      this.css = \"\";\n      this.map = new SourceMapGenerator({\n        file: this.outputFile(),\n        ignoreInvalidMapping: true\n      });\n      let line = 1;\n      let column = 1;\n      let noSource = \"<no source>\";\n      let mapping = {\n        generated: { column: 0, line: 0 },\n        original: { column: 0, line: 0 },\n        source: \"\"\n      };\n      let last, lines;\n      this.stringify(this.root, (str, node2, type) => {\n        this.css += str;\n        if (node2 && type !== \"end\") {\n          mapping.generated.line = line;\n          mapping.generated.column = column - 1;\n          if (node2.source && node2.source.start) {\n            mapping.source = this.sourcePath(node2);\n            mapping.original.line = node2.source.start.line;\n            mapping.original.column = node2.source.start.column - 1;\n            this.map.addMapping(mapping);\n          } else {\n            mapping.source = noSource;\n            mapping.original.line = 1;\n            mapping.original.column = 0;\n            this.map.addMapping(mapping);\n          }\n        }\n        lines = str.match(/\\n/g);\n        if (lines) {\n          line += lines.length;\n          last = str.lastIndexOf(\"\\n\");\n          column = str.length - last;\n        } else {\n          column += str.length;\n        }\n        if (node2 && type !== \"start\") {\n          let p = node2.parent || { raws: {} };\n          let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n          if (!childless || node2 !== p.last || p.raws.semicolon) {\n            if (node2.source && node2.source.end) {\n              mapping.source = this.sourcePath(node2);\n              mapping.original.line = node2.source.end.line;\n              mapping.original.column = node2.source.end.column - 1;\n              mapping.generated.line = line;\n              mapping.generated.column = column - 2;\n              this.map.addMapping(mapping);\n            } else {\n              mapping.source = noSource;\n              mapping.original.line = 1;\n              mapping.original.column = 0;\n              mapping.generated.line = line;\n              mapping.generated.column = column - 1;\n              this.map.addMapping(mapping);\n            }\n          }\n        }\n      });\n    }\n    isAnnotation() {\n      if (this.isInline()) {\n        return true;\n      }\n      if (typeof this.mapOpts.annotation !== \"undefined\") {\n        return this.mapOpts.annotation;\n      }\n      if (this.previous().length) {\n        return this.previous().some((i) => i.annotation);\n      }\n      return true;\n    }\n    isInline() {\n      if (typeof this.mapOpts.inline !== \"undefined\") {\n        return this.mapOpts.inline;\n      }\n      let annotation = this.mapOpts.annotation;\n      if (typeof annotation !== \"undefined\" && annotation !== true) {\n        return false;\n      }\n      if (this.previous().length) {\n        return this.previous().some((i) => i.inline);\n      }\n      return true;\n    }\n    isMap() {\n      if (typeof this.opts.map !== \"undefined\") {\n        return !!this.opts.map;\n      }\n      return this.previous().length > 0;\n    }\n    isSourcesContent() {\n      if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n        return this.mapOpts.sourcesContent;\n      }\n      if (this.previous().length) {\n        return this.previous().some((i) => i.withContent());\n      }\n      return true;\n    }\n    outputFile() {\n      if (this.opts.to) {\n        return this.path(this.opts.to);\n      } else if (this.opts.from) {\n        return this.path(this.opts.from);\n      } else {\n        return \"to.css\";\n      }\n    }\n    path(file) {\n      if (this.mapOpts.absolute) return file;\n      if (file.charCodeAt(0) === 60) return file;\n      if (/^\\w+:\\/\\//.test(file)) return file;\n      let cached = this.memoizedPaths.get(file);\n      if (cached) return cached;\n      let from = this.opts.to ? dirname(this.opts.to) : \".\";\n      if (typeof this.mapOpts.annotation === \"string\") {\n        from = dirname(resolve(from, this.mapOpts.annotation));\n      }\n      let path = relative(from, file);\n      this.memoizedPaths.set(file, path);\n      return path;\n    }\n    previous() {\n      if (!this.previousMaps) {\n        this.previousMaps = [];\n        if (this.root) {\n          this.root.walk((node2) => {\n            if (node2.source && node2.source.input.map) {\n              let map = node2.source.input.map;\n              if (!this.previousMaps.includes(map)) {\n                this.previousMaps.push(map);\n              }\n            }\n          });\n        } else {\n          let input2 = new Input(this.originalCSS, this.opts);\n          if (input2.map) this.previousMaps.push(input2.map);\n        }\n      }\n      return this.previousMaps;\n    }\n    setSourcesContent() {\n      let already = {};\n      if (this.root) {\n        this.root.walk((node2) => {\n          if (node2.source) {\n            let from = node2.source.input.from;\n            if (from && !already[from]) {\n              already[from] = true;\n              let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n              this.map.setSourceContent(fromUrl, node2.source.input.css);\n            }\n          }\n        });\n      } else if (this.css) {\n        let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n        this.map.setSourceContent(from, this.css);\n      }\n    }\n    sourcePath(node2) {\n      if (this.mapOpts.from) {\n        return this.toUrl(this.mapOpts.from);\n      } else if (this.usesFileUrls) {\n        return this.toFileUrl(node2.source.input.from);\n      } else {\n        return this.toUrl(this.path(node2.source.input.from));\n      }\n    }\n    toBase64(str) {\n      if (Buffer) {\n        return Buffer.from(str).toString(\"base64\");\n      } else {\n        return window.btoa(unescape(encodeURIComponent(str)));\n      }\n    }\n    toFileUrl(path) {\n      let cached = this.memoizedFileURLs.get(path);\n      if (cached) return cached;\n      if (pathToFileURL) {\n        let fileURL = pathToFileURL(path).toString();\n        this.memoizedFileURLs.set(path, fileURL);\n        return fileURL;\n      } else {\n        throw new Error(\n          \"`map.absolute` option is not available in this PostCSS build\"\n        );\n      }\n    }\n    toUrl(path) {\n      let cached = this.memoizedURLs.get(path);\n      if (cached) return cached;\n      if (sep === \"\\\\\") {\n        path = path.replace(/\\\\/g, \"/\");\n      }\n      let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n      this.memoizedURLs.set(path, url);\n      return url;\n    }\n  }\n  mapGenerator = MapGenerator;\n  return mapGenerator;\n}\nvar tokenize;\nvar hasRequiredTokenize;\nfunction requireTokenize() {\n  if (hasRequiredTokenize) return tokenize;\n  hasRequiredTokenize = 1;\n  const SINGLE_QUOTE = \"'\".charCodeAt(0);\n  const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n  const BACKSLASH = \"\\\\\".charCodeAt(0);\n  const SLASH = \"/\".charCodeAt(0);\n  const NEWLINE = \"\\n\".charCodeAt(0);\n  const SPACE = \" \".charCodeAt(0);\n  const FEED = \"\\f\".charCodeAt(0);\n  const TAB = \"\t\".charCodeAt(0);\n  const CR = \"\\r\".charCodeAt(0);\n  const OPEN_SQUARE = \"[\".charCodeAt(0);\n  const CLOSE_SQUARE = \"]\".charCodeAt(0);\n  const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n  const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n  const OPEN_CURLY = \"{\".charCodeAt(0);\n  const CLOSE_CURLY = \"}\".charCodeAt(0);\n  const SEMICOLON = \";\".charCodeAt(0);\n  const ASTERISK = \"*\".charCodeAt(0);\n  const COLON = \":\".charCodeAt(0);\n  const AT = \"@\".charCodeAt(0);\n  const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n  const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n  const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n  const RE_HEX_ESCAPE = /[\\da-f]/i;\n  tokenize = function tokenizer(input2, options = {}) {\n    let css = input2.css.valueOf();\n    let ignore = options.ignoreErrors;\n    let code, content, escape, next, quote;\n    let currentToken, escaped, escapePos, n, prev;\n    let length = css.length;\n    let pos = 0;\n    let buffer = [];\n    let returned = [];\n    function position() {\n      return pos;\n    }\n    function unclosed(what) {\n      throw input2.error(\"Unclosed \" + what, pos);\n    }\n    function endOfFile() {\n      return returned.length === 0 && pos >= length;\n    }\n    function nextToken(opts) {\n      if (returned.length) return returned.pop();\n      if (pos >= length) return;\n      let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n      code = css.charCodeAt(pos);\n      switch (code) {\n        case NEWLINE:\n        case SPACE:\n        case TAB:\n        case CR:\n        case FEED: {\n          next = pos;\n          do {\n            next += 1;\n            code = css.charCodeAt(next);\n          } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n          currentToken = [\"space\", css.slice(pos, next)];\n          pos = next - 1;\n          break;\n        }\n        case OPEN_SQUARE:\n        case CLOSE_SQUARE:\n        case OPEN_CURLY:\n        case CLOSE_CURLY:\n        case COLON:\n        case SEMICOLON:\n        case CLOSE_PARENTHESES: {\n          let controlChar = String.fromCharCode(code);\n          currentToken = [controlChar, controlChar, pos];\n          break;\n        }\n        case OPEN_PARENTHESES: {\n          prev = buffer.length ? buffer.pop()[1] : \"\";\n          n = css.charCodeAt(pos + 1);\n          if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n            next = pos;\n            do {\n              escaped = false;\n              next = css.indexOf(\")\", next + 1);\n              if (next === -1) {\n                if (ignore || ignoreUnclosed) {\n                  next = pos;\n                  break;\n                } else {\n                  unclosed(\"bracket\");\n                }\n              }\n              escapePos = next;\n              while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n                escapePos -= 1;\n                escaped = !escaped;\n              }\n            } while (escaped);\n            currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n            pos = next;\n          } else {\n            next = css.indexOf(\")\", pos + 1);\n            content = css.slice(pos, next + 1);\n            if (next === -1 || RE_BAD_BRACKET.test(content)) {\n              currentToken = [\"(\", \"(\", pos];\n            } else {\n              currentToken = [\"brackets\", content, pos, next];\n              pos = next;\n            }\n          }\n          break;\n        }\n        case SINGLE_QUOTE:\n        case DOUBLE_QUOTE: {\n          quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n          next = pos;\n          do {\n            escaped = false;\n            next = css.indexOf(quote, next + 1);\n            if (next === -1) {\n              if (ignore || ignoreUnclosed) {\n                next = pos + 1;\n                break;\n              } else {\n                unclosed(\"string\");\n              }\n            }\n            escapePos = next;\n            while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n              escapePos -= 1;\n              escaped = !escaped;\n            }\n          } while (escaped);\n          currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n          pos = next;\n          break;\n        }\n        case AT: {\n          RE_AT_END.lastIndex = pos + 1;\n          RE_AT_END.test(css);\n          if (RE_AT_END.lastIndex === 0) {\n            next = css.length - 1;\n          } else {\n            next = RE_AT_END.lastIndex - 2;\n          }\n          currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n          pos = next;\n          break;\n        }\n        case BACKSLASH: {\n          next = pos;\n          escape = true;\n          while (css.charCodeAt(next + 1) === BACKSLASH) {\n            next += 1;\n            escape = !escape;\n          }\n          code = css.charCodeAt(next + 1);\n          if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n            next += 1;\n            if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n              while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n                next += 1;\n              }\n              if (css.charCodeAt(next + 1) === SPACE) {\n                next += 1;\n              }\n            }\n          }\n          currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n          pos = next;\n          break;\n        }\n        default: {\n          if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n            next = css.indexOf(\"*/\", pos + 2) + 1;\n            if (next === 0) {\n              if (ignore || ignoreUnclosed) {\n                next = css.length;\n              } else {\n                unclosed(\"comment\");\n              }\n            }\n            currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n            pos = next;\n          } else {\n            RE_WORD_END.lastIndex = pos + 1;\n            RE_WORD_END.test(css);\n            if (RE_WORD_END.lastIndex === 0) {\n              next = css.length - 1;\n            } else {\n              next = RE_WORD_END.lastIndex - 2;\n            }\n            currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n            buffer.push(currentToken);\n            pos = next;\n          }\n          break;\n        }\n      }\n      pos++;\n      return currentToken;\n    }\n    function back(token) {\n      returned.push(token);\n    }\n    return {\n      back,\n      endOfFile,\n      nextToken,\n      position\n    };\n  };\n  return tokenize;\n}\nvar parser;\nvar hasRequiredParser;\nfunction requireParser() {\n  if (hasRequiredParser) return parser;\n  hasRequiredParser = 1;\n  let AtRule = requireAtRule();\n  let Comment = requireComment();\n  let Declaration = requireDeclaration();\n  let Root = requireRoot();\n  let Rule = requireRule();\n  let tokenizer = requireTokenize();\n  const SAFE_COMMENT_NEIGHBOR = {\n    empty: true,\n    space: true\n  };\n  function findLastWithPosition(tokens) {\n    for (let i = tokens.length - 1; i >= 0; i--) {\n      let token = tokens[i];\n      let pos = token[3] || token[2];\n      if (pos) return pos;\n    }\n  }\n  class Parser {\n    constructor(input2) {\n      this.input = input2;\n      this.root = new Root();\n      this.current = this.root;\n      this.spaces = \"\";\n      this.semicolon = false;\n      this.createTokenizer();\n      this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n    }\n    atrule(token) {\n      let node2 = new AtRule();\n      node2.name = token[1].slice(1);\n      if (node2.name === \"\") {\n        this.unnamedAtrule(node2, token);\n      }\n      this.init(node2, token[2]);\n      let type;\n      let prev;\n      let shift;\n      let last = false;\n      let open = false;\n      let params = [];\n      let brackets = [];\n      while (!this.tokenizer.endOfFile()) {\n        token = this.tokenizer.nextToken();\n        type = token[0];\n        if (type === \"(\" || type === \"[\") {\n          brackets.push(type === \"(\" ? \")\" : \"]\");\n        } else if (type === \"{\" && brackets.length > 0) {\n          brackets.push(\"}\");\n        } else if (type === brackets[brackets.length - 1]) {\n          brackets.pop();\n        }\n        if (brackets.length === 0) {\n          if (type === \";\") {\n            node2.source.end = this.getPosition(token[2]);\n            node2.source.end.offset++;\n            this.semicolon = true;\n            break;\n          } else if (type === \"{\") {\n            open = true;\n            break;\n          } else if (type === \"}\") {\n            if (params.length > 0) {\n              shift = params.length - 1;\n              prev = params[shift];\n              while (prev && prev[0] === \"space\") {\n                prev = params[--shift];\n              }\n              if (prev) {\n                node2.source.end = this.getPosition(prev[3] || prev[2]);\n                node2.source.end.offset++;\n              }\n            }\n            this.end(token);\n            break;\n          } else {\n            params.push(token);\n          }\n        } else {\n          params.push(token);\n        }\n        if (this.tokenizer.endOfFile()) {\n          last = true;\n          break;\n        }\n      }\n      node2.raws.between = this.spacesAndCommentsFromEnd(params);\n      if (params.length) {\n        node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n        this.raw(node2, \"params\", params);\n        if (last) {\n          token = params[params.length - 1];\n          node2.source.end = this.getPosition(token[3] || token[2]);\n          node2.source.end.offset++;\n          this.spaces = node2.raws.between;\n          node2.raws.between = \"\";\n        }\n      } else {\n        node2.raws.afterName = \"\";\n        node2.params = \"\";\n      }\n      if (open) {\n        node2.nodes = [];\n        this.current = node2;\n      }\n    }\n    checkMissedSemicolon(tokens) {\n      let colon = this.colon(tokens);\n      if (colon === false) return;\n      let founded = 0;\n      let token;\n      for (let j = colon - 1; j >= 0; j--) {\n        token = tokens[j];\n        if (token[0] !== \"space\") {\n          founded += 1;\n          if (founded === 2) break;\n        }\n      }\n      throw this.input.error(\n        \"Missed semicolon\",\n        token[0] === \"word\" ? token[3] + 1 : token[2]\n      );\n    }\n    colon(tokens) {\n      let brackets = 0;\n      let prev, token, type;\n      for (let [i, element] of tokens.entries()) {\n        token = element;\n        type = token[0];\n        if (type === \"(\") {\n          brackets += 1;\n        }\n        if (type === \")\") {\n          brackets -= 1;\n        }\n        if (brackets === 0 && type === \":\") {\n          if (!prev) {\n            this.doubleColon(token);\n          } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n            continue;\n          } else {\n            return i;\n          }\n        }\n        prev = token;\n      }\n      return false;\n    }\n    comment(token) {\n      let node2 = new Comment();\n      this.init(node2, token[2]);\n      node2.source.end = this.getPosition(token[3] || token[2]);\n      node2.source.end.offset++;\n      let text = token[1].slice(2, -2);\n      if (!text.trim()) {\n        node2.text = \"\";\n        node2.raws.left = text;\n        node2.raws.right = \"\";\n      } else {\n        let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n        node2.text = match[2];\n        node2.raws.left = match[1];\n        node2.raws.right = match[3];\n      }\n    }\n    createTokenizer() {\n      this.tokenizer = tokenizer(this.input);\n    }\n    decl(tokens, customProperty) {\n      let node2 = new Declaration();\n      this.init(node2, tokens[0][2]);\n      let last = tokens[tokens.length - 1];\n      if (last[0] === \";\") {\n        this.semicolon = true;\n        tokens.pop();\n      }\n      node2.source.end = this.getPosition(\n        last[3] || last[2] || findLastWithPosition(tokens)\n      );\n      node2.source.end.offset++;\n      while (tokens[0][0] !== \"word\") {\n        if (tokens.length === 1) this.unknownWord(tokens);\n        node2.raws.before += tokens.shift()[1];\n      }\n      node2.source.start = this.getPosition(tokens[0][2]);\n      node2.prop = \"\";\n      while (tokens.length) {\n        let type = tokens[0][0];\n        if (type === \":\" || type === \"space\" || type === \"comment\") {\n          break;\n        }\n        node2.prop += tokens.shift()[1];\n      }\n      node2.raws.between = \"\";\n      let token;\n      while (tokens.length) {\n        token = tokens.shift();\n        if (token[0] === \":\") {\n          node2.raws.between += token[1];\n          break;\n        } else {\n          if (token[0] === \"word\" && /\\w/.test(token[1])) {\n            this.unknownWord([token]);\n          }\n          node2.raws.between += token[1];\n        }\n      }\n      if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n        node2.raws.before += node2.prop[0];\n        node2.prop = node2.prop.slice(1);\n      }\n      let firstSpaces = [];\n      let next;\n      while (tokens.length) {\n        next = tokens[0][0];\n        if (next !== \"space\" && next !== \"comment\") break;\n        firstSpaces.push(tokens.shift());\n      }\n      this.precheckMissedSemicolon(tokens);\n      for (let i = tokens.length - 1; i >= 0; i--) {\n        token = tokens[i];\n        if (token[1].toLowerCase() === \"!important\") {\n          node2.important = true;\n          let string = this.stringFrom(tokens, i);\n          string = this.spacesFromEnd(tokens) + string;\n          if (string !== \" !important\") node2.raws.important = string;\n          break;\n        } else if (token[1].toLowerCase() === \"important\") {\n          let cache = tokens.slice(0);\n          let str = \"\";\n          for (let j = i; j > 0; j--) {\n            let type = cache[j][0];\n            if (str.trim().startsWith(\"!\") && type !== \"space\") {\n              break;\n            }\n            str = cache.pop()[1] + str;\n          }\n          if (str.trim().startsWith(\"!\")) {\n            node2.important = true;\n            node2.raws.important = str;\n            tokens = cache;\n          }\n        }\n        if (token[0] !== \"space\" && token[0] !== \"comment\") {\n          break;\n        }\n      }\n      let hasWord = tokens.some((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n      if (hasWord) {\n        node2.raws.between += firstSpaces.map((i) => i[1]).join(\"\");\n        firstSpaces = [];\n      }\n      this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n      if (node2.value.includes(\":\") && !customProperty) {\n        this.checkMissedSemicolon(tokens);\n      }\n    }\n    doubleColon(token) {\n      throw this.input.error(\n        \"Double colon\",\n        { offset: token[2] },\n        { offset: token[2] + token[1].length }\n      );\n    }\n    emptyRule(token) {\n      let node2 = new Rule();\n      this.init(node2, token[2]);\n      node2.selector = \"\";\n      node2.raws.between = \"\";\n      this.current = node2;\n    }\n    end(token) {\n      if (this.current.nodes && this.current.nodes.length) {\n        this.current.raws.semicolon = this.semicolon;\n      }\n      this.semicolon = false;\n      this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n      this.spaces = \"\";\n      if (this.current.parent) {\n        this.current.source.end = this.getPosition(token[2]);\n        this.current.source.end.offset++;\n        this.current = this.current.parent;\n      } else {\n        this.unexpectedClose(token);\n      }\n    }\n    endFile() {\n      if (this.current.parent) this.unclosedBlock();\n      if (this.current.nodes && this.current.nodes.length) {\n        this.current.raws.semicolon = this.semicolon;\n      }\n      this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n      this.root.source.end = this.getPosition(this.tokenizer.position());\n    }\n    freeSemicolon(token) {\n      this.spaces += token[1];\n      if (this.current.nodes) {\n        let prev = this.current.nodes[this.current.nodes.length - 1];\n        if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n          prev.raws.ownSemicolon = this.spaces;\n          this.spaces = \"\";\n          prev.source.end = this.getPosition(token[2]);\n          prev.source.end.offset += prev.raws.ownSemicolon.length;\n        }\n      }\n    }\n    // Helpers\n    getPosition(offset) {\n      let pos = this.input.fromOffset(offset);\n      return {\n        column: pos.col,\n        line: pos.line,\n        offset\n      };\n    }\n    init(node2, offset) {\n      this.current.push(node2);\n      node2.source = {\n        input: this.input,\n        start: this.getPosition(offset)\n      };\n      node2.raws.before = this.spaces;\n      this.spaces = \"\";\n      if (node2.type !== \"comment\") this.semicolon = false;\n    }\n    other(start) {\n      let end = false;\n      let type = null;\n      let colon = false;\n      let bracket = null;\n      let brackets = [];\n      let customProperty = start[1].startsWith(\"--\");\n      let tokens = [];\n      let token = start;\n      while (token) {\n        type = token[0];\n        tokens.push(token);\n        if (type === \"(\" || type === \"[\") {\n          if (!bracket) bracket = token;\n          brackets.push(type === \"(\" ? \")\" : \"]\");\n        } else if (customProperty && colon && type === \"{\") {\n          if (!bracket) bracket = token;\n          brackets.push(\"}\");\n        } else if (brackets.length === 0) {\n          if (type === \";\") {\n            if (colon) {\n              this.decl(tokens, customProperty);\n              return;\n            } else {\n              break;\n            }\n          } else if (type === \"{\") {\n            this.rule(tokens);\n            return;\n          } else if (type === \"}\") {\n            this.tokenizer.back(tokens.pop());\n            end = true;\n            break;\n          } else if (type === \":\") {\n            colon = true;\n          }\n        } else if (type === brackets[brackets.length - 1]) {\n          brackets.pop();\n          if (brackets.length === 0) bracket = null;\n        }\n        token = this.tokenizer.nextToken();\n      }\n      if (this.tokenizer.endOfFile()) end = true;\n      if (brackets.length > 0) this.unclosedBracket(bracket);\n      if (end && colon) {\n        if (!customProperty) {\n          while (tokens.length) {\n            token = tokens[tokens.length - 1][0];\n            if (token !== \"space\" && token !== \"comment\") break;\n            this.tokenizer.back(tokens.pop());\n          }\n        }\n        this.decl(tokens, customProperty);\n      } else {\n        this.unknownWord(tokens);\n      }\n    }\n    parse() {\n      let token;\n      while (!this.tokenizer.endOfFile()) {\n        token = this.tokenizer.nextToken();\n        switch (token[0]) {\n          case \"space\":\n            this.spaces += token[1];\n            break;\n          case \";\":\n            this.freeSemicolon(token);\n            break;\n          case \"}\":\n            this.end(token);\n            break;\n          case \"comment\":\n            this.comment(token);\n            break;\n          case \"at-word\":\n            this.atrule(token);\n            break;\n          case \"{\":\n            this.emptyRule(token);\n            break;\n          default:\n            this.other(token);\n            break;\n        }\n      }\n      this.endFile();\n    }\n    precheckMissedSemicolon() {\n    }\n    raw(node2, prop, tokens, customProperty) {\n      let token, type;\n      let length = tokens.length;\n      let value = \"\";\n      let clean = true;\n      let next, prev;\n      for (let i = 0; i < length; i += 1) {\n        token = tokens[i];\n        type = token[0];\n        if (type === \"space\" && i === length - 1 && !customProperty) {\n          clean = false;\n        } else if (type === \"comment\") {\n          prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n          next = tokens[i + 1] ? tokens[i + 1][0] : \"empty\";\n          if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n            if (value.slice(-1) === \",\") {\n              clean = false;\n            } else {\n              value += token[1];\n            }\n          } else {\n            clean = false;\n          }\n        } else {\n          value += token[1];\n        }\n      }\n      if (!clean) {\n        let raw = tokens.reduce((all, i) => all + i[1], \"\");\n        node2.raws[prop] = { raw, value };\n      }\n      node2[prop] = value;\n    }\n    rule(tokens) {\n      tokens.pop();\n      let node2 = new Rule();\n      this.init(node2, tokens[0][2]);\n      node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n      this.raw(node2, \"selector\", tokens);\n      this.current = node2;\n    }\n    spacesAndCommentsFromEnd(tokens) {\n      let lastTokenType;\n      let spaces = \"\";\n      while (tokens.length) {\n        lastTokenType = tokens[tokens.length - 1][0];\n        if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n        spaces = tokens.pop()[1] + spaces;\n      }\n      return spaces;\n    }\n    // Errors\n    spacesAndCommentsFromStart(tokens) {\n      let next;\n      let spaces = \"\";\n      while (tokens.length) {\n        next = tokens[0][0];\n        if (next !== \"space\" && next !== \"comment\") break;\n        spaces += tokens.shift()[1];\n      }\n      return spaces;\n    }\n    spacesFromEnd(tokens) {\n      let lastTokenType;\n      let spaces = \"\";\n      while (tokens.length) {\n        lastTokenType = tokens[tokens.length - 1][0];\n        if (lastTokenType !== \"space\") break;\n        spaces = tokens.pop()[1] + spaces;\n      }\n      return spaces;\n    }\n    stringFrom(tokens, from) {\n      let result2 = \"\";\n      for (let i = from; i < tokens.length; i++) {\n        result2 += tokens[i][1];\n      }\n      tokens.splice(from, tokens.length - from);\n      return result2;\n    }\n    unclosedBlock() {\n      let pos = this.current.source.start;\n      throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n    }\n    unclosedBracket(bracket) {\n      throw this.input.error(\n        \"Unclosed bracket\",\n        { offset: bracket[2] },\n        { offset: bracket[2] + 1 }\n      );\n    }\n    unexpectedClose(token) {\n      throw this.input.error(\n        \"Unexpected }\",\n        { offset: token[2] },\n        { offset: token[2] + 1 }\n      );\n    }\n    unknownWord(tokens) {\n      throw this.input.error(\n        \"Unknown word \" + tokens[0][1],\n        { offset: tokens[0][2] },\n        { offset: tokens[0][2] + tokens[0][1].length }\n      );\n    }\n    unnamedAtrule(node2, token) {\n      throw this.input.error(\n        \"At-rule without name\",\n        { offset: token[2] },\n        { offset: token[2] + token[1].length }\n      );\n    }\n  }\n  parser = Parser;\n  return parser;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n  if (hasRequiredParse) return parse_1;\n  hasRequiredParse = 1;\n  let Container = requireContainer();\n  let Input = requireInput();\n  let Parser = requireParser();\n  function parse(css, opts) {\n    let input2 = new Input(css, opts);\n    let parser2 = new Parser(input2);\n    try {\n      parser2.parse();\n    } catch (e) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (e.name === \"CssSyntaxError\" && opts && opts.from) {\n          if (/\\.scss$/i.test(opts.from)) {\n            e.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n          } else if (/\\.sass/i.test(opts.from)) {\n            e.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n          } else if (/\\.less$/i.test(opts.from)) {\n            e.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n          }\n        }\n      }\n      throw e;\n    }\n    return parser2.root;\n  }\n  parse_1 = parse;\n  parse.default = parse;\n  Container.registerParse(parse);\n  return parse_1;\n}\nvar warning;\nvar hasRequiredWarning;\nfunction requireWarning() {\n  if (hasRequiredWarning) return warning;\n  hasRequiredWarning = 1;\n  class Warning {\n    constructor(text, opts = {}) {\n      this.type = \"warning\";\n      this.text = text;\n      if (opts.node && opts.node.source) {\n        let range = opts.node.rangeBy(opts);\n        this.line = range.start.line;\n        this.column = range.start.column;\n        this.endLine = range.end.line;\n        this.endColumn = range.end.column;\n      }\n      for (let opt in opts) this[opt] = opts[opt];\n    }\n    toString() {\n      if (this.node) {\n        return this.node.error(this.text, {\n          index: this.index,\n          plugin: this.plugin,\n          word: this.word\n        }).message;\n      }\n      if (this.plugin) {\n        return this.plugin + \": \" + this.text;\n      }\n      return this.text;\n    }\n  }\n  warning = Warning;\n  Warning.default = Warning;\n  return warning;\n}\nvar result;\nvar hasRequiredResult;\nfunction requireResult() {\n  if (hasRequiredResult) return result;\n  hasRequiredResult = 1;\n  let Warning = requireWarning();\n  class Result {\n    get content() {\n      return this.css;\n    }\n    constructor(processor2, root2, opts) {\n      this.processor = processor2;\n      this.messages = [];\n      this.root = root2;\n      this.opts = opts;\n      this.css = \"\";\n      this.map = void 0;\n    }\n    toString() {\n      return this.css;\n    }\n    warn(text, opts = {}) {\n      if (!opts.plugin) {\n        if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n          opts.plugin = this.lastPlugin.postcssPlugin;\n        }\n      }\n      let warning2 = new Warning(text, opts);\n      this.messages.push(warning2);\n      return warning2;\n    }\n    warnings() {\n      return this.messages.filter((i) => i.type === \"warning\");\n    }\n  }\n  result = Result;\n  Result.default = Result;\n  return result;\n}\nvar warnOnce;\nvar hasRequiredWarnOnce;\nfunction requireWarnOnce() {\n  if (hasRequiredWarnOnce) return warnOnce;\n  hasRequiredWarnOnce = 1;\n  let printed = {};\n  warnOnce = function warnOnce2(message) {\n    if (printed[message]) return;\n    printed[message] = true;\n    if (typeof console !== \"undefined\" && console.warn) {\n      console.warn(message);\n    }\n  };\n  return warnOnce;\n}\nvar lazyResult;\nvar hasRequiredLazyResult;\nfunction requireLazyResult() {\n  if (hasRequiredLazyResult) return lazyResult;\n  hasRequiredLazyResult = 1;\n  let Container = requireContainer();\n  let Document2 = requireDocument();\n  let MapGenerator = requireMapGenerator();\n  let parse = requireParse();\n  let Result = requireResult();\n  let Root = requireRoot();\n  let stringify = requireStringify();\n  let { isClean, my } = requireSymbols();\n  let warnOnce2 = requireWarnOnce();\n  const TYPE_TO_CLASS_NAME = {\n    atrule: \"AtRule\",\n    comment: \"Comment\",\n    decl: \"Declaration\",\n    document: \"Document\",\n    root: \"Root\",\n    rule: \"Rule\"\n  };\n  const PLUGIN_PROPS = {\n    AtRule: true,\n    AtRuleExit: true,\n    Comment: true,\n    CommentExit: true,\n    Declaration: true,\n    DeclarationExit: true,\n    Document: true,\n    DocumentExit: true,\n    Once: true,\n    OnceExit: true,\n    postcssPlugin: true,\n    prepare: true,\n    Root: true,\n    RootExit: true,\n    Rule: true,\n    RuleExit: true\n  };\n  const NOT_VISITORS = {\n    Once: true,\n    postcssPlugin: true,\n    prepare: true\n  };\n  const CHILDREN = 0;\n  function isPromise(obj) {\n    return typeof obj === \"object\" && typeof obj.then === \"function\";\n  }\n  function getEvents(node2) {\n    let key = false;\n    let type = TYPE_TO_CLASS_NAME[node2.type];\n    if (node2.type === \"decl\") {\n      key = node2.prop.toLowerCase();\n    } else if (node2.type === \"atrule\") {\n      key = node2.name.toLowerCase();\n    }\n    if (key && node2.append) {\n      return [\n        type,\n        type + \"-\" + key,\n        CHILDREN,\n        type + \"Exit\",\n        type + \"Exit-\" + key\n      ];\n    } else if (key) {\n      return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n    } else if (node2.append) {\n      return [type, CHILDREN, type + \"Exit\"];\n    } else {\n      return [type, type + \"Exit\"];\n    }\n  }\n  function toStack(node2) {\n    let events;\n    if (node2.type === \"document\") {\n      events = [\"Document\", CHILDREN, \"DocumentExit\"];\n    } else if (node2.type === \"root\") {\n      events = [\"Root\", CHILDREN, \"RootExit\"];\n    } else {\n      events = getEvents(node2);\n    }\n    return {\n      eventIndex: 0,\n      events,\n      iterator: 0,\n      node: node2,\n      visitorIndex: 0,\n      visitors: []\n    };\n  }\n  function cleanMarks(node2) {\n    node2[isClean] = false;\n    if (node2.nodes) node2.nodes.forEach((i) => cleanMarks(i));\n    return node2;\n  }\n  let postcss2 = {};\n  class LazyResult {\n    get content() {\n      return this.stringify().content;\n    }\n    get css() {\n      return this.stringify().css;\n    }\n    get map() {\n      return this.stringify().map;\n    }\n    get messages() {\n      return this.sync().messages;\n    }\n    get opts() {\n      return this.result.opts;\n    }\n    get processor() {\n      return this.result.processor;\n    }\n    get root() {\n      return this.sync().root;\n    }\n    get [Symbol.toStringTag]() {\n      return \"LazyResult\";\n    }\n    constructor(processor2, css, opts) {\n      this.stringified = false;\n      this.processed = false;\n      let root2;\n      if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n        root2 = cleanMarks(css);\n      } else if (css instanceof LazyResult || css instanceof Result) {\n        root2 = cleanMarks(css.root);\n        if (css.map) {\n          if (typeof opts.map === \"undefined\") opts.map = {};\n          if (!opts.map.inline) opts.map.inline = false;\n          opts.map.prev = css.map;\n        }\n      } else {\n        let parser2 = parse;\n        if (opts.syntax) parser2 = opts.syntax.parse;\n        if (opts.parser) parser2 = opts.parser;\n        if (parser2.parse) parser2 = parser2.parse;\n        try {\n          root2 = parser2(css, opts);\n        } catch (error) {\n          this.processed = true;\n          this.error = error;\n        }\n        if (root2 && !root2[my]) {\n          Container.rebuild(root2);\n        }\n      }\n      this.result = new Result(processor2, root2, opts);\n      this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n      this.plugins = this.processor.plugins.map((plugin) => {\n        if (typeof plugin === \"object\" && plugin.prepare) {\n          return { ...plugin, ...plugin.prepare(this.result) };\n        } else {\n          return plugin;\n        }\n      });\n    }\n    async() {\n      if (this.error) return Promise.reject(this.error);\n      if (this.processed) return Promise.resolve(this.result);\n      if (!this.processing) {\n        this.processing = this.runAsync();\n      }\n      return this.processing;\n    }\n    catch(onRejected) {\n      return this.async().catch(onRejected);\n    }\n    finally(onFinally) {\n      return this.async().then(onFinally, onFinally);\n    }\n    getAsyncError() {\n      throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n    }\n    handleError(error, node2) {\n      let plugin = this.result.lastPlugin;\n      try {\n        if (node2) node2.addToError(error);\n        this.error = error;\n        if (error.name === \"CssSyntaxError\" && !error.plugin) {\n          error.plugin = plugin.postcssPlugin;\n          error.setMessage();\n        } else if (plugin.postcssVersion) {\n          if (process.env.NODE_ENV !== \"production\") {\n            let pluginName = plugin.postcssPlugin;\n            let pluginVer = plugin.postcssVersion;\n            let runtimeVer = this.result.processor.version;\n            let a = pluginVer.split(\".\");\n            let b = runtimeVer.split(\".\");\n            if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n              console.error(\n                \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n              );\n            }\n          }\n        }\n      } catch (err) {\n        if (console && console.error) console.error(err);\n      }\n      return error;\n    }\n    prepareVisitors() {\n      this.listeners = {};\n      let add = (plugin, type, cb) => {\n        if (!this.listeners[type]) this.listeners[type] = [];\n        this.listeners[type].push([plugin, cb]);\n      };\n      for (let plugin of this.plugins) {\n        if (typeof plugin === \"object\") {\n          for (let event in plugin) {\n            if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n              throw new Error(\n                `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n              );\n            }\n            if (!NOT_VISITORS[event]) {\n              if (typeof plugin[event] === \"object\") {\n                for (let filter in plugin[event]) {\n                  if (filter === \"*\") {\n                    add(plugin, event, plugin[event][filter]);\n                  } else {\n                    add(\n                      plugin,\n                      event + \"-\" + filter.toLowerCase(),\n                      plugin[event][filter]\n                    );\n                  }\n                }\n              } else if (typeof plugin[event] === \"function\") {\n                add(plugin, event, plugin[event]);\n              }\n            }\n          }\n        }\n      }\n      this.hasListener = Object.keys(this.listeners).length > 0;\n    }\n    async runAsync() {\n      this.plugin = 0;\n      for (let i = 0; i < this.plugins.length; i++) {\n        let plugin = this.plugins[i];\n        let promise = this.runOnRoot(plugin);\n        if (isPromise(promise)) {\n          try {\n            await promise;\n          } catch (error) {\n            throw this.handleError(error);\n          }\n        }\n      }\n      this.prepareVisitors();\n      if (this.hasListener) {\n        let root2 = this.result.root;\n        while (!root2[isClean]) {\n          root2[isClean] = true;\n          let stack = [toStack(root2)];\n          while (stack.length > 0) {\n            let promise = this.visitTick(stack);\n            if (isPromise(promise)) {\n              try {\n                await promise;\n              } catch (e) {\n                let node2 = stack[stack.length - 1].node;\n                throw this.handleError(e, node2);\n              }\n            }\n          }\n        }\n        if (this.listeners.OnceExit) {\n          for (let [plugin, visitor] of this.listeners.OnceExit) {\n            this.result.lastPlugin = plugin;\n            try {\n              if (root2.type === \"document\") {\n                let roots = root2.nodes.map(\n                  (subRoot) => visitor(subRoot, this.helpers)\n                );\n                await Promise.all(roots);\n              } else {\n                await visitor(root2, this.helpers);\n              }\n            } catch (e) {\n              throw this.handleError(e);\n            }\n          }\n        }\n      }\n      this.processed = true;\n      return this.stringify();\n    }\n    runOnRoot(plugin) {\n      this.result.lastPlugin = plugin;\n      try {\n        if (typeof plugin === \"object\" && plugin.Once) {\n          if (this.result.root.type === \"document\") {\n            let roots = this.result.root.nodes.map(\n              (root2) => plugin.Once(root2, this.helpers)\n            );\n            if (isPromise(roots[0])) {\n              return Promise.all(roots);\n            }\n            return roots;\n          }\n          return plugin.Once(this.result.root, this.helpers);\n        } else if (typeof plugin === \"function\") {\n          return plugin(this.result.root, this.result);\n        }\n      } catch (error) {\n        throw this.handleError(error);\n      }\n    }\n    stringify() {\n      if (this.error) throw this.error;\n      if (this.stringified) return this.result;\n      this.stringified = true;\n      this.sync();\n      let opts = this.result.opts;\n      let str = stringify;\n      if (opts.syntax) str = opts.syntax.stringify;\n      if (opts.stringifier) str = opts.stringifier;\n      if (str.stringify) str = str.stringify;\n      let map = new MapGenerator(str, this.result.root, this.result.opts);\n      let data = map.generate();\n      this.result.css = data[0];\n      this.result.map = data[1];\n      return this.result;\n    }\n    sync() {\n      if (this.error) throw this.error;\n      if (this.processed) return this.result;\n      this.processed = true;\n      if (this.processing) {\n        throw this.getAsyncError();\n      }\n      for (let plugin of this.plugins) {\n        let promise = this.runOnRoot(plugin);\n        if (isPromise(promise)) {\n          throw this.getAsyncError();\n        }\n      }\n      this.prepareVisitors();\n      if (this.hasListener) {\n        let root2 = this.result.root;\n        while (!root2[isClean]) {\n          root2[isClean] = true;\n          this.walkSync(root2);\n        }\n        if (this.listeners.OnceExit) {\n          if (root2.type === \"document\") {\n            for (let subRoot of root2.nodes) {\n              this.visitSync(this.listeners.OnceExit, subRoot);\n            }\n          } else {\n            this.visitSync(this.listeners.OnceExit, root2);\n          }\n        }\n      }\n      return this.result;\n    }\n    then(onFulfilled, onRejected) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (!(\"from\" in this.opts)) {\n          warnOnce2(\n            \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n          );\n        }\n      }\n      return this.async().then(onFulfilled, onRejected);\n    }\n    toString() {\n      return this.css;\n    }\n    visitSync(visitors, node2) {\n      for (let [plugin, visitor] of visitors) {\n        this.result.lastPlugin = plugin;\n        let promise;\n        try {\n          promise = visitor(node2, this.helpers);\n        } catch (e) {\n          throw this.handleError(e, node2.proxyOf);\n        }\n        if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n          return true;\n        }\n        if (isPromise(promise)) {\n          throw this.getAsyncError();\n        }\n      }\n    }\n    visitTick(stack) {\n      let visit2 = stack[stack.length - 1];\n      let { node: node2, visitors } = visit2;\n      if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n        stack.pop();\n        return;\n      }\n      if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n        let [plugin, visitor] = visitors[visit2.visitorIndex];\n        visit2.visitorIndex += 1;\n        if (visit2.visitorIndex === visitors.length) {\n          visit2.visitors = [];\n          visit2.visitorIndex = 0;\n        }\n        this.result.lastPlugin = plugin;\n        try {\n          return visitor(node2.toProxy(), this.helpers);\n        } catch (e) {\n          throw this.handleError(e, node2);\n        }\n      }\n      if (visit2.iterator !== 0) {\n        let iterator = visit2.iterator;\n        let child;\n        while (child = node2.nodes[node2.indexes[iterator]]) {\n          node2.indexes[iterator] += 1;\n          if (!child[isClean]) {\n            child[isClean] = true;\n            stack.push(toStack(child));\n            return;\n          }\n        }\n        visit2.iterator = 0;\n        delete node2.indexes[iterator];\n      }\n      let events = visit2.events;\n      while (visit2.eventIndex < events.length) {\n        let event = events[visit2.eventIndex];\n        visit2.eventIndex += 1;\n        if (event === CHILDREN) {\n          if (node2.nodes && node2.nodes.length) {\n            node2[isClean] = true;\n            visit2.iterator = node2.getIterator();\n          }\n          return;\n        } else if (this.listeners[event]) {\n          visit2.visitors = this.listeners[event];\n          return;\n        }\n      }\n      stack.pop();\n    }\n    walkSync(node2) {\n      node2[isClean] = true;\n      let events = getEvents(node2);\n      for (let event of events) {\n        if (event === CHILDREN) {\n          if (node2.nodes) {\n            node2.each((child) => {\n              if (!child[isClean]) this.walkSync(child);\n            });\n          }\n        } else {\n          let visitors = this.listeners[event];\n          if (visitors) {\n            if (this.visitSync(visitors, node2.toProxy())) return;\n          }\n        }\n      }\n    }\n    warnings() {\n      return this.sync().warnings();\n    }\n  }\n  LazyResult.registerPostcss = (dependant) => {\n    postcss2 = dependant;\n  };\n  lazyResult = LazyResult;\n  LazyResult.default = LazyResult;\n  Root.registerLazyResult(LazyResult);\n  Document2.registerLazyResult(LazyResult);\n  return lazyResult;\n}\nvar noWorkResult;\nvar hasRequiredNoWorkResult;\nfunction requireNoWorkResult() {\n  if (hasRequiredNoWorkResult) return noWorkResult;\n  hasRequiredNoWorkResult = 1;\n  let MapGenerator = requireMapGenerator();\n  let parse = requireParse();\n  let Result = requireResult();\n  let stringify = requireStringify();\n  let warnOnce2 = requireWarnOnce();\n  class NoWorkResult {\n    get content() {\n      return this.result.css;\n    }\n    get css() {\n      return this.result.css;\n    }\n    get map() {\n      return this.result.map;\n    }\n    get messages() {\n      return [];\n    }\n    get opts() {\n      return this.result.opts;\n    }\n    get processor() {\n      return this.result.processor;\n    }\n    get root() {\n      if (this._root) {\n        return this._root;\n      }\n      let root2;\n      let parser2 = parse;\n      try {\n        root2 = parser2(this._css, this._opts);\n      } catch (error) {\n        this.error = error;\n      }\n      if (this.error) {\n        throw this.error;\n      } else {\n        this._root = root2;\n        return root2;\n      }\n    }\n    get [Symbol.toStringTag]() {\n      return \"NoWorkResult\";\n    }\n    constructor(processor2, css, opts) {\n      css = css.toString();\n      this.stringified = false;\n      this._processor = processor2;\n      this._css = css;\n      this._opts = opts;\n      this._map = void 0;\n      let str = stringify;\n      this.result = new Result(this._processor, void 0, this._opts);\n      this.result.css = css;\n      let self = this;\n      Object.defineProperty(this.result, \"root\", {\n        get() {\n          return self.root;\n        }\n      });\n      let map = new MapGenerator(str, void 0, this._opts, css);\n      if (map.isMap()) {\n        let [generatedCSS, generatedMap] = map.generate();\n        if (generatedCSS) {\n          this.result.css = generatedCSS;\n        }\n        if (generatedMap) {\n          this.result.map = generatedMap;\n        }\n      } else {\n        map.clearAnnotation();\n        this.result.css = map.css;\n      }\n    }\n    async() {\n      if (this.error) return Promise.reject(this.error);\n      return Promise.resolve(this.result);\n    }\n    catch(onRejected) {\n      return this.async().catch(onRejected);\n    }\n    finally(onFinally) {\n      return this.async().then(onFinally, onFinally);\n    }\n    sync() {\n      if (this.error) throw this.error;\n      return this.result;\n    }\n    then(onFulfilled, onRejected) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (!(\"from\" in this._opts)) {\n          warnOnce2(\n            \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n          );\n        }\n      }\n      return this.async().then(onFulfilled, onRejected);\n    }\n    toString() {\n      return this._css;\n    }\n    warnings() {\n      return [];\n    }\n  }\n  noWorkResult = NoWorkResult;\n  NoWorkResult.default = NoWorkResult;\n  return noWorkResult;\n}\nvar processor;\nvar hasRequiredProcessor;\nfunction requireProcessor() {\n  if (hasRequiredProcessor) return processor;\n  hasRequiredProcessor = 1;\n  let Document2 = requireDocument();\n  let LazyResult = requireLazyResult();\n  let NoWorkResult = requireNoWorkResult();\n  let Root = requireRoot();\n  class Processor {\n    constructor(plugins = []) {\n      this.version = \"8.5.10\";\n      this.plugins = this.normalize(plugins);\n    }\n    normalize(plugins) {\n      let normalized = [];\n      for (let i of plugins) {\n        if (i.postcss === true) {\n          i = i();\n        } else if (i.postcss) {\n          i = i.postcss;\n        }\n        if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n          normalized = normalized.concat(i.plugins);\n        } else if (typeof i === \"object\" && i.postcssPlugin) {\n          normalized.push(i);\n        } else if (typeof i === \"function\") {\n          normalized.push(i);\n        } else if (typeof i === \"object\" && (i.parse || i.stringify)) {\n          if (process.env.NODE_ENV !== \"production\") {\n            throw new Error(\n              \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n            );\n          }\n        } else {\n          throw new Error(i + \" is not a PostCSS plugin\");\n        }\n      }\n      return normalized;\n    }\n    process(css, opts = {}) {\n      if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n        return new NoWorkResult(this, css, opts);\n      } else {\n        return new LazyResult(this, css, opts);\n      }\n    }\n    use(plugin) {\n      this.plugins = this.plugins.concat(this.normalize([plugin]));\n      return this;\n    }\n  }\n  processor = Processor;\n  Processor.default = Processor;\n  Root.registerProcessor(Processor);\n  Document2.registerProcessor(Processor);\n  return processor;\n}\nvar postcss_1;\nvar hasRequiredPostcss;\nfunction requirePostcss() {\n  if (hasRequiredPostcss) return postcss_1;\n  hasRequiredPostcss = 1;\n  let AtRule = requireAtRule();\n  let Comment = requireComment();\n  let Container = requireContainer();\n  let CssSyntaxError = requireCssSyntaxError();\n  let Declaration = requireDeclaration();\n  let Document2 = requireDocument();\n  let fromJSON = requireFromJSON();\n  let Input = requireInput();\n  let LazyResult = requireLazyResult();\n  let list = requireList();\n  let Node = requireNode();\n  let parse = requireParse();\n  let Processor = requireProcessor();\n  let Result = requireResult();\n  let Root = requireRoot();\n  let Rule = requireRule();\n  let stringify = requireStringify();\n  let Warning = requireWarning();\n  function postcss2(...plugins) {\n    if (plugins.length === 1 && Array.isArray(plugins[0])) {\n      plugins = plugins[0];\n    }\n    return new Processor(plugins);\n  }\n  postcss2.plugin = function plugin(name, initializer) {\n    let warningPrinted = false;\n    function creator(...args) {\n      if (console && console.warn && !warningPrinted) {\n        warningPrinted = true;\n        console.warn(\n          name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n        );\n        if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n          console.warn(\n            name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n          );\n        }\n      }\n      let transformer = initializer(...args);\n      transformer.postcssPlugin = name;\n      transformer.postcssVersion = new Processor().version;\n      return transformer;\n    }\n    let cache;\n    Object.defineProperty(creator, \"postcss\", {\n      get() {\n        if (!cache) cache = creator();\n        return cache;\n      }\n    });\n    creator.process = function(css, processOpts, pluginOpts) {\n      return postcss2([creator(pluginOpts)]).process(css, processOpts);\n    };\n    return creator;\n  };\n  postcss2.stringify = stringify;\n  postcss2.parse = parse;\n  postcss2.fromJSON = fromJSON;\n  postcss2.list = list;\n  postcss2.comment = (defaults) => new Comment(defaults);\n  postcss2.atRule = (defaults) => new AtRule(defaults);\n  postcss2.decl = (defaults) => new Declaration(defaults);\n  postcss2.rule = (defaults) => new Rule(defaults);\n  postcss2.root = (defaults) => new Root(defaults);\n  postcss2.document = (defaults) => new Document2(defaults);\n  postcss2.CssSyntaxError = CssSyntaxError;\n  postcss2.Declaration = Declaration;\n  postcss2.Container = Container;\n  postcss2.Processor = Processor;\n  postcss2.Document = Document2;\n  postcss2.Comment = Comment;\n  postcss2.Warning = Warning;\n  postcss2.AtRule = AtRule;\n  postcss2.Result = Result;\n  postcss2.Input = Input;\n  postcss2.Rule = Rule;\n  postcss2.Root = Root;\n  postcss2.Node = Node;\n  LazyResult.registerPostcss(postcss2);\n  postcss_1 = postcss2;\n  postcss2.default = postcss2;\n  return postcss_1;\n}\nvar postcssExports = requirePostcss();\nconst postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);\npostcss.stringify;\npostcss.fromJSON;\npostcss.plugin;\npostcss.parse;\npostcss.list;\npostcss.document;\npostcss.comment;\npostcss.atRule;\npostcss.rule;\npostcss.decl;\npostcss.root;\npostcss.CssSyntaxError;\npostcss.Declaration;\npostcss.Container;\npostcss.Processor;\npostcss.Document;\npostcss.Comment;\npostcss.Warning;\npostcss.AtRule;\npostcss.Result;\npostcss.Input;\npostcss.Rule;\npostcss.Root;\npostcss.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n  NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n  NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n  NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n  NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n  NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n  return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n  const res = {};\n  const listDelimiter = /;(?![^(]*\\))/g;\n  const propertyDelimiter = /:(.+)/;\n  const comment2 = /\\/\\*.*?\\*\\//g;\n  cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n    if (item) {\n      const tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n    }\n  });\n  return res;\n}\nfunction toCSSText(style) {\n  const properties = [];\n  for (const name in style) {\n    const value = style[name];\n    if (typeof value !== \"string\") continue;\n    const normalizedName = hyphenate(name);\n    properties.push(`${normalizedName}: ${value};`);\n  }\n  return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n  if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n  return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n  constructor(..._args) {\n    __publicField(this, \"parentElement\", null);\n    __publicField(this, \"parentNode\", null);\n    __publicField(this, \"ownerDocument\");\n    __publicField(this, \"firstChild\", null);\n    __publicField(this, \"lastChild\", null);\n    __publicField(this, \"previousSibling\", null);\n    __publicField(this, \"nextSibling\", null);\n    __publicField(this, \"ELEMENT_NODE\", 1);\n    __publicField(this, \"TEXT_NODE\", 3);\n    // corresponding nodeType value of standard HTML Node\n    __publicField(this, \"nodeType\");\n    __publicField(this, \"nodeName\");\n    __publicField(this, \"RRNodeType\");\n  }\n  get childNodes() {\n    const childNodes = [];\n    let childIterator = this.firstChild;\n    while (childIterator) {\n      childNodes.push(childIterator);\n      childIterator = childIterator.nextSibling;\n    }\n    return childNodes;\n  }\n  contains(node2) {\n    if (!(node2 instanceof BaseRRNode)) return false;\n    else if (node2.ownerDocument !== this.ownerDocument) return false;\n    else if (node2 === this) return true;\n    while (node2.parentNode) {\n      if (node2.parentNode === this) return true;\n      node2 = node2.parentNode;\n    }\n    return false;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  appendChild(_newChild) {\n    throw new Error(\n      `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n    );\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  insertBefore(_newChild, _refChild) {\n    throw new Error(\n      `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n    );\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  removeChild(_node) {\n    throw new Error(\n      `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n    );\n  }\n  toString() {\n    return \"RRNode\";\n  }\n}\nclass BaseRRDocument extends BaseRRNode {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  constructor(...args) {\n    super(args);\n    __publicField(this, \"nodeType\", 9);\n    __publicField(this, \"nodeName\", \"#document\");\n    __publicField(this, \"compatMode\", \"CSS1Compat\");\n    __publicField(this, \"RRNodeType\", NodeType$1.Document);\n    __publicField(this, \"textContent\", null);\n    this.ownerDocument = this;\n  }\n  get documentElement() {\n    return this.childNodes.find(\n      (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n    ) || null;\n  }\n  get body() {\n    var _a;\n    return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n      (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n    )) || null;\n  }\n  get head() {\n    var _a;\n    return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n      (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n    )) || null;\n  }\n  get implementation() {\n    return this;\n  }\n  get firstElementChild() {\n    return this.documentElement;\n  }\n  appendChild(newChild) {\n    const nodeType = newChild.RRNodeType;\n    if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n      if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n        throw new Error(\n          `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n        );\n      }\n    }\n    const child = appendChild(this, newChild);\n    child.parentElement = null;\n    return child;\n  }\n  insertBefore(newChild, refChild) {\n    const nodeType = newChild.RRNodeType;\n    if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n      if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n        throw new Error(\n          `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n        );\n      }\n    }\n    const child = insertBefore(this, newChild, refChild);\n    child.parentElement = null;\n    return child;\n  }\n  removeChild(node2) {\n    return removeChild(this, node2);\n  }\n  open() {\n    this.firstChild = null;\n    this.lastChild = null;\n  }\n  close() {\n  }\n  /**\n   * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n   * There are two lines used this function:\n   * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n   * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n   */\n  write(content) {\n    let publicId;\n    if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n      publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n    else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n      publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n    if (publicId) {\n      const doctype = this.createDocumentType(\"html\", publicId, \"\");\n      this.open();\n      this.appendChild(doctype);\n    }\n  }\n  createDocument(_namespace, _qualifiedName, _doctype) {\n    return new BaseRRDocument();\n  }\n  createDocumentType(qualifiedName, publicId, systemId) {\n    const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n    doctype.ownerDocument = this;\n    return doctype;\n  }\n  createElement(tagName) {\n    const element = new BaseRRElement(tagName);\n    element.ownerDocument = this;\n    return element;\n  }\n  createElementNS(_namespaceURI, qualifiedName) {\n    return this.createElement(qualifiedName);\n  }\n  createTextNode(data) {\n    const text = new BaseRRText(data);\n    text.ownerDocument = this;\n    return text;\n  }\n  createComment(data) {\n    const comment2 = new BaseRRComment(data);\n    comment2.ownerDocument = this;\n    return comment2;\n  }\n  createCDATASection(data) {\n    const CDATASection = new BaseRRCDATASection(data);\n    CDATASection.ownerDocument = this;\n    return CDATASection;\n  }\n  toString() {\n    return \"RRDocument\";\n  }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n  constructor(qualifiedName, publicId, systemId) {\n    super();\n    __publicField(this, \"nodeType\", 10);\n    __publicField(this, \"RRNodeType\", NodeType$1.DocumentType);\n    __publicField(this, \"name\");\n    __publicField(this, \"publicId\");\n    __publicField(this, \"systemId\");\n    __publicField(this, \"textContent\", null);\n    this.name = qualifiedName;\n    this.publicId = publicId;\n    this.systemId = systemId;\n    this.nodeName = qualifiedName;\n  }\n  toString() {\n    return \"RRDocumentType\";\n  }\n}\nclass BaseRRElement extends BaseRRNode {\n  constructor(tagName) {\n    super();\n    __publicField(this, \"nodeType\", 1);\n    __publicField(this, \"RRNodeType\", NodeType$1.Element);\n    __publicField(this, \"tagName\");\n    __publicField(this, \"attributes\", {});\n    __publicField(this, \"shadowRoot\", null);\n    __publicField(this, \"scrollLeft\");\n    __publicField(this, \"scrollTop\");\n    this.tagName = tagName.toUpperCase();\n    this.nodeName = tagName.toUpperCase();\n  }\n  get textContent() {\n    let result2 = \"\";\n    this.childNodes.forEach((node2) => result2 += node2.textContent);\n    return result2;\n  }\n  set textContent(textContent) {\n    this.firstChild = null;\n    this.lastChild = null;\n    this.appendChild(this.ownerDocument.createTextNode(textContent));\n  }\n  get classList() {\n    return new ClassList(\n      this.attributes.class,\n      (newClassName) => {\n        this.attributes.class = newClassName;\n      }\n    );\n  }\n  get id() {\n    return this.attributes.id || \"\";\n  }\n  get className() {\n    return this.attributes.class || \"\";\n  }\n  get style() {\n    const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n    const hyphenateRE2 = /\\B([A-Z])/g;\n    style.setProperty = (name, value, priority) => {\n      if (hyphenateRE2.test(name)) return;\n      const normalizedName = camelize(name);\n      if (!value) delete style[normalizedName];\n      else style[normalizedName] = value;\n      if (priority === \"important\") style[normalizedName] += \" !important\";\n      this.attributes.style = toCSSText(style);\n    };\n    style.removeProperty = (name) => {\n      if (hyphenateRE2.test(name)) return \"\";\n      const normalizedName = camelize(name);\n      const value = style[normalizedName] || \"\";\n      delete style[normalizedName];\n      this.attributes.style = toCSSText(style);\n      return value;\n    };\n    return style;\n  }\n  getAttribute(name) {\n    if (this.attributes[name] === void 0) return null;\n    return this.attributes[name];\n  }\n  setAttribute(name, attribute) {\n    this.attributes[name] = attribute;\n  }\n  setAttributeNS(_namespace, qualifiedName, value) {\n    this.setAttribute(qualifiedName, value);\n  }\n  removeAttribute(name) {\n    delete this.attributes[name];\n  }\n  appendChild(newChild) {\n    return appendChild(this, newChild);\n  }\n  insertBefore(newChild, refChild) {\n    return insertBefore(this, newChild, refChild);\n  }\n  removeChild(node2) {\n    return removeChild(this, node2);\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  attachShadow(_init) {\n    const shadowRoot = this.ownerDocument.createElement(\"SHADOWROOT\");\n    this.shadowRoot = shadowRoot;\n    return shadowRoot;\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  dispatchEvent(_event) {\n    return true;\n  }\n  toString() {\n    let attributeString = \"\";\n    for (const attribute in this.attributes) {\n      attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n    }\n    return `${this.tagName} ${attributeString}`;\n  }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"currentTime\");\n    __publicField(this, \"volume\");\n    __publicField(this, \"paused\");\n    __publicField(this, \"muted\");\n    __publicField(this, \"playbackRate\");\n    __publicField(this, \"loop\");\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  attachShadow(_init) {\n    throw new Error(\n      `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n    );\n  }\n  play() {\n    this.paused = false;\n  }\n  pause() {\n    this.paused = true;\n  }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"tagName\", \"DIALOG\");\n    __publicField(this, \"nodeName\", \"DIALOG\");\n  }\n  get isModal() {\n    return this.getAttribute(\"rr_open_mode\") === \"modal\";\n  }\n  get open() {\n    return this.getAttribute(\"open\") !== null;\n  }\n  close() {\n    this.removeAttribute(\"open\");\n    this.removeAttribute(\"rr_open_mode\");\n  }\n  show() {\n    this.setAttribute(\"open\", \"\");\n    this.setAttribute(\"rr_open_mode\", \"non-modal\");\n  }\n  showModal() {\n    this.setAttribute(\"open\", \"\");\n    this.setAttribute(\"rr_open_mode\", \"modal\");\n  }\n}\nclass BaseRRText extends BaseRRNode {\n  constructor(data) {\n    super();\n    __publicField(this, \"nodeType\", 3);\n    __publicField(this, \"nodeName\", \"#text\");\n    __publicField(this, \"RRNodeType\", NodeType$1.Text);\n    __publicField(this, \"data\");\n    this.data = data;\n  }\n  get textContent() {\n    return this.data;\n  }\n  set textContent(textContent) {\n    this.data = textContent;\n  }\n  toString() {\n    return `RRText text=${JSON.stringify(this.data)}`;\n  }\n}\nclass BaseRRComment extends BaseRRNode {\n  constructor(data) {\n    super();\n    __publicField(this, \"nodeType\", 8);\n    __publicField(this, \"nodeName\", \"#comment\");\n    __publicField(this, \"RRNodeType\", NodeType$1.Comment);\n    __publicField(this, \"data\");\n    this.data = data;\n  }\n  get textContent() {\n    return this.data;\n  }\n  set textContent(textContent) {\n    this.data = textContent;\n  }\n  toString() {\n    return `RRComment text=${JSON.stringify(this.data)}`;\n  }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n  constructor(data) {\n    super();\n    __publicField(this, \"nodeName\", \"#cdata-section\");\n    __publicField(this, \"nodeType\", 4);\n    __publicField(this, \"RRNodeType\", NodeType$1.CDATA);\n    __publicField(this, \"data\");\n    this.data = data;\n  }\n  get textContent() {\n    return this.data;\n  }\n  set textContent(textContent) {\n    this.data = textContent;\n  }\n  toString() {\n    return `RRCDATASection data=${JSON.stringify(this.data)}`;\n  }\n}\nclass ClassList {\n  constructor(classText, onChange) {\n    __publicField(this, \"onChange\");\n    __publicField(this, \"classes\", []);\n    __publicField(this, \"add\", (...classNames) => {\n      for (const item of classNames) {\n        const className = String(item);\n        if (this.classes.indexOf(className) >= 0) continue;\n        this.classes.push(className);\n      }\n      this.onChange && this.onChange(this.classes.join(\" \"));\n    });\n    __publicField(this, \"remove\", (...classNames) => {\n      this.classes = this.classes.filter(\n        (item) => classNames.indexOf(item) === -1\n      );\n      this.onChange && this.onChange(this.classes.join(\" \"));\n    });\n    if (classText) {\n      const classes = classText.trim().split(/\\s+/);\n      this.classes.push(...classes);\n    }\n    this.onChange = onChange;\n  }\n}\nfunction appendChild(parent, newChild) {\n  if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n  if (parent.lastChild) {\n    parent.lastChild.nextSibling = newChild;\n    newChild.previousSibling = parent.lastChild;\n  } else {\n    parent.firstChild = newChild;\n    newChild.previousSibling = null;\n  }\n  parent.lastChild = newChild;\n  newChild.nextSibling = null;\n  newChild.parentNode = parent;\n  newChild.parentElement = parent;\n  newChild.ownerDocument = parent.ownerDocument;\n  return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n  if (!refChild) return appendChild(parent, newChild);\n  if (refChild.parentNode !== parent)\n    throw new Error(\n      \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n    );\n  if (newChild === refChild) return newChild;\n  if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n  newChild.previousSibling = refChild.previousSibling;\n  refChild.previousSibling = newChild;\n  newChild.nextSibling = refChild;\n  if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n  else parent.firstChild = newChild;\n  newChild.parentElement = parent;\n  newChild.parentNode = parent;\n  newChild.ownerDocument = parent.ownerDocument;\n  return newChild;\n}\nfunction removeChild(parent, child) {\n  if (child.parentNode !== parent)\n    throw new Error(\n      \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n    );\n  if (child.previousSibling)\n    child.previousSibling.nextSibling = child.nextSibling;\n  else parent.firstChild = child.nextSibling;\n  if (child.nextSibling)\n    child.nextSibling.previousSibling = child.previousSibling;\n  else parent.lastChild = child.previousSibling;\n  child.previousSibling = null;\n  child.nextSibling = null;\n  child.parentElement = null;\n  child.parentNode = null;\n  return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n  NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n  NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n  NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n  NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n  NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n  NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n  NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n  NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n  NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n  NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n  NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n  return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n  svg: \"http://www.w3.org/2000/svg\",\n  \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n  altglyph: \"altGlyph\",\n  altglyphdef: \"altGlyphDef\",\n  altglyphitem: \"altGlyphItem\",\n  animatecolor: \"animateColor\",\n  animatemotion: \"animateMotion\",\n  animatetransform: \"animateTransform\",\n  clippath: \"clipPath\",\n  feblend: \"feBlend\",\n  fecolormatrix: \"feColorMatrix\",\n  fecomponenttransfer: \"feComponentTransfer\",\n  fecomposite: \"feComposite\",\n  feconvolvematrix: \"feConvolveMatrix\",\n  fediffuselighting: \"feDiffuseLighting\",\n  fedisplacementmap: \"feDisplacementMap\",\n  fedistantlight: \"feDistantLight\",\n  fedropshadow: \"feDropShadow\",\n  feflood: \"feFlood\",\n  fefunca: \"feFuncA\",\n  fefuncb: \"feFuncB\",\n  fefuncg: \"feFuncG\",\n  fefuncr: \"feFuncR\",\n  fegaussianblur: \"feGaussianBlur\",\n  feimage: \"feImage\",\n  femerge: \"feMerge\",\n  femergenode: \"feMergeNode\",\n  femorphology: \"feMorphology\",\n  feoffset: \"feOffset\",\n  fepointlight: \"fePointLight\",\n  fespecularlighting: \"feSpecularLighting\",\n  fespotlight: \"feSpotLight\",\n  fetile: \"feTile\",\n  feturbulence: \"feTurbulence\",\n  foreignobject: \"foreignObject\",\n  glyphref: \"glyphRef\",\n  lineargradient: \"linearGradient\",\n  radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n  oldTree = diffBeforeUpdatingChildren(\n    oldTree,\n    newTree,\n    replayer,\n    rrnodeMirror\n  );\n  diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n  diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n  var _a;\n  if (replayer.afterAppend && !createdNodeSet) {\n    createdNodeSet = /* @__PURE__ */ new WeakSet();\n    setTimeout(() => {\n      createdNodeSet = null;\n    }, 0);\n  }\n  if (!sameNodeType(oldTree, newTree)) {\n    const calibratedOldTree = createOrGetNode(\n      newTree,\n      replayer.mirror,\n      rrnodeMirror\n    );\n    (_a = oldTree.parentNode) == null ? void 0 : _a.replaceChild(calibratedOldTree, oldTree);\n    oldTree = calibratedOldTree;\n  }\n  switch (newTree.RRNodeType) {\n    case NodeType$1.Document: {\n      if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n        const newMeta = rrnodeMirror.getMeta(newTree);\n        if (newMeta) {\n          replayer.mirror.removeNodeFromMap(oldTree);\n          oldTree.close();\n          oldTree.open();\n          replayer.mirror.add(oldTree, newMeta);\n          createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n        }\n      }\n      break;\n    }\n    case NodeType$1.Element: {\n      const oldElement = oldTree;\n      const newRRElement = newTree;\n      switch (newRRElement.tagName) {\n        case \"IFRAME\":\n        case \"FRAME\": {\n          const oldContentDocument = oldTree.contentDocument;\n          if (!oldContentDocument) break;\n          diff(\n            oldContentDocument,\n            newTree.contentDocument,\n            replayer,\n            rrnodeMirror\n          );\n          break;\n        }\n      }\n      if (newRRElement.shadowRoot) {\n        if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n        diffChildren(\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          oldElement.shadowRoot,\n          newRRElement.shadowRoot,\n          replayer,\n          rrnodeMirror\n        );\n      }\n      diffProps(oldElement, newRRElement, rrnodeMirror);\n      break;\n    }\n  }\n  return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n  var _a;\n  switch (newTree.RRNodeType) {\n    case NodeType$1.Document: {\n      const scrollData = newTree.scrollData;\n      scrollData && replayer.applyScroll(scrollData, true);\n      break;\n    }\n    case NodeType$1.Element: {\n      const oldElement = oldTree;\n      const newRRElement = newTree;\n      newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n      newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n      switch (newRRElement.tagName) {\n        case \"AUDIO\":\n        case \"VIDEO\": {\n          const oldMediaElement = oldTree;\n          const newMediaRRElement = newRRElement;\n          if (newMediaRRElement.paused !== void 0)\n            newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n          if (newMediaRRElement.muted !== void 0)\n            oldMediaElement.muted = newMediaRRElement.muted;\n          if (newMediaRRElement.volume !== void 0)\n            oldMediaElement.volume = newMediaRRElement.volume;\n          if (newMediaRRElement.currentTime !== void 0)\n            oldMediaElement.currentTime = newMediaRRElement.currentTime;\n          if (newMediaRRElement.playbackRate !== void 0)\n            oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n          if (newMediaRRElement.loop !== void 0)\n            oldMediaElement.loop = newMediaRRElement.loop;\n          break;\n        }\n        case \"CANVAS\": {\n          const rrCanvasElement = newTree;\n          if (rrCanvasElement.rr_dataURL !== null) {\n            const image = document.createElement(\"img\");\n            image.onload = () => {\n              const ctx = oldElement.getContext(\"2d\");\n              if (ctx) {\n                ctx.drawImage(image, 0, 0, image.width, image.height);\n              }\n            };\n            image.src = rrCanvasElement.rr_dataURL;\n          }\n          rrCanvasElement.canvasMutations.forEach(\n            (canvasMutation) => replayer.applyCanvas(\n              canvasMutation.event,\n              canvasMutation.mutation,\n              oldTree\n            )\n          );\n          break;\n        }\n        // Props of style elements have to be updated after all children are updated. Otherwise the props can be overwritten by textContent.\n        case \"STYLE\": {\n          const styleSheet = oldElement.sheet;\n          styleSheet && newTree.rules.forEach(\n            (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n          );\n          break;\n        }\n        case \"DIALOG\": {\n          const dialog = oldElement;\n          const rrDialog = newRRElement;\n          const wasOpen = dialog.open;\n          const wasModal = dialog.matches(\"dialog:modal\");\n          const shouldBeOpen = rrDialog.open;\n          const shouldBeModal = rrDialog.isModal;\n          const modalChanged = wasModal !== shouldBeModal;\n          const openChanged = wasOpen !== shouldBeOpen;\n          if (modalChanged || wasOpen && openChanged) dialog.close();\n          if (shouldBeOpen && (openChanged || modalChanged)) {\n            try {\n              if (shouldBeModal) dialog.showModal();\n              else dialog.show();\n            } catch (e) {\n              console.warn(e);\n            }\n          }\n          break;\n        }\n      }\n      break;\n    }\n    case NodeType$1.Text:\n    case NodeType$1.Comment:\n    case NodeType$1.CDATA: {\n      if (oldTree.textContent !== newTree.data)\n        oldTree.textContent = newTree.data;\n      break;\n    }\n  }\n  if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n    createdNodeSet.delete(oldTree);\n    (_a = replayer.afterAppend) == null ? void 0 : _a.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n  }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n  const oldAttributes = oldTree.attributes;\n  const newAttributes = newTree.attributes;\n  for (const name in newAttributes) {\n    const newValue = newAttributes[name];\n    const sn = rrnodeMirror.getMeta(newTree);\n    if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n      oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n    else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n      const image = document.createElement(\"img\");\n      image.src = newValue;\n      image.onload = () => {\n        const ctx = oldTree.getContext(\"2d\");\n        if (ctx) {\n          ctx.drawImage(image, 0, 0, image.width, image.height);\n        }\n      };\n    } else if ((newTree.tagName === \"IFRAME\" || newTree.tagName === \"FRAME\") && name === \"srcdoc\") continue;\n    else {\n      try {\n        oldTree.setAttribute(name, newValue);\n      } catch (err) {\n        console.warn(err);\n      }\n    }\n  }\n  for (const { name } of Array.from(oldAttributes))\n    if (!(name in newAttributes)) oldTree.removeAttribute(name);\n  newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n  newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n  const oldChildren = Array.from(oldTree.childNodes);\n  const newChildren = newTree.childNodes;\n  if (oldChildren.length === 0 && newChildren.length === 0) return;\n  let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n  let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n  let oldIdToIndex = void 0, indexInOld = void 0;\n  while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n    if (oldStartNode === void 0) {\n      oldStartNode = oldChildren[++oldStartIndex];\n    } else if (oldEndNode === void 0) {\n      oldEndNode = oldChildren[--oldEndIndex];\n    } else if (\n      // same first node?\n      nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n    ) {\n      oldStartNode = oldChildren[++oldStartIndex];\n      newStartNode = newChildren[++newStartIndex];\n    } else if (\n      // same last node?\n      nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n    ) {\n      oldEndNode = oldChildren[--oldEndIndex];\n      newEndNode = newChildren[--newEndIndex];\n    } else if (\n      // is the first old node the same as the last new node?\n      nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n    ) {\n      try {\n        oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n      } catch (e) {\n        console.warn(e);\n      }\n      oldStartNode = oldChildren[++oldStartIndex];\n      newEndNode = newChildren[--newEndIndex];\n    } else if (\n      // is the last old node the same as the first new node?\n      nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n    ) {\n      try {\n        oldTree.insertBefore(oldEndNode, oldStartNode);\n      } catch (e) {\n        console.warn(e);\n      }\n      oldEndNode = oldChildren[--oldEndIndex];\n      newStartNode = newChildren[++newStartIndex];\n    } else {\n      if (!oldIdToIndex) {\n        oldIdToIndex = {};\n        for (let i = oldStartIndex; i <= oldEndIndex; i++) {\n          const oldChild2 = oldChildren[i];\n          if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n            oldIdToIndex[replayer.mirror.getId(oldChild2)] = i;\n        }\n      }\n      indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n      const nodeToMove = oldChildren[indexInOld];\n      if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n        try {\n          oldTree.insertBefore(nodeToMove, oldStartNode);\n        } catch (e) {\n          console.warn(e);\n        }\n        oldChildren[indexInOld] = void 0;\n      } else {\n        const newNode = createOrGetNode(\n          newStartNode,\n          replayer.mirror,\n          rrnodeMirror\n        );\n        if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n        * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n        * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n        */\n        (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n        * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n        * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n        */\n        newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n          oldTree.removeChild(oldStartNode);\n          replayer.mirror.removeNodeFromMap(oldStartNode);\n          oldStartNode = oldChildren[++oldStartIndex];\n        }\n        try {\n          oldTree.insertBefore(newNode, oldStartNode || null);\n        } catch (e) {\n          console.warn(e);\n        }\n      }\n      newStartNode = newChildren[++newStartIndex];\n    }\n  }\n  if (oldStartIndex > oldEndIndex) {\n    const referenceRRNode = newChildren[newEndIndex + 1];\n    let referenceNode = null;\n    if (referenceRRNode)\n      referenceNode = replayer.mirror.getNode(\n        rrnodeMirror.getId(referenceRRNode)\n      );\n    for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n      const newNode = createOrGetNode(\n        newChildren[newStartIndex],\n        replayer.mirror,\n        rrnodeMirror\n      );\n      try {\n        oldTree.insertBefore(newNode, referenceNode);\n      } catch (e) {\n        console.warn(e);\n      }\n    }\n  } else if (newStartIndex > newEndIndex) {\n    for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n      const node2 = oldChildren[oldStartIndex];\n      if (!node2 || node2.parentNode !== oldTree) continue;\n      try {\n        oldTree.removeChild(node2);\n        replayer.mirror.removeNodeFromMap(node2);\n      } catch (e) {\n        console.warn(e);\n      }\n    }\n  }\n  let oldChild = oldTree.firstChild;\n  let newChild = newTree.firstChild;\n  while (oldChild !== null && newChild !== null) {\n    diff(oldChild, newChild, replayer, rrnodeMirror);\n    oldChild = oldChild.nextSibling;\n    newChild = newChild.nextSibling;\n  }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n  const nodeId = rrnodeMirror.getId(rrNode);\n  const sn = rrnodeMirror.getMeta(rrNode);\n  let node2 = null;\n  if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n  if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n  switch (rrNode.RRNodeType) {\n    case NodeType$1.Document:\n      node2 = new Document();\n      break;\n    case NodeType$1.DocumentType:\n      node2 = document.implementation.createDocumentType(\n        rrNode.name,\n        rrNode.publicId,\n        rrNode.systemId\n      );\n      break;\n    case NodeType$1.Element: {\n      let tagName = rrNode.tagName.toLowerCase();\n      tagName = SVGTagMap[tagName] || tagName;\n      if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n        node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n      } else node2 = document.createElement(rrNode.tagName);\n      break;\n    }\n    case NodeType$1.Text:\n      node2 = document.createTextNode(rrNode.data);\n      break;\n    case NodeType$1.Comment:\n      node2 = document.createComment(rrNode.data);\n      break;\n    case NodeType$1.CDATA:\n      node2 = document.createCDATASection(rrNode.data);\n      break;\n  }\n  if (sn) domMirror.add(node2, { ...sn });\n  try {\n    createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n  } catch (e) {\n  }\n  return node2;\n}\nfunction sameNodeType(node1, node2) {\n  if (node1.nodeType !== node2.nodeType) return false;\n  return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n  const node1Id = domMirror.getId(node1);\n  const node2Id = rrdomMirror.getId(node2);\n  if (node1Id === -1 || node1Id !== node2Id) return false;\n  return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n  constructor(mirror) {\n    super();\n    __publicField(this, \"UNSERIALIZED_STARTING_ID\", -2);\n    // In the rrweb replayer, there are some unserialized nodes like the element that stores the injected style rules.\n    // These unserialized nodes may interfere the execution of the diff algorithm.\n    // The id of serialized node is larger than 0. So this value less than 0 is used as id for these unserialized nodes.\n    __publicField(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n    __publicField(this, \"mirror\", createMirror());\n    __publicField(this, \"scrollData\", null);\n    if (mirror) {\n      this.mirror = mirror;\n    }\n  }\n  /**\n   * Every time the id is used, it will minus 1 automatically to avoid collisions.\n   */\n  get unserializedId() {\n    return this._unserializedId--;\n  }\n  createDocument(_namespace, _qualifiedName, _doctype) {\n    return new RRDocument();\n  }\n  createDocumentType(qualifiedName, publicId, systemId) {\n    const documentTypeNode = new RRDocumentType(\n      qualifiedName,\n      publicId,\n      systemId\n    );\n    documentTypeNode.ownerDocument = this;\n    return documentTypeNode;\n  }\n  createElement(tagName) {\n    const upperTagName = tagName.toUpperCase();\n    let element;\n    switch (upperTagName) {\n      case \"AUDIO\":\n      case \"VIDEO\":\n        element = new RRMediaElement(upperTagName);\n        break;\n      case \"IFRAME\":\n      case \"FRAME\":\n        element = new RRIFrameElement(upperTagName, this.mirror);\n        break;\n      case \"CANVAS\":\n        element = new RRCanvasElement(upperTagName);\n        break;\n      case \"STYLE\":\n        element = new RRStyleElement(upperTagName);\n        break;\n      case \"DIALOG\":\n        element = new RRDialogElement(upperTagName);\n        break;\n      default:\n        element = new RRElement(upperTagName);\n        break;\n    }\n    element.ownerDocument = this;\n    return element;\n  }\n  createComment(data) {\n    const commentNode = new RRComment(data);\n    commentNode.ownerDocument = this;\n    return commentNode;\n  }\n  createCDATASection(data) {\n    const sectionNode = new RRCDATASection(data);\n    sectionNode.ownerDocument = this;\n    return sectionNode;\n  }\n  createTextNode(data) {\n    const textNode = new RRText(data);\n    textNode.ownerDocument = this;\n    return textNode;\n  }\n  destroyTree() {\n    this.firstChild = null;\n    this.lastChild = null;\n    this.mirror.reset();\n  }\n  open() {\n    super.open();\n    this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n  }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"inputData\", null);\n    __publicField(this, \"scrollData\", null);\n  }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"rr_dataURL\", null);\n    __publicField(this, \"canvasMutations\", []);\n  }\n  /**\n   * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n   */\n  getContext() {\n    return null;\n  }\n}\nclass RRStyleElement extends RRElement {\n  constructor() {\n    super(...arguments);\n    __publicField(this, \"rules\", []);\n  }\n}\nclass RRIFrameElement extends RRElement {\n  constructor(upperTagName, mirror) {\n    super(upperTagName);\n    __publicField(this, \"contentDocument\", new RRDocument());\n    this.contentDocument.mirror = mirror;\n  }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n  if (element instanceof HTMLFormElement) {\n    return \"FORM\";\n  }\n  return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n  let rrNode;\n  switch (node2.nodeType) {\n    case NodeType.DOCUMENT_NODE:\n      if (parentRRNode && (parentRRNode.nodeName === \"IFRAME\" || parentRRNode.nodeName === \"FRAME\"))\n        rrNode = parentRRNode.contentDocument;\n      else {\n        rrNode = rrdom;\n        rrNode.compatMode = node2.compatMode;\n      }\n      break;\n    case NodeType.DOCUMENT_TYPE_NODE: {\n      const documentType = node2;\n      rrNode = rrdom.createDocumentType(\n        documentType.name,\n        documentType.publicId,\n        documentType.systemId\n      );\n      break;\n    }\n    case NodeType.ELEMENT_NODE: {\n      const elementNode = node2;\n      const tagName = getValidTagName(elementNode);\n      rrNode = rrdom.createElement(tagName);\n      const rrElement = rrNode;\n      for (const { name, value } of Array.from(elementNode.attributes)) {\n        rrElement.attributes[name] = value;\n      }\n      elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n      elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n      break;\n    }\n    case NodeType.TEXT_NODE:\n      rrNode = rrdom.createTextNode(node2.textContent || \"\");\n      break;\n    case NodeType.CDATA_SECTION_NODE:\n      rrNode = rrdom.createCDATASection(node2.data);\n      break;\n    case NodeType.COMMENT_NODE:\n      rrNode = rrdom.createComment(node2.textContent || \"\");\n      break;\n    // if node is a shadow root\n    case NodeType.DOCUMENT_FRAGMENT_NODE:\n      rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n      break;\n    default:\n      return null;\n  }\n  let sn = domMirror.getMeta(node2);\n  if (rrdom instanceof RRDocument) {\n    if (!sn) {\n      sn = getDefaultSN(rrNode, rrdom.unserializedId);\n      domMirror.add(node2, sn);\n    }\n    rrdom.mirror.add(rrNode, { ...sn });\n  }\n  return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n  function walk2(node2, parentRRNode) {\n    const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n    if (rrNode === null) return;\n    if (\n      // if the parentRRNode isn't a RRIFrameElement\n      (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"FRAME\" && // if node isn't a shadow root\n      node2.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n    ) {\n      parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n      rrNode.parentNode = parentRRNode;\n      rrNode.parentElement = parentRRNode;\n    }\n    if (node2.nodeName === \"IFRAME\" || node2.nodeName === \"FRAME\") {\n      const iframeDoc = node2.contentDocument;\n      iframeDoc && walk2(iframeDoc, rrNode);\n    } else if (node2.nodeType === NodeType.DOCUMENT_NODE || node2.nodeType === NodeType.ELEMENT_NODE || node2.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n      if (node2.nodeType === NodeType.ELEMENT_NODE && node2.shadowRoot)\n        walk2(node2.shadowRoot, rrNode);\n      node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n    }\n  }\n  walk2(dom, null);\n  return rrdom;\n}\nfunction createMirror() {\n  return new Mirror2();\n}\nclass Mirror2 {\n  constructor() {\n    __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n    __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n  }\n  getId(n) {\n    var _a;\n    if (!n) return -1;\n    const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n    return id ?? -1;\n  }\n  getNode(id) {\n    return this.idNodeMap.get(id) || null;\n  }\n  getIds() {\n    return Array.from(this.idNodeMap.keys());\n  }\n  getMeta(n) {\n    return this.nodeMetaMap.get(n) || null;\n  }\n  // removes the node from idNodeMap\n  // doesn't remove the node from nodeMetaMap\n  removeNodeFromMap(n) {\n    const id = this.getId(n);\n    this.idNodeMap.delete(id);\n    if (n.childNodes) {\n      n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n    }\n  }\n  has(id) {\n    return this.idNodeMap.has(id);\n  }\n  hasNode(node2) {\n    return this.nodeMetaMap.has(node2);\n  }\n  add(n, meta) {\n    const id = meta.id;\n    this.idNodeMap.set(id, n);\n    this.nodeMetaMap.set(n, meta);\n  }\n  replace(id, n) {\n    const oldNode = this.getNode(id);\n    if (oldNode) {\n      const meta = this.nodeMetaMap.get(oldNode);\n      if (meta) this.nodeMetaMap.set(n, meta);\n    }\n    this.idNodeMap.set(id, n);\n  }\n  reset() {\n    this.idNodeMap = /* @__PURE__ */ new Map();\n    this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n  }\n}\nfunction getDefaultSN(node2, id) {\n  switch (node2.RRNodeType) {\n    case NodeType$1.Document:\n      return {\n        id,\n        type: node2.RRNodeType,\n        childNodes: []\n      };\n    case NodeType$1.DocumentType: {\n      const doctype = node2;\n      return {\n        id,\n        type: node2.RRNodeType,\n        name: doctype.name,\n        publicId: doctype.publicId,\n        systemId: doctype.systemId\n      };\n    }\n    case NodeType$1.Element:\n      return {\n        id,\n        type: node2.RRNodeType,\n        tagName: node2.tagName.toLowerCase(),\n        // In rrweb data, all tagNames are lowercase.\n        attributes: {},\n        childNodes: []\n      };\n    case NodeType$1.Text:\n      return {\n        id,\n        type: node2.RRNodeType,\n        textContent: node2.textContent || \"\"\n      };\n    case NodeType$1.Comment:\n      return {\n        id,\n        type: node2.RRNodeType,\n        textContent: node2.textContent || \"\"\n      };\n    case NodeType$1.CDATA:\n      return {\n        id,\n        type: node2.RRNodeType,\n        textContent: \"\"\n      };\n  }\n}\nfunction printRRDom(rootNode, mirror) {\n  return walk(rootNode, mirror, \"\");\n}\nfunction walk(node2, mirror, blankSpace) {\n  let printText = `${blankSpace}${mirror.getId(node2)} ${node2.toString()}\n`;\n  if (node2.RRNodeType === NodeType$1.Element) {\n    const element = node2;\n    if (element.shadowRoot)\n      printText += walk(element.shadowRoot, mirror, blankSpace + \"  \");\n  }\n  for (const child of node2.childNodes)\n    printText += walk(child, mirror, blankSpace + \"  \");\n  if (node2.nodeName === \"IFRAME\" || node2.nodeName === \"FRAME\")\n    printText += walk(\n      node2.contentDocument,\n      mirror,\n      blankSpace + \"  \"\n    );\n  return printText;\n}\nexport {\n  BaseRRCDATASection,\n  BaseRRComment,\n  BaseRRDialogElement,\n  BaseRRDocument,\n  BaseRRDocumentType,\n  BaseRRElement,\n  BaseRRMediaElement,\n  BaseRRNode,\n  BaseRRText,\n  ClassList,\n  Mirror2 as Mirror,\n  NodeType,\n  RRCDATASection,\n  RRCanvasElement,\n  RRComment,\n  RRDialogElement,\n  RRDocument,\n  RRDocumentType,\n  RRElement,\n  RRIFrameElement,\n  RRMediaElement,\n  BaseRRNode as RRNode,\n  RRStyleElement,\n  RRText,\n  buildFromDom,\n  buildFromNode,\n  createMirror,\n  createOrGetNode,\n  diff,\n  getDefaultSN,\n  printRRDom\n};\n//# sourceMappingURL=rrdom.js.map\n", "var EventType = /* @__PURE__ */ ((EventType2) => {\n  EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n  EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n  EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n  EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n  EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n  EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n  EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n  return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n  IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n  IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n  IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n  IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n  IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n  IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n  IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n  IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n  IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n  IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n  IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n  IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n  IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n  IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n  IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n  IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n  IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n  return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n  MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n  MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n  MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n  MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n  MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n  MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n  MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n  MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n  MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n  MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n  MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n  return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n  PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n  PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n  PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n  return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n  CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n  CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n  CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n  return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n  MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n  MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n  MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n  MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n  MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n  return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n  ReplayerEvents2[\"Start\"] = \"start\";\n  ReplayerEvents2[\"Pause\"] = \"pause\";\n  ReplayerEvents2[\"Resume\"] = \"resume\";\n  ReplayerEvents2[\"Resize\"] = \"resize\";\n  ReplayerEvents2[\"Finish\"] = \"finish\";\n  ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n  ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n  ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n  ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n  ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n  ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n  ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n  ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n  ReplayerEvents2[\"Flush\"] = \"flush\";\n  ReplayerEvents2[\"StateChange\"] = \"state-change\";\n  ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n  ReplayerEvents2[\"Destroy\"] = \"destroy\";\n  ReplayerEvents2[\"GotoStarted\"] = \"goto-started\";\n  ReplayerEvents2[\"EventsApplied\"] = \"events-applied\";\n  return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n  NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n  NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n  NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n  NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n  NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n  NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n  return NodeType2;\n})(NodeType || {});\nexport {\n  CanvasContext,\n  EventType,\n  IncrementalSource,\n  MediaInteractions,\n  MouseInteractions,\n  NodeType,\n  PointerTypes,\n  ReplayerEvents\n};\n//# sourceMappingURL=rrweb-types.js.map\n", "import { NodeType as RRNodeType } from '@saola.ai/rrweb-types';\nimport type { NWSAPI } from 'nwsapi';\nimport type { CSSStyleDeclaration as CSSStyleDeclarationType } from 'cssstyle';\nimport {\n  BaseRRCDATASection,\n  BaseRRComment,\n  BaseRRDocument,\n  BaseRRDocumentType,\n  BaseRRElement,\n  BaseRRMediaElement,\n  BaseRRNode,\n  BaseRRText,\n  ClassList,\n  type IRRDocument,\n  type CSSStyleDeclaration,\n} from '@saola.ai/rrdom';\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\nconst nwsapi = require('nwsapi');\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\nconst cssom = require('cssom');\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires\nconst cssstyle = require('cssstyle');\n\nexport class RRWindow {\n  scrollLeft = 0;\n  scrollTop = 0;\n  scrollTo(options?: ScrollToOptions) {\n    if (!options) return;\n    if (typeof options.left === 'number') this.scrollLeft = options.left;\n    if (typeof options.top === 'number') this.scrollTop = options.top;\n  }\n}\n\nexport class RRDocument extends BaseRRDocument implements IRRDocument {\n  readonly nodeName = '#document' as const;\n  private _nwsapi: NWSAPI | undefined;\n  get nwsapi(): NWSAPI {\n    if (!this._nwsapi) {\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\n      this._nwsapi = nwsapi({\n        document: this as unknown as Document,\n        DOMException: null as unknown as new (\n          message?: string,\n          name?: string,\n        ) => DOMException,\n      }) as NWSAPI;\n      this._nwsapi.configure({\n        LOGERRORS: false,\n        IDS_DUPES: true,\n        MIXEDCASE: true,\n      });\n    }\n    return this._nwsapi;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get documentElement(): RRElement | null {\n    return super.documentElement as RRElement | null;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get body(): RRElement | null {\n    return super.body as RRElement | null;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get head() {\n    return super.head as RRElement | null;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get implementation(): RRDocument {\n    return this;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get firstElementChild(): RRElement | null {\n    return this.documentElement;\n  }\n\n  appendChild(childNode: BaseRRNode) {\n    return super.appendChild(childNode);\n  }\n\n  insertBefore(newChild: BaseRRNode, refChild: BaseRRNode | null) {\n    return super.insertBefore(newChild, refChild);\n  }\n\n  querySelectorAll(selectors: string): BaseRRNode[] {\n    return this.nwsapi.select(selectors) as unknown as BaseRRNode[];\n  }\n\n  getElementsByTagName(tagName: string): RRElement[] {\n    if (this.documentElement)\n      return this.documentElement.getElementsByTagName(tagName);\n    return [];\n  }\n\n  getElementsByClassName(className: string): RRElement[] {\n    if (this.documentElement)\n      return this.documentElement.getElementsByClassName(className);\n    return [];\n  }\n\n  getElementById(elementId: string): RRElement | null {\n    if (this.documentElement)\n      return this.documentElement.getElementById(elementId);\n    return null;\n  }\n\n  createDocument(\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _namespace: string | null,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _qualifiedName: string | null,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _doctype?: DocumentType | null,\n  ) {\n    return new RRDocument();\n  }\n\n  createDocumentType(\n    qualifiedName: string,\n    publicId: string,\n    systemId: string,\n  ) {\n    const documentTypeNode = new RRDocumentType(\n      qualifiedName,\n      publicId,\n      systemId,\n    );\n    documentTypeNode.ownerDocument = this;\n    return documentTypeNode;\n  }\n\n  createElement<K extends keyof HTMLElementTagNameMap>(\n    tagName: K,\n  ): RRElementType<K>;\n  createElement(tagName: string): RRElement;\n  createElement(tagName: string) {\n    const upperTagName = tagName.toUpperCase();\n    let element;\n    switch (upperTagName) {\n      case 'AUDIO':\n      case 'VIDEO':\n        element = new RRMediaElement(upperTagName);\n        break;\n      case 'IFRAME':\n      case 'FRAME':\n        element = new RRIFrameElement(upperTagName);\n        break;\n      case 'IMG':\n        element = new RRImageElement(upperTagName);\n        break;\n      case 'CANVAS':\n        element = new RRCanvasElement(upperTagName);\n        break;\n      case 'STYLE':\n        element = new RRStyleElement(upperTagName);\n        break;\n      default:\n        element = new RRElement(upperTagName);\n        break;\n    }\n    element.ownerDocument = this;\n    return element;\n  }\n\n  createElementNS(_namespaceURI: string, qualifiedName: string) {\n    return this.createElement(qualifiedName as keyof HTMLElementTagNameMap);\n  }\n\n  createComment(data: string) {\n    const commentNode = new RRComment(data);\n    commentNode.ownerDocument = this;\n    return commentNode;\n  }\n\n  createCDATASection(data: string) {\n    const sectionNode = new RRCDATASection(data);\n    sectionNode.ownerDocument = this;\n    return sectionNode;\n  }\n\n  createTextNode(data: string) {\n    const textNode = new RRText(data);\n    textNode.ownerDocument = this;\n    return textNode;\n  }\n}\n\nexport class RRDocumentType extends BaseRRDocumentType {}\n\nexport class RRElement extends BaseRRElement {\n  private _style: CSSStyleDeclarationType;\n  constructor(tagName: string) {\n    super(tagName);\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n    this._style = new cssstyle.CSSStyleDeclaration();\n    const style = this._style;\n    Object.defineProperty(this.attributes, 'style', {\n      get() {\n        return style.cssText;\n      },\n      set(cssText: string) {\n        style.cssText = cssText;\n      },\n    });\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  get style() {\n    return this._style as unknown as CSSStyleDeclaration;\n  }\n\n  attachShadow(_init: ShadowRootInit): RRElement {\n    return super.attachShadow(_init) as RRElement;\n  }\n\n  appendChild(newChild: BaseRRNode): BaseRRNode {\n    return super.appendChild(newChild) as BaseRRNode;\n  }\n\n  insertBefore(newChild: BaseRRNode, refChild: BaseRRNode | null): BaseRRNode {\n    return super.insertBefore(newChild, refChild) as BaseRRNode;\n  }\n\n  getAttribute(name: string) {\n    const upperName = name && name.toLowerCase();\n    if (upperName in this.attributes) return this.attributes[upperName];\n    return null;\n  }\n\n  setAttribute(name: string, attribute: string) {\n    this.attributes[name.toLowerCase()] = attribute;\n  }\n\n  removeAttribute(name: string) {\n    delete this.attributes[name.toLowerCase()];\n  }\n\n  get firstElementChild(): RRElement | null {\n    for (const child of this.childNodes)\n      if (child.RRNodeType === RRNodeType.Element) return child as RRElement;\n    return null;\n  }\n\n  get nextElementSibling(): RRElement | null {\n    const parentNode = this.parentNode;\n    if (!parentNode) return null;\n    const siblings = parentNode.childNodes;\n    const index = siblings.indexOf(this);\n    for (let i = index + 1; i < siblings.length; i++)\n      if (siblings[i] instanceof RRElement) return siblings[i] as RRElement;\n    return null;\n  }\n\n  querySelectorAll(selectors: string): BaseRRNode[] {\n    const result: RRElement[] = [];\n    if (this.ownerDocument !== null) {\n      (this.ownerDocument as RRDocument).nwsapi.select(\n        selectors,\n        this as unknown as Element,\n        (element) => {\n          if ((element as unknown as RRElement) !== this)\n            result.push(element as unknown as RRElement);\n        },\n      ) as unknown as BaseRRNode[];\n    }\n    return result;\n  }\n\n  getElementById(elementId: string): RRElement | null {\n    if (this.id === elementId) return this;\n    for (const child of this.childNodes) {\n      if (child instanceof RRElement) {\n        const result = child.getElementById(elementId);\n        if (result !== null) return result;\n      }\n    }\n    return null;\n  }\n\n  getElementsByClassName(className: string): RRElement[] {\n    let elements: RRElement[] = [];\n    const queryClassList = new ClassList(className);\n    // Make sure this element has all queried class names.\n    if (\n      this instanceof RRElement &&\n      queryClassList.classes.filter((queriedClassName) =>\n        this.classList.classes.some((name) => name === queriedClassName),\n      ).length == queryClassList.classes.length\n    )\n      elements.push(this);\n    for (const child of this.childNodes) {\n      if (child instanceof RRElement)\n        elements = elements.concat(child.getElementsByClassName(className));\n    }\n    return elements;\n  }\n\n  getElementsByTagName(tagName: string): RRElement[] {\n    let elements: RRElement[] = [];\n    const normalizedTagName = tagName.toUpperCase();\n    if (this instanceof RRElement && this.tagName === normalizedTagName)\n      elements.push(this);\n    for (const child of this.childNodes) {\n      if (child instanceof RRElement)\n        elements = elements.concat(child.getElementsByTagName(tagName));\n    }\n    return elements;\n  }\n}\n\nexport class RRImageElement extends RRElement {\n  src = '';\n  width = 0;\n  height = 0;\n  onload: ((this: GlobalEventHandlers, ev: Event) => unknown) | null = null;\n}\n\nexport class RRMediaElement extends BaseRRMediaElement {}\n\nexport class RRCanvasElement extends RRElement {\n  /**\n   * This is just a dummy implementation to prevent rrweb replayer from drawing mouse tail. If further analysis of canvas is needed, we may implement it with node-canvas.\n   */\n  getContext(): CanvasRenderingContext2D | null {\n    return null;\n  }\n}\n\nexport class RRStyleElement extends RRElement {\n  private _sheet: CSSStyleSheet | null = null;\n\n  get sheet() {\n    if (!this._sheet) {\n      let result = '';\n      for (const child of this.childNodes)\n        if (child.RRNodeType === RRNodeType.Text)\n          result += (child as RRText).textContent;\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment\n      this._sheet = cssom.parse(result);\n    }\n    return this._sheet;\n  }\n}\n\nexport class RRIFrameElement extends RRElement {\n  width = '';\n  height = '';\n  src = '';\n  contentDocument: RRDocument = new RRDocument();\n  contentWindow: RRWindow = new RRWindow();\n\n  constructor(tagName: string) {\n    super(tagName);\n    const htmlElement = this.contentDocument.createElement('HTML');\n    this.contentDocument.appendChild(htmlElement);\n    htmlElement.appendChild(this.contentDocument.createElement('HEAD'));\n    htmlElement.appendChild(this.contentDocument.createElement('BODY'));\n  }\n}\n\nexport class RRText extends BaseRRText {\n  readonly nodeName = '#text' as const;\n}\n\nexport class RRComment extends BaseRRComment {\n  readonly nodeName = '#comment' as const;\n}\n\nexport class RRCDATASection extends BaseRRCDATASection {\n  readonly nodeName = '#cdata-section' as const;\n}\n\ninterface RRElementTagNameMap {\n  audio: RRMediaElement;\n  canvas: RRCanvasElement;\n  iframe: RRIFrameElement;\n  img: RRImageElement;\n  style: RRStyleElement;\n  video: RRMediaElement;\n}\n\ntype RRElementType<K extends keyof HTMLElementTagNameMap> =\n  K extends keyof RRElementTagNameMap ? RRElementTagNameMap[K] : RRElement;\n", "import { BaseRRNode } from '@saola.ai/rrdom';\nimport { RRDocument } from './document-nodejs';\n\n/**\n * Polyfill the performance for nodejs.\n * Note: The performance api is available through the global object from nodejs v16.0.0.\n * https://github.com/nodejs/node/pull/37970\n */\nexport function polyfillPerformance() {\n  if (typeof window !== 'undefined' || 'performance' in global) return;\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-var-requires\n  const performance = require('perf_hooks').performance;\n  ((global as Window & typeof globalThis).performance as unknown) = performance;\n}\n\n/**\n * Polyfill requestAnimationFrame and cancelAnimationFrame for nodejs.\n */\nexport function polyfillRAF() {\n  if (typeof window !== 'undefined' || 'requestAnimationFrame' in global)\n    return;\n\n  const FPS = 60,\n    INTERVAL = 1_000 / FPS;\n  let timeoutHandle: NodeJS.Timeout | null = null,\n    rafCount = 0,\n    requests = Object.create(null) as Record<string, (time: number) => void>;\n\n  function onFrameTimer() {\n    const currentRequests = requests;\n    requests = Object.create(null) as Record<string, (time: number) => void>;\n    timeoutHandle = null;\n    Object.keys(currentRequests).forEach(function (id) {\n      const request = currentRequests[id];\n      if (request) request(Date.now());\n    });\n  }\n\n  function requestAnimationFrame(callback: (timestamp: number) => void) {\n    const cbHandle = ++rafCount;\n    requests[cbHandle] = callback;\n    if (timeoutHandle === null)\n      timeoutHandle = setTimeout(onFrameTimer, INTERVAL);\n    return cbHandle;\n  }\n\n  function cancelAnimationFrame(handleId: number) {\n    delete requests[handleId];\n    if (Object.keys(requests).length === 0 && timeoutHandle !== null) {\n      clearTimeout(timeoutHandle);\n      timeoutHandle = null;\n    }\n  }\n\n  (global as Window & typeof globalThis).requestAnimationFrame =\n    requestAnimationFrame;\n  (global as Window & typeof globalThis).cancelAnimationFrame =\n    cancelAnimationFrame;\n}\n\n/**\n * Try to polyfill Event type.\n * The implementation of Event so far is empty because rrweb doesn't strongly depend on it in nodejs mode.\n * Note: The Event class is available through the global object from nodejs v15.0.0.\n */\nexport function polyfillEvent() {\n  if (typeof Event !== 'undefined') return;\n  (global.Event as unknown) = function () {\n    //\n  };\n}\n\n/**\n * Polyfill Node type with BaseRRNode for nodejs.\n */\nexport function polyfillNode() {\n  if (typeof Node !== 'undefined') return;\n  (global.Node as unknown) = BaseRRNode;\n}\n\n/**\n *  Polyfill document object with RRDocument for nodejs.\n */\nexport function polyfillDocument() {\n  if (typeof document !== 'undefined') return;\n  const rrdom = new RRDocument();\n  (() => {\n    rrdom.appendChild(rrdom.createElement('html'));\n    rrdom.documentElement?.appendChild(rrdom.createElement('head'));\n    rrdom.documentElement?.appendChild(rrdom.createElement('body'));\n  })();\n  global.document = rrdom as unknown as Document;\n}\n", "import {\n  polyfillPerformance,\n  polyfillRAF,\n  polyfillEvent,\n  polyfillNode,\n  polyfillDocument,\n} from './polyfill';\npolyfillPerformance();\npolyfillRAF();\npolyfillEvent();\npolyfillNode();\npolyfillDocument();\nexport * from './document-nodejs';\n"],
  "mappings": "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",
  "names": ["__defProp", "__defNormalProp", "obj", "key", "value", "__publicField", "getDefaultExportFromCjs", "x", "getAugmentedNamespace", "n", "f", "a", "a2", "k", "d", "picocolors_browser", "hasRequiredPicocolors_browser", "requirePicocolors_browser", "create", "__viteBrowserExternal", "__viteBrowserExternal$1", "require$$2", "cssSyntaxError", "hasRequiredCssSyntaxError", "requireCssSyntaxError", "pico", "terminalHighlight", "CssSyntaxError", "message", "line", "column", "source", "file", "plugin", "color", "css", "aside", "text", "mark", "highlight", "bold", "gray", "red", "lines", "start", "end", "maxWidth", "index2", "number", "gutter", "padding", "subLineStart", "subLineEnd", "subLine", "spacing2", "spacing", "code", "stringifier", "hasRequiredStringifier", "requireStringifier", "STYLE_TAG", "COMMENT_OPEN", "escapeHTMLInCSS", "str", "DEFAULT_RAW", "capitalize", "Stringifier", "builder", "node2", "semicolon", "name", "params", "detect", "buf", "depth", "indent", "step", "between", "after", "last", "isDocument", "i", "child", "before", "left", "right", "string", "own", "parent", "root2", "method", "p", "parts", "prop", "raw", "stringify_1", "hasRequiredStringify", "requireStringify", "stringify", "symbols", "hasRequiredSymbols", "requireSymbols", "node", "hasRequiredNode", "requireNode", "isClean", "my", "cloneNode", "cloned", "type", "j", "sourceOffset", "inputCSS", "position", "offset", "Node", "defaults", "error", "s", "add", "overrides", "keepBetween", "opts", "next", "pos", "inputString", "defaultType", "nodes", "bookmark", "foundSelf", "result2", "_", "inputs", "fixed", "emitInputs", "inputsNextIndex", "inputId", "input2", "stringifier2", "data", "comment", "hasRequiredComment", "requireComment", "Comment", "declaration", "hasRequiredDeclaration", "requireDeclaration", "Declaration", "__spreadProps", "__spreadValues", "container", "hasRequiredContainer", "requireContainer", "AtRule", "parse", "Root", "Rule", "cleanSource", "markTreeDirty", "Container", "children", "callback", "iterator", "condition", "args", "cb", "other", "exist", "existIndex", "id", "sample", "pattern", "decl", "e", "selector", "dependant", "atRule", "hasRequiredAtRule", "requireAtRule", "document$1", "hasRequiredDocument", "requireDocument", "LazyResult", "Processor", "Document2", "nonSecure", "hasRequiredNonSecure", "requireNonSecure", "urlAlphabet", "size", "alphabet", "defaultSize", "previousMap", "hasRequiredPreviousMap", "requirePreviousMap", "existsSync", "readFileSync", "dirname", "join", "SourceMapConsumer", "SourceMapGenerator", "fromBase64", "PreviousMap", "prev", "baseCharsetUri", "baseUri", "charsetUri", "uri", "uriMatch", "baseUriMatch", "encoding", "sourceMapString", "map", "comments", "path", "prevPath", "input", "hasRequiredInput", "requireInput", "nanoid", "isAbsolute", "resolve", "fileURLToPath", "pathToFileURL", "lineToIndexCache", "sourceMapAvailable", "pathAvailable", "getLineToIndex", "lineToIndex", "prevIndex", "l", "Input", "endColumn", "endLine", "endOffset", "origin", "lastLine", "min", "max", "mid", "consumer", "from", "to", "fromUrl", "json", "root", "hasRequiredRoot", "requireRoot", "ignore", "list_1", "hasRequiredList", "requireList", "list", "spaces", "separators", "array", "current", "split", "func", "inQuote", "prevQuote", "escape", "letter", "rule", "hasRequiredRule", "requireRule", "values", "match", "sep", "fromJSON_1", "hasRequiredFromJSON", "requireFromJSON", "fromJSON", "_a", "ownInputs", "__objRest", "inputHydrated", "_b", "mapGenerator", "hasRequiredMapGenerator", "requireMapGenerator", "relative", "MapGenerator", "cssString", "content", "eol", "startIndex", "endIndex", "noSource", "mapping", "annotation", "cached", "already", "fileURL", "url", "tokenize", "hasRequiredTokenize", "requireTokenize", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACKSLASH", "SLASH", "NEWLINE", "SPACE", "FEED", "TAB", "CR", "OPEN_SQUARE", "CLOSE_SQUARE", "OPEN_PARENTHESES", "CLOSE_PARENTHESES", "OPEN_CURLY", "CLOSE_CURLY", "SEMICOLON", "ASTERISK", "COLON", "AT", "RE_AT_END", "RE_WORD_END", "RE_BAD_BRACKET", "RE_HEX_ESCAPE", "options", "quote", "currentToken", "escaped", "escapePos", "length", "buffer", "returned", "unclosed", "what", "endOfFile", "nextToken", "ignoreUnclosed", "controlChar", "back", "token", "parser", "hasRequiredParser", "requireParser", "tokenizer", "SAFE_COMMENT_NEIGHBOR", "findLastWithPosition", "tokens", "Parser", "shift", "open", "brackets", "colon", "founded", "element", "customProperty", "firstSpaces", "cache", "bracket", "clean", "all", "lastTokenType", "parse_1", "hasRequiredParse", "requireParse", "parser2", "warning", "hasRequiredWarning", "requireWarning", "Warning", "range", "opt", "result", "hasRequiredResult", "requireResult", "Result", "processor2", "warning2", "warnOnce", "hasRequiredWarnOnce", "requireWarnOnce", "printed", "lazyResult", "hasRequiredLazyResult", "requireLazyResult", "warnOnce2", "TYPE_TO_CLASS_NAME", "PLUGIN_PROPS", "NOT_VISITORS", "CHILDREN", "isPromise", "getEvents", "toStack", "events", "cleanMarks", "postcss2", "onRejected", "onFinally", "err", "event", "filter", "promise", "stack", "visitor", "roots", "subRoot", "onFulfilled", "visitors", "visit2", "noWorkResult", "hasRequiredNoWorkResult", "requireNoWorkResult", "NoWorkResult", "self", "generatedCSS", "generatedMap", "processor", "hasRequiredProcessor", "requireProcessor", "plugins", "normalized", "postcss_1", "hasRequiredPostcss", "requirePostcss", "initializer", "warningPrinted", "creator", "transformer", "processOpts", "pluginOpts", "postcssExports", "postcss", "NodeType$1", "NodeType2", "parseCSSText", "cssText", "res", "listDelimiter", "propertyDelimiter", "comment2", "item", "tmp", "camelize", "toCSSText", "style", "properties", "normalizedName", "hyphenate", "camelizeRE", "CUSTOM_PROPERTY_REGEX", "c", "hyphenateRE", "BaseRRNode", "_args", "childNodes", "childIterator", "_newChild", "_refChild", "_node", "BaseRRDocument", "newChild", "nodeType", "appendChild", "refChild", "insertBefore", "removeChild", "publicId", "doctype", "_namespace", "_qualifiedName", "_doctype", "qualifiedName", "systemId", "BaseRRDocumentType", "tagName", "BaseRRElement", "_namespaceURI", "BaseRRText", "BaseRRComment", "CDATASection", "BaseRRCDATASection", "textContent", "ClassList", "newClassName", "hyphenateRE2", "priority", "attribute", "_init", "shadowRoot", "_event", "attributeString", "BaseRRMediaElement", "classText", "onChange", "classNames", "className", "classes", "NodeType", "nwsapi", "cssom", "cssstyle", "RRWindow", "RRDocument", "childNode", "selectors", "elementId", "documentTypeNode", "RRDocumentType", "upperTagName", "RRMediaElement", "RRIFrameElement", "RRImageElement", "RRCanvasElement", "RRStyleElement", "RRElement", "commentNode", "RRComment", "sectionNode", "RRCDATASection", "textNode", "RRText", "upperName", "RRNodeType", "parentNode", "siblings", "index", "elements", "queryClassList", "queriedClassName", "normalizedTagName", "htmlElement", "polyfillPerformance", "performance", "polyfillRAF", "FPS", "INTERVAL", "timeoutHandle", "rafCount", "requests", "onFrameTimer", "currentRequests", "request", "requestAnimationFrame", "cbHandle", "cancelAnimationFrame", "handleId", "polyfillEvent", "polyfillNode", "polyfillDocument", "rrdom"]
}
