.js
JavaScript
(text/javascript)
var _self =
    "undefined" != typeof window
      ? window
      : "undefined" != typeof WorkerGlobalScope &&
        self instanceof WorkerGlobalScope
      ? self
      : {},
  Prism = (function (e) {
    var t = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,
      n = 0,
      r = {},
      a = {
        manual: e.Prism && e.Prism.manual,
        disableWorkerMessageHandler:
          e.Prism && e.Prism.disableWorkerMessageHandler,
        util: {
          encode: function e(t) {
            return t instanceof i
              ? new i(t.type, e(t.content), t.alias)
              : Array.isArray(t)
              ? t.map(e)
              : t
                  .replace(/&/g, "&")
                  .replace(/</g, "&lt;")
                  .replace(/\u00a0/g, " ");
          },
          type: function (e) {
            return Object.prototype.toString.call(e).slice(8, -1);
          },
          objId: function (e) {
            return (
              e.__id || Object.defineProperty(e, "__id", { value: ++n }), e.__id
            );
          },
          clone: function e(t, n) {
            var r, i;
            switch (((n = n || {}), a.util.type(t))) {
              case "Object":
                if (((i = a.util.objId(t)), n[i])) return n[i];
                for (var s in ((r = {}), (n[i] = r), t))
                  t.hasOwnProperty(s) && (r[s] = e(t[s], n));
                return r;
              case "Array":
                return (
                  (i = a.util.objId(t)),
                  n[i]
                    ? n[i]
                    : ((r = []),
                      (n[i] = r),
                      t.forEach(function (t, a) {
                        r[a] = e(t, n);
                      }),
                      r)
                );
              default:
                return t;
            }
          },
          getLanguage: function (e) {
            for (; e; ) {
              var n = t.exec(e.className);
              if (n) return n[1].toLowerCase();
              e = e.parentElement;
            }
            return "none";
          },
          setLanguage: function (e, n) {
            (e.className = e.className.replace(RegExp(t, "gi"), "")),
              e.classList.add("language-" + n);
          },
          currentScript: function () {
            if ("undefined" == typeof document) return null;
            if ("currentScript" in document) return document.currentScript;
            try {
              throw new Error();
            } catch (r) {
              var e = (/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack) ||
                [])[1];
              if (e) {
                var t = document.getElementsByTagName("script");
                for (var n in t) if (t[n].src == e) return t[n];
              }
              return null;
            }
          },
          isActive: function (e, t, n) {
            for (var r = "no-" + t; e; ) {
              var a = e.classList;
              if (a.contains(t)) return !0;
              if (a.contains(r)) return !1;
              e = e.parentElement;
            }
            return !!n;
          },
        },
        languages: {
          plain: r,
          plaintext: r,
          text: r,
          txt: r,
          extend: function (e, t) {
            var n = a.util.clone(a.languages[e]);
            for (var r in t) n[r] = t[r];
            return n;
          },
          insertBefore: function (e, t, n, r) {
            var i = (r = r || a.languages)[e],
              s = {};
            for (var l in i)
              if (i.hasOwnProperty(l)) {
                if (l == t)
                  for (var o in n) n.hasOwnProperty(o) && (s[o] = n[o]);
                n.hasOwnProperty(l) || (s[l] = i[l]);
              }
            var u = r[e];
            return (
              (r[e] = s),
              a.languages.DFS(a.languages, function (t, n) {
                n === u && t != e && (this[t] = s);
              }),
              s
            );
          },
          DFS: function e(t, n, r, i) {
            i = i || {};
            var s = a.util.objId;
            for (var l in t)
              if (t.hasOwnProperty(l)) {
                n.call(t, l, t[l], r || l);
                var o = t[l],
                  u = a.util.type(o);
                "Object" !== u || i[s(o)]
                  ? "Array" !== u || i[s(o)] || ((i[s(o)] = !0), e(o, n, l, i))
                  : ((i[s(o)] = !0), e(o, n, null, i));
              }
          },
        },
        plugins: {},
        highlightAll: function (e, t) {
          a.highlightAllUnder(document, e, t);
        },
        highlightAllUnder: function (e, t, n) {
          var r = {
            callback: n,
            container: e,
            selector:
              'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code',
          };
          a.hooks.run("before-highlightall", r),
            (r.elements = Array.prototype.slice.apply(
              r.container.querySelectorAll(r.selector)
            )),
            a.hooks.run("before-all-elements-highlight", r);
          for (var i, s = 0; (i = r.elements[s++]); )
            a.highlightElement(i, !0 === t, r.callback);
        },
        highlightElement: function (t, n, r) {
          var i = a.util.getLanguage(t),
            s = a.languages[i];
          a.util.setLanguage(t, i);
          var l = t.parentElement;
          l && "pre" === l.nodeName.toLowerCase() && a.util.setLanguage(l, i);
          var o = { element: t, language: i, grammar: s, code: t.textContent };
          function u(e) {
            (o.highlightedCode = e),
              a.hooks.run("before-insert", o),
              (o.element.innerHTML = o.highlightedCode),
              a.hooks.run("after-highlight", o),
              a.hooks.run("complete", o),
              r && r.call(o.element);
          }
          if (
            (a.hooks.run("before-sanity-check", o),
            (l = o.element.parentElement) &&
              "pre" === l.nodeName.toLowerCase() &&
              !l.hasAttribute("tabindex") &&
              l.setAttribute("tabindex", "0"),
            !o.code)
          )
            return a.hooks.run("complete", o), void (r && r.call(o.element));
          if ((a.hooks.run("before-highlight", o), o.grammar))
            if (n && e.Worker) {
              var c = new Worker(a.filename);
              (c.onmessage = function (e) {
                u(e.data);
              }),
                c.postMessage(
                  JSON.stringify({
                    language: o.language,
                    code: o.code,
                    immediateClose: !0,
                  })
                );
            } else u(a.highlight(o.code, o.grammar, o.language));
          else u(a.util.encode(o.code));
        },
        highlight: function (e, t, n) {
          var r = { code: e, grammar: t, language: n };
          if ((a.hooks.run("before-tokenize", r), !r.grammar))
            throw new Error(
              'The language "' + r.language + '" has no grammar.'
            );
          return (
            (r.tokens = a.tokenize(r.code, r.grammar)),
            a.hooks.run("after-tokenize", r),
            i.stringify(a.util.encode(r.tokens), r.language)
          );
        },
        tokenize: function (e, t) {
          var n = t.rest;
          if (n) {
            for (var r in n) t[r] = n[r];
            delete t.rest;
          }
          var u = new (function () {
            var e = { value: null, prev: null, next: null },
              t = { value: null, prev: e, next: null };
            (e.next = t), (this.head = e), (this.tail = t), (this.length = 0);
          })();
          return (
            l(u, u.head, e),
            (function e(t, n, r, u, c, p) {
              for (var g in r)
                if (r.hasOwnProperty(g) && r[g]) {
                  var d = r[g];
                  d = Array.isArray(d) ? d : [d];
                  for (var m = 0; m < d.length; ++m) {
                    if (p && p.cause == g + "," + m) return;
                    var f = d[m],
                      h = f.inside,
                      v = !!f.lookbehind,
                      b = !!f.greedy,
                      k = f.alias;
                    if (b && !f.pattern.global) {
                      var y = f.pattern.toString().match(/[imsuy]*$/)[0];
                      f.pattern = RegExp(f.pattern.source, y + "g");
                    }
                    for (
                      var x = f.pattern || f, w = u.next, P = c;
                      w !== n.tail && !(p && P >= p.reach);
                      P += w.value.length, w = w.next
                    ) {
                      var F = w.value;
                      if (n.length > t.length) return;
                      if (!(F instanceof i)) {
                        var A,
                          j = 1;
                        if (b) {
                          if (!(A = s(x, P, t, v)) || A.index >= t.length)
                            break;
                          var S = A.index,
                            $ = A.index + A[0].length,
                            E = P;
                          for (E += w.value.length; S >= E; )
                            (w = w.next), (E += w.value.length);
                          if (
                            ((E -= w.value.length),
                            (P = E),
                            w.value instanceof i)
                          )
                            continue;
                          for (
                            var C = w;
                            C !== n.tail &&
                            (E < $ || "string" == typeof C.value);
                            C = C.next
                          )
                            j++, (E += C.value.length);
                          j--, (F = t.slice(P, E)), (A.index -= P);
                        } else if (!(A = s(x, 0, F, v))) continue;
                        var S = A.index,
                          L = A[0],
                          z = F.slice(0, S),
                          _ = F.slice(S + L.length),
                          T = P + F.length;
                        p && T > p.reach && (p.reach = T);
                        var q = w.prev;
                        z && ((q = l(n, q, z)), (P += z.length)), o(n, q, j);
                        var N = new i(g, h ? a.tokenize(L, h) : L, k, L);
                        if (((w = l(n, q, N)), _ && l(n, w, _), j > 1)) {
                          var O = { cause: g + "," + m, reach: T };
                          e(t, n, r, w.prev, P, O),
                            p && O.reach > p.reach && (p.reach = O.reach);
                        }
                      }
                    }
                  }
                }
            })(e, u, t, u.head, 0),
            (function (e) {
              var t = [],
                n = e.head.next;
              for (; n !== e.tail; ) t.push(n.value), (n = n.next);
              return t;
            })(u)
          );
        },
        hooks: {
          all: {},
          add: function (e, t) {
            var n = a.hooks.all;
            (n[e] = n[e] || []), n[e].push(t);
          },
          run: function (e, t) {
            var n = a.hooks.all[e];
            if (n && n.length) for (var r, i = 0; (r = n[i++]); ) r(t);
          },
        },
        Token: i,
      };
    function i(e, t, n, r) {
      (this.type = e),
        (this.content = t),
        (this.alias = n),
        (this.length = 0 | (r || "").length);
    }
    function s(e, t, n, r) {
      e.lastIndex = t;
      var a = e.exec(n);
      if (a && r && a[1]) {
        var i = a[1].length;
        (a.index += i), (a[0] = a[0].slice(i));
      }
      return a;
    }
    function l(e, t, n) {
      var r = t.next,
        a = { value: n, prev: t, next: r };
      return (t.next = a), (r.prev = a), e.length++, a;
    }
    function o(e, t, n) {
      for (var r = t.next, a = 0; a < n && r !== e.tail; a++) r = r.next;
      (t.next = r), (r.prev = t), (e.length -= a);
    }
    if (
      ((e.Prism = a),
      (i.stringify = function e(t, n) {
        if ("string" == typeof t) return t;
        if (Array.isArray(t)) {
          var r = "";
          return (
            t.forEach(function (t) {
              r += e(t, n);
            }),
            r
          );
        }
        var i = {
            type: t.type,
            content: e(t.content, n),
            tag: "span",
            classes: ["token", t.type],
            attributes: {},
            language: n,
          },
          s = t.alias;
        s &&
          (Array.isArray(s)
            ? Array.prototype.push.apply(i.classes, s)
            : i.classes.push(s)),
          a.hooks.run("wrap", i);
        var l = "";
        for (var o in i.attributes)
          l +=
            " " +
            o +
            '="' +
            (i.attributes[o] || "").replace(/"/g, "&quot;") +
            '"';
        return (
          "<" +
          i.tag +
          ' class="' +
          i.classes.join(" ") +
          '"' +
          l +
          ">" +
          i.content +
          "</" +
          i.tag +
          ">"
        );
      }),
      !e.document)
    )
      return e.addEventListener
        ? (a.disableWorkerMessageHandler ||
            e.addEventListener(
              "message",
              function (t) {
                var n = JSON.parse(t.data),
                  r = n.language,
                  i = n.code,
                  s = n.immediateClose;
                e.postMessage(a.highlight(i, a.languages[r], r)),
                  s && e.close();
              },
              !1
            ),
          a)
        : a;
    var u = a.util.currentScript();
    function c() {
      a.manual || a.highlightAll();
    }
    if (
      (u &&
        ((a.filename = u.src),
        u.hasAttribute("data-manual") && (a.manual = !0)),
      !a.manual)
    ) {
      var p = document.readyState;
      "loading" === p || ("interactive" === p && u && u.defer)
        ? document.addEventListener("DOMContentLoaded", c)
        : window.requestAnimationFrame
        ? window.requestAnimationFrame(c)
        : window.setTimeout(c, 16);
    }
    return a;
  })(_self);
"undefined" != typeof module && module.exports && (module.exports = Prism),
  "undefined" != typeof global && (global.Prism = Prism),
  (Prism.languages.markup = {
    comment: { pattern: /<!--(?:(?!<!--)[\s\S])*?-->/, greedy: !0 },
    prolog: { pattern: /<\?[\s\S]+?\?>/, greedy: !0 },
    doctype: {
      pattern:
        /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
      greedy: !0,
      inside: {
        "internal-subset": {
          pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/,
          lookbehind: !0,
          greedy: !0,
          inside: null,
        },
        string: { pattern: /"[^"]*"|'[^']*'/, greedy: !0 },
        punctuation: /^<!|>$|[[\]]/,
        "doctype-tag": /^DOCTYPE/i,
        name: /[^\s<>'"]+/,
      },
    },
    cdata: { pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i, greedy: !0 },
    tag: {
      pattern:
        /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
      greedy: !0,
      inside: {
        tag: {
          pattern: /^<\/?[^\s>\/]+/,
          inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ },
        },
        "special-attr": [],
        "attr-value": {
          pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
          inside: {
            punctuation: [
              { pattern: /^=/, alias: "attr-equals" },
              { pattern: /^(\s*)["']|["']$/, lookbehind: !0 },
            ],
          },
        },
        punctuation: /\/?>/,
        "attr-name": {
          pattern: /[^\s>\/]+/,
          inside: { namespace: /^[^\s>\/:]+:/ },
        },
      },
    },
    entity: [
      { pattern: /&[\da-z]{1,8};/i, alias: "named-entity" },
      /&#x?[\da-f]{1,8};/i,
    ],
  }),
  (Prism.languages.markup.tag.inside["attr-value"].inside.entity =
    Prism.languages.markup.entity),
  (Prism.languages.markup.doctype.inside["internal-subset"].inside =
    Prism.languages.markup),
  Prism.hooks.add("wrap", function (e) {
    "entity" === e.type &&
      (e.attributes.title = e.content.replace(/&amp;/, "&"));
  }),
  Object.defineProperty(Prism.languages.markup.tag, "addInlined", {
    value: function (e, t) {
      var n = {};
      (n["language-" + t] = {
        pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
        lookbehind: !0,
        inside: Prism.languages[t],
      }),
        (n.cdata = /^<!\[CDATA\[|\]\]>$/i);
      var r = {
        "included-cdata": { pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i, inside: n },
      };
      r["language-" + t] = { pattern: /[\s\S]+/, inside: Prism.languages[t] };
      var a = {};
      (a[e] = {
        pattern: RegExp(
          /(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(
            /__/g,
            function () {
              return e;
            }
          ),
          "i"
        ),
        lookbehind: !0,
        greedy: !0,
        inside: r,
      }),
        Prism.languages.insertBefore("markup", "cdata", a);
    },
  }),
  Object.defineProperty(Prism.languages.markup.tag, "addAttribute", {
    value: function (e, t) {
      Prism.languages.markup.tag.inside["special-attr"].push({
        pattern: RegExp(
          /(^|["'\s])/.source +
            "(?:" +
            e +
            ")" +
            /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,
          "i"
        ),
        lookbehind: !0,
        inside: {
          "attr-name": /^[^\s=]+/,
          "attr-value": {
            pattern: /=[\s\S]+/,
            inside: {
              value: {
                pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,
                lookbehind: !0,
                alias: [t, "language-" + t],
                inside: Prism.languages[t],
              },
              punctuation: [{ pattern: /^=/, alias: "attr-equals" }, /"|'/],
            },
          },
        },
      });
    },
  }),
  (Prism.languages.html = Prism.languages.markup),
  (Prism.languages.mathml = Prism.languages.markup),
  (Prism.languages.svg = Prism.languages.markup),
  (Prism.languages.xml = Prism.languages.extend("markup", {})),
  (Prism.languages.ssml = Prism.languages.xml),
  (Prism.languages.atom = Prism.languages.xml),
  (Prism.languages.rss = Prism.languages.xml),
  (function (e) {
    var t =
      /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;
    (e.languages.css = {
      comment: /\/\*[\s\S]*?\*\//,
      atrule: {
        pattern: RegExp(
          "@[\\w-](?:" +
            /[^;{\s"']|\s+(?!\s)/.source +
            "|" +
            t.source +
            ")*?" +
            /(?:;|(?=\s*\{))/.source
        ),
        inside: {
          rule: /^@[\w-]+/,
          "selector-function-argument": {
            pattern:
              /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,
            lookbehind: !0,
            alias: "selector",
          },
          keyword: {
            pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/,
            lookbehind: !0,
          },
        },
      },
      url: {
        pattern: RegExp(
          "\\burl\\((?:" +
            t.source +
            "|" +
            /(?:[^\\\r\n()"']|\\[\s\S])*/.source +
            ")\\)",
          "i"
        ),
        greedy: !0,
        inside: {
          function: /^url/i,
          punctuation: /^\(|\)$/,
          string: { pattern: RegExp("^" + t.source + "$"), alias: "url" },
        },
      },
      selector: {
        pattern: RegExp(
          "(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|" +
            t.source +
            ")*(?=\\s*\\{)"
        ),
        lookbehind: !0,
      },
      string: { pattern: t, greedy: !0 },
      property: {
        pattern:
          /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,
        lookbehind: !0,
      },
      important: /!important\b/i,
      function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i, lookbehind: !0 },
      punctuation: /[(){};:,]/,
    }),
      (e.languages.css.atrule.inside.rest = e.languages.css);
    var n = e.languages.markup;
    n && (n.tag.addInlined("style", "css"), n.tag.addAttribute("style", "css"));
  })(Prism),
  (Prism.languages.clike = {
    comment: [
      {
        pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
        lookbehind: !0,
        greedy: !0,
      },
      { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 },
    ],
    string: {
      pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
      greedy: !0,
    },
    "class-name": {
      pattern:
        /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,
      lookbehind: !0,
      inside: { punctuation: /[.\\]/ },
    },
    keyword:
      /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,
    boolean: /\b(?:false|true)\b/,
    function: /\b\w+(?=\()/,
    number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
    operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
    punctuation: /[{}[\];(),.:]/,
  }),
  (Prism.languages.javascript = Prism.languages.extend("clike", {
    "class-name": [
      Prism.languages.clike["class-name"],
      {
        pattern:
          /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,
        lookbehind: !0,
      },
    ],
    keyword: [
      { pattern: /((?:^|\})\s*)catch\b/, lookbehind: !0 },
      {
        pattern:
          /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
        lookbehind: !0,
      },
    ],
    function:
      /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
    number: {
      pattern: RegExp(
        /(^|[^\w$])/.source +
          "(?:" +
          /NaN|Infinity/.source +
          "|" +
          /0[bB][01]+(?:_[01]+)*n?/.source +
          "|" +
          /0[oO][0-7]+(?:_[0-7]+)*n?/.source +
          "|" +
          /0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source +
          "|" +
          /\d+(?:_\d+)*n/.source +
          "|" +
          /(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/
            .source +
          ")" +
          /(?![\w$])/.source
      ),
      lookbehind: !0,
    },
    operator:
      /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,
  })),
  (Prism.languages.javascript["class-name"][0].pattern =
    /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/),
  Prism.languages.insertBefore("javascript", "keyword", {
    regex: {
      pattern: RegExp(
        /((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source +
          /\//.source +
          "(?:" +
          /(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/
            .source +
          "|" +
          /(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/
            .source +
          ")" +
          /(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/
            .source
      ),
      lookbehind: !0,
      greedy: !0,
      inside: {
        "regex-source": {
          pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
          lookbehind: !0,
          alias: "language-regex",
          inside: Prism.languages.regex,
        },
        "regex-delimiter": /^\/|\/$/,
        "regex-flags": /^[a-z]+$/,
      },
    },
    "function-variable": {
      pattern:
        /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
      alias: "function",
    },
    parameter: [
      {
        pattern:
          /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
        lookbehind: !0,
        inside: Prism.languages.javascript,
      },
      {
        pattern:
          /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
        lookbehind: !0,
        inside: Prism.languages.javascript,
      },
      {
        pattern:
          /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
        lookbehind: !0,
        inside: Prism.languages.javascript,
      },
      {
        pattern:
          /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
        lookbehind: !0,
        inside: Prism.languages.javascript,
      },
    ],
    constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/,
  }),
  Prism.languages.insertBefore("javascript", "string", {
    hashbang: { pattern: /^#!.*/, greedy: !0, alias: "comment" },
    "template-string": {
      pattern:
        /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,
      greedy: !0,
      inside: {
        "template-punctuation": { pattern: /^`|`$/, alias: "string" },
        interpolation: {
          pattern:
            /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,
          lookbehind: !0,
          inside: {
            "interpolation-punctuation": {
              pattern: /^\$\{|\}$/,
              alias: "punctuation",
            },
            rest: Prism.languages.javascript,
          },
        },
        string: /[\s\S]+/,
      },
    },
    "string-property": {
      pattern:
        /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,
      lookbehind: !0,
      greedy: !0,
      alias: "property",
    },
  }),
  Prism.languages.insertBefore("javascript", "operator", {
    "literal-property": {
      pattern:
        /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,
      lookbehind: !0,
      alias: "property",
    },
  }),
  Prism.languages.markup &&
    (Prism.languages.markup.tag.addInlined("script", "javascript"),
    Prism.languages.markup.tag.addAttribute(
      /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/
        .source,
      "javascript"
    )),
  (Prism.languages.js = Prism.languages.javascript),
  (function (e) {
    e.languages.diff = {
      coord: [/^(?:\*{3}|-{3}|\+{3}).*$/m, /^@@.*@@$/m, /^\d.*$/m],
    };
    var t = {
      "deleted-sign": "-",
      "deleted-arrow": "<",
      "inserted-sign": "+",
      "inserted-arrow": ">",
      unchanged: " ",
      diff: "!",
    };
    Object.keys(t).forEach(function (n) {
      var r = t[n],
        a = [];
      /^\w+$/.test(n) || a.push(/\w+/.exec(n)[0]),
        "diff" === n && a.push("bold"),
        (e.languages.diff[n] = {
          pattern: RegExp("^(?:[" + r + "].*(?:\r\n?|\n|(?![\\s\\S])))+", "m"),
          alias: a,
          inside: {
            line: { pattern: /(.)(?=[\s\S]).*(?:\r\n?|\n)?/, lookbehind: !0 },
            prefix: { pattern: /[\s\S]/, alias: /\w+/.exec(n)[0] },
          },
        });
    }),
      Object.defineProperty(e.languages.diff, "PREFIXES", { value: t });
  })(Prism),
  (function () {
    if (
      void 0 !== Prism &&
      "undefined" != typeof document &&
      document.querySelector
    ) {
      var e,
        t = "linkable-line-numbers",
        n = /\n(?!$)/g,
        r = function () {
          if (void 0 === e) {
            var t = document.createElement("div");
            (t.style.fontSize = "13px"),
              (t.style.lineHeight = "1.5"),
              (t.style.padding = "0"),
              (t.style.border = "0"),
              (t.innerHTML = "&nbsp;<br />&nbsp;"),
              document.body.appendChild(t),
              (e = 38 === t.offsetHeight),
              document.body.removeChild(t);
          }
          return e;
        },
        a = !0;
      Prism.plugins.lineHighlight = {
        highlightLines: function (e, i, u) {
          var c = (i =
              "string" == typeof i ? i : e.getAttribute("data-line") || "")
              .replace(/\s+/g, "")
              .split(",")
              .filter(Boolean),
            p = +e.getAttribute("data-line-offset") || 0,
            g = (r() ? parseInt : parseFloat)(getComputedStyle(e).lineHeight),
            d = Prism.util.isActive(e, "line-numbers"),
            m = e.querySelector("code"),
            f = d ? e : m || e,
            h = [],
            v = m.textContent.match(n),
            b = v ? v.length + 1 : 1,
            k =
              m && f != m
                ? (function (e, t) {
                    var n = getComputedStyle(e),
                      r = getComputedStyle(t);
                    function a(e) {
                      return +e.substr(0, e.length - 2);
                    }
                    return (
                      t.offsetTop +
                      a(r.borderTopWidth) +
                      a(r.paddingTop) -
                      a(n.paddingTop)
                    );
                  })(e, m)
                : 0;
          c.forEach(function (t) {
            var n = t.split("-"),
              r = +n[0],
              a = +n[1] || r;
            if (!((a = Math.min(b + p, a)) < r)) {
              var i =
                e.querySelector('.line-highlight[data-range="' + t + '"]') ||
                document.createElement("div");
              if (
                (h.push(function () {
                  i.setAttribute("aria-hidden", "true"),
                    i.setAttribute("data-range", t),
                    (i.className = (u || "") + " line-highlight");
                }),
                d && Prism.plugins.lineNumbers)
              ) {
                var s = Prism.plugins.lineNumbers.getLine(e, r),
                  l = Prism.plugins.lineNumbers.getLine(e, a);
                if (s) {
                  var o = s.offsetTop + k + "px";
                  h.push(function () {
                    i.style.top = o;
                  });
                }
                if (l) {
                  var c = l.offsetTop - s.offsetTop + l.offsetHeight + "px";
                  h.push(function () {
                    i.style.height = c;
                  });
                }
              } else
                h.push(function () {
                  i.setAttribute("data-start", String(r)),
                    a > r && i.setAttribute("data-end", String(a)),
                    (i.style.top = (r - p - 1) * g + k + "px"),
                    (i.textContent = new Array(a - r + 2).join(" \n"));
                });
              h.push(function () {
                i.style.width = e.scrollWidth + "px";
              }),
                h.push(function () {
                  f.appendChild(i);
                });
            }
          });
          var y = e.id;
          if (d && Prism.util.isActive(e, t) && y) {
            l(e, t) ||
              h.push(function () {
                e.classList.add(t);
              });
            var x = parseInt(e.getAttribute("data-start") || "1");
            s(".line-numbers-rows > span", e).forEach(function (e, t) {
              var n = t + x;
              e.onclick = function () {
                var e = y + "." + n;
                (a = !1),
                  (location.hash = e),
                  setTimeout(function () {
                    a = !0;
                  }, 1);
              };
            });
          }
          return function () {
            h.forEach(o);
          };
        },
      };
      var i = 0;
      Prism.hooks.add("before-sanity-check", function (e) {
        var t = e.element.parentElement;
        if (u(t)) {
          var n = 0;
          s(".line-highlight", t).forEach(function (e) {
            (n += e.textContent.length), e.parentNode.removeChild(e);
          }),
            n &&
              /^(?: \n)+$/.test(e.code.slice(-n)) &&
              (e.code = e.code.slice(0, -n));
        }
      }),
        Prism.hooks.add("complete", function e(t) {
          var n = t.element.parentElement;
          if (u(n)) {
            clearTimeout(i);
            var r = Prism.plugins.lineNumbers,
              a = t.plugins && t.plugins.lineNumbers;
            if (l(n, "line-numbers") && r && !a)
              Prism.hooks.add("line-numbers", e);
            else
              Prism.plugins.lineHighlight.highlightLines(n)(),
                (i = setTimeout(c, 1));
          }
        }),
        window.addEventListener("hashchange", c),
        window.addEventListener("resize", function () {
          s("pre")
            .filter(u)
            .map(function (e) {
              return Prism.plugins.lineHighlight.highlightLines(e);
            })
            .forEach(o);
        });
    }
    function s(e, t) {
      return Array.prototype.slice.call((t || document).querySelectorAll(e));
    }
    function l(e, t) {
      return e.classList.contains(t);
    }
    function o(e) {
      e();
    }
    function u(e) {
      return (
        !(!e || !/pre/i.test(e.nodeName)) &&
        (!!e.hasAttribute("data-line") ||
          !(!e.id || !Prism.util.isActive(e, t)))
      );
    }
    function c() {
      var e = location.hash.slice(1);
      s(".temporary.line-highlight").forEach(function (e) {
        e.parentNode.removeChild(e);
      });
      var t = (e.match(/\.([\d,-]+)$/) || [, ""])[1];
      if (t && !document.getElementById(e)) {
        var n = e.slice(0, e.lastIndexOf(".")),
          r = document.getElementById(n);
        if (r)
          r.hasAttribute("data-line") || r.setAttribute("data-line", ""),
            Prism.plugins.lineHighlight.highlightLines(r, t, "temporary ")(),
            a &&
              document
                .querySelector(".temporary.line-highlight")
                .scrollIntoView();
      }
    }
  })(),
  (function () {
    if (void 0 !== Prism && "undefined" != typeof document) {
      var e = /\n(?!$)/g,
        t = (Prism.plugins.lineNumbers = {
          getLine: function (e, t) {
            if ("PRE" === e.tagName && e.classList.contains("line-numbers")) {
              var n = e.querySelector(".line-numbers-rows");
              if (n) {
                var r = parseInt(e.getAttribute("data-start"), 10) || 1,
                  a = r + (n.children.length - 1);
                t < r && (t = r), t > a && (t = a);
                var i = t - r;
                return n.children[i];
              }
            }
          },
          resize: function (e) {
            r([e]);
          },
          assumeViewportIndependence: !0,
        }),
        n = void 0;
      window.addEventListener("resize", function () {
        (t.assumeViewportIndependence && n === window.innerWidth) ||
          ((n = window.innerWidth),
          r(
            Array.prototype.slice.call(
              document.querySelectorAll("pre.line-numbers")
            )
          ));
      }),
        Prism.hooks.add("complete", function (t) {
          if (t.code) {
            var n = t.element,
              a = n.parentNode;
            if (
              a &&
              /pre/i.test(a.nodeName) &&
              !n.querySelector(".line-numbers-rows") &&
              Prism.util.isActive(n, "line-numbers")
            ) {
              n.classList.remove("line-numbers"),
                a.classList.add("line-numbers");
              var i,
                s = t.code.match(e),
                l = s ? s.length + 1 : 1,
                o = new Array(l + 1).join("<span></span>");
              (i = document.createElement("span")).setAttribute(
                "aria-hidden",
                "true"
              ),
                (i.className = "line-numbers-rows"),
                (i.innerHTML = o),
                a.hasAttribute("data-start") &&
                  (a.style.counterReset =
                    "linenumber " +
                    (parseInt(a.getAttribute("data-start"), 10) - 1)),
                t.element.appendChild(i),
                r([a]),
                Prism.hooks.run("line-numbers", t);
            }
          }
        }),
        Prism.hooks.add("line-numbers", function (e) {
          (e.plugins = e.plugins || {}), (e.plugins.lineNumbers = !0);
        });
    }
    function r(t) {
      if (
        0 !=
        (t = t.filter(function (e) {
          var t = (function (e) {
            if (!e) return null;
            return window.getComputedStyle
              ? getComputedStyle(e)
              : e.currentStyle || null;
          })(e)["white-space"];
          return "pre-wrap" === t || "pre-line" === t;
        })).length
      ) {
        var n = t
          .map(function (t) {
            var n = t.querySelector("code"),
              r = t.querySelector(".line-numbers-rows");
            if (n && r) {
              var a = t.querySelector(".line-numbers-sizer"),
                i = n.textContent.split(e);
              a ||
                (((a = document.createElement("span")).className =
                  "line-numbers-sizer"),
                n.appendChild(a)),
                (a.innerHTML = "0"),
                (a.style.display = "block");
              var s = a.getBoundingClientRect().height;
              return (
                (a.innerHTML = ""),
                {
                  element: t,
                  lines: i,
                  lineHeights: [],
                  oneLinerHeight: s,
                  sizer: a,
                }
              );
            }
          })
          .filter(Boolean);
        n.forEach(function (e) {
          var t = e.sizer,
            n = e.lines,
            r = e.lineHeights,
            a = e.oneLinerHeight;
          (r[n.length - 1] = void 0),
            n.forEach(function (e, n) {
              if (e && e.length > 1) {
                var i = t.appendChild(document.createElement("span"));
                (i.style.display = "block"), (i.textContent = e);
              } else r[n] = a;
            });
        }),
          n.forEach(function (e) {
            for (
              var t = e.sizer, n = e.lineHeights, r = 0, a = 0;
              a < n.length;
              a++
            )
              void 0 === n[a] &&
                (n[a] = t.children[r++].getBoundingClientRect().height);
          }),
          n.forEach(function (e) {
            var t = e.sizer,
              n = e.element.querySelector(".line-numbers-rows");
            (t.style.display = "none"),
              (t.innerHTML = ""),
              e.lineHeights.forEach(function (e, t) {
                n.children[t].style.height = e + "px";
              });
          });
      }
    }
  })(),
  (function () {
    if (void 0 !== Prism && "undefined" != typeof document) {
      var e = {
          javascript: "clike",
          actionscript: "javascript",
          apex: ["clike", "sql"],
          arduino: "cpp",
          aspnet: ["markup", "csharp"],
          birb: "clike",
          bison: "c",
          c: "clike",
          csharp: "clike",
          cpp: "c",
          cfscript: "clike",
          chaiscript: ["clike", "cpp"],
          cilkc: "c",
          cilkcpp: "cpp",
          coffeescript: "javascript",
          crystal: "ruby",
          "css-extras": "css",
          d: "clike",
          dart: "clike",
          django: "markup-templating",
          ejs: ["javascript", "markup-templating"],
          etlua: ["lua", "markup-templating"],
          erb: ["ruby", "markup-templating"],
          fsharp: "clike",
          "firestore-security-rules": "clike",
          flow: "javascript",
          ftl: "markup-templating",
          gml: "clike",
          glsl: "c",
          go: "clike",
          gradle: "clike",
          groovy: "clike",
          haml: "ruby",
          handlebars: "markup-templating",
          haxe: "clike",
          hlsl: "c",
          idris: "haskell",
          java: "clike",
          javadoc: ["markup", "java", "javadoclike"],
          jolie: "clike",
          jsdoc: ["javascript", "javadoclike", "typescript"],
          "js-extras": "javascript",
          json5: "json",
          jsonp: "json",
          "js-templates": "javascript",
          kotlin: "clike",
          latte: ["clike", "markup-templating", "php"],
          less: "css",
          lilypond: "scheme",
          liquid: "markup-templating",
          markdown: "markup",
          "markup-templating": "markup",
          mongodb: "javascript",
          n4js: "javascript",
          objectivec: "c",
          opencl: "c",
          parser: "markup",
          php: "markup-templating",
          phpdoc: ["php", "javadoclike"],
          "php-extras": "php",
          plsql: "sql",
          processing: "clike",
          protobuf: "clike",
          pug: ["markup", "javascript"],
          purebasic: "clike",
          purescript: "haskell",
          qsharp: "clike",
          qml: "javascript",
          qore: "clike",
          racket: "scheme",
          cshtml: ["markup", "csharp"],
          jsx: ["markup", "javascript"],
          tsx: ["jsx", "typescript"],
          reason: "clike",
          ruby: "clike",
          sass: "css",
          scss: "css",
          scala: "java",
          "shell-session": "bash",
          smarty: "markup-templating",
          solidity: "clike",
          soy: "markup-templating",
          sparql: "turtle",
          sqf: "clike",
          squirrel: "clike",
          stata: ["mata", "java", "python"],
          "t4-cs": ["t4-templating", "csharp"],
          "t4-vb": ["t4-templating", "vbnet"],
          tap: "yaml",
          tt2: ["clike", "markup-templating"],
          textile: "markup",
          twig: "markup-templating",
          typescript: "javascript",
          v: "clike",
          vala: "clike",
          vbnet: "basic",
          velocity: "markup",
          wiki: "markup",
          xeora: "markup",
          "xml-doc": "markup",
          xquery: "markup",
        },
        t = {
          html: "markup",
          xml: "markup",
          svg: "markup",
          mathml: "markup",
          ssml: "markup",
          atom: "markup",
          rss: "markup",
          js: "javascript",
          g4: "antlr4",
          ino: "arduino",
          "arm-asm": "armasm",
          art: "arturo",
          adoc: "asciidoc",
          avs: "avisynth",
          avdl: "avro-idl",
          gawk: "awk",
          sh: "bash",
          shell: "bash",
          shortcode: "bbcode",
          rbnf: "bnf",
          oscript: "bsl",
          cs: "csharp",
          dotnet: "csharp",
          cfc: "cfscript",
          "cilk-c": "cilkc",
          "cilk-cpp": "cilkcpp",
          cilk: "cilkcpp",
          coffee: "coffeescript",
          conc: "concurnas",
          jinja2: "django",
          "dns-zone": "dns-zone-file",
          dockerfile: "docker",
          gv: "dot",
          eta: "ejs",
          xlsx: "excel-formula",
          xls: "excel-formula",
          gamemakerlanguage: "gml",
          po: "gettext",
          gni: "gn",
          ld: "linker-script",
          "go-mod": "go-module",
          hbs: "handlebars",
          mustache: "handlebars",
          hs: "haskell",
          idr: "idris",
          gitignore: "ignore",
          hgignore: "ignore",
          npmignore: "ignore",
          webmanifest: "json",
          kt: "kotlin",
          kts: "kotlin",
          kum: "kumir",
          tex: "latex",
          context: "latex",
          ly: "lilypond",
          emacs: "lisp",
          elisp: "lisp",
          "emacs-lisp": "lisp",
          md: "markdown",
          moon: "moonscript",
          n4jsd: "n4js",
          nani: "naniscript",
          objc: "objectivec",
          qasm: "openqasm",
          objectpascal: "pascal",
          px: "pcaxis",
          pcode: "peoplecode",
          plantuml: "plant-uml",
          pq: "powerquery",
          mscript: "powerquery",
          pbfasm: "purebasic",
          purs: "purescript",
          py: "python",
          qs: "qsharp",
          rkt: "racket",
          razor: "cshtml",
          rpy: "renpy",
          res: "rescript",
          robot: "robotframework",
          rb: "ruby",
          "sh-session": "shell-session",
          shellsession: "shell-session",
          smlnj: "sml",
          sol: "solidity",
          sln: "solution-file",
          rq: "sparql",
          sclang: "supercollider",
          t4: "t4-cs",
          trickle: "tremor",
          troy: "tremor",
          trig: "turtle",
          ts: "typescript",
          tsconfig: "typoscript",
          uscript: "unrealscript",
          uc: "unrealscript",
          url: "uri",
          vb: "visual-basic",
          vba: "visual-basic",
          webidl: "web-idl",
          mathematica: "wolfram",
          nb: "wolfram",
          wl: "wolfram",
          xeoracube: "xeora",
          yml: "yaml",
        },
        n = {},
        r =
          (Prism.util.currentScript(),
          (Prism.plugins.autoloader = {
            languages_path: "/public/assets/prism/components/",
            use_minified: !0,
            loadLanguages: i,
          }));
      Prism.hooks.add("complete", function (e) {
        var t = e.element,
          n = e.language;
        if (t && n && "none" !== n) {
          var r = (function (e) {
            var t = (e.getAttribute("data-dependencies") || "").trim();
            if (!t) {
              var n = e.parentElement;
              n &&
                "pre" === n.tagName.toLowerCase() &&
                (t = (n.getAttribute("data-dependencies") || "").trim());
            }
            return t ? t.split(/\s*,\s*/g) : [];
          })(t);
          /^diff-./i.test(n)
            ? (r.push("diff"), r.push(n.substr("diff-".length)))
            : r.push(n),
            r.every(a) ||
              i(r, function () {
                Prism.highlightElement(t);
              });
        }
      });
    }
    function a(e) {
      if (e.indexOf("!") >= 0) return !1;
      if ((e = t[e] || e) in Prism.languages) return !0;
      var r = n[e];
      return r && !r.error && !1 === r.loading;
    }
    function i(l, o, u) {
      "string" == typeof l && (l = [l]);
      var c = l.length,
        p = 0,
        g = !1;
      function d() {
        g || (++p === c && o && o(l));
      }
      0 !== c
        ? l.forEach(function (l) {
            !(function (l, o, u) {
              var c = l.indexOf("!") >= 0;
              function p() {
                var e = n[l];
                e || (e = n[l] = { callbacks: [] }),
                  e.callbacks.push({ success: o, error: u }),
                  !c && a(l)
                    ? s(l, "success")
                    : !c && e.error
                    ? s(l, "error")
                    : (!c && e.loading) ||
                      ((e.loading = !0),
                      (e.error = !1),
                      (function (e, t, n) {
                        var r = document.createElement("script");
                        (r.src = e),
                          (r.async = !0),
                          (r.onload = function () {
                            document.body.removeChild(r), t && t();
                          }),
                          (r.onerror = function () {
                            document.body.removeChild(r), n && n();
                          }),
                          document.body.appendChild(r);
                      })(
                        (function (e) {
                          return (
                            r.languages_path +
                            "prism-" +
                            e +
                            (r.use_minified ? ".min" : "") +
                            ".js"
                          );
                        })(l),
                        function () {
                          (e.loading = !1), s(l, "success");
                        },
                        function () {
                          (e.loading = !1), (e.error = !0), s(l, "error");
                        }
                      ));
              }
              (l = l.replace("!", "")), (l = t[l] || l);
              var g = e[l];
              g && g.length ? i(g, p, u) : p();
            })(l, d, function () {
              g || ((g = !0), u && u(l));
            });
          })
        : o && setTimeout(o, 0);
    }
    function s(e, t) {
      if (n[e]) {
        for (var r = n[e].callbacks, a = 0, i = r.length; a < i; a++) {
          var s = r[a][t];
          s && setTimeout(s, 0);
        }
        r.length = 0;
      }
    }
  })(),
  (function () {
    if (void 0 !== Prism) {
      var e =
          Object.assign ||
          function (e, t) {
            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
            return e;
          },
        t = {
          "remove-trailing": "boolean",
          "remove-indent": "boolean",
          "left-trim": "boolean",
          "right-trim": "boolean",
          "break-lines": "number",
          indent: "number",
          "remove-initial-line-feed": "boolean",
          "tabs-to-spaces": "number",
          "spaces-to-tabs": "number",
        };
      (n.prototype = {
        setDefaults: function (t) {
          this.defaults = e(this.defaults, t);
        },
        normalize: function (t, n) {
          for (var r in (n = e(this.defaults, n))) {
            var a = r.replace(/-(\w)/g, function (e, t) {
              return t.toUpperCase();
            });
            "normalize" !== r &&
              "setDefaults" !== a &&
              n[r] &&
              this[a] &&
              (t = this[a].call(this, t, n[r]));
          }
          return t;
        },
        leftTrim: function (e) {
          return e.replace(/^\s+/, "");
        },
        rightTrim: function (e) {
          return e.replace(/\s+$/, "");
        },
        tabsToSpaces: function (e, t) {
          return (t = 0 | t || 4), e.replace(/\t/g, new Array(++t).join(" "));
        },
        spacesToTabs: function (e, t) {
          return (t = 0 | t || 4), e.replace(RegExp(" {" + t + "}", "g"), "\t");
        },
        removeTrailing: function (e) {
          return e.replace(/\s*?$/gm, "");
        },
        removeInitialLineFeed: function (e) {
          return e.replace(/^(?:\r?\n|\r)/, "");
        },
        removeIndent: function (e) {
          var t = e.match(/^[^\S\n\r]*(?=\S)/gm);
          return t && t[0].length
            ? (t.sort(function (e, t) {
                return e.length - t.length;
              }),
              t[0].length ? e.replace(RegExp("^" + t[0], "gm"), "") : e)
            : e;
        },
        indent: function (e, t) {
          return e.replace(
            /^[^\S\n\r]*(?=\S)/gm,
            new Array(++t).join("\t") + "$&"
          );
        },
        breakLines: function (e, t) {
          t = !0 === t ? 80 : 0 | t || 80;
          for (var n = e.split("\n"), a = 0; a < n.length; ++a)
            if (!(r(n[a]) <= t)) {
              for (
                var i = n[a].split(/(\s+)/g), s = 0, l = 0;
                l < i.length;
                ++l
              ) {
                var o = r(i[l]);
                (s += o) > t && ((i[l] = "\n" + i[l]), (s = o));
              }
              n[a] = i.join("");
            }
          return n.join("\n");
        },
      }),
        "undefined" != typeof module && module.exports && (module.exports = n),
        (Prism.plugins.NormalizeWhitespace = new n({
          "remove-trailing": !0,
          "remove-indent": !0,
          "left-trim": !0,
          "right-trim": !0,
        })),
        Prism.hooks.add("before-sanity-check", function (e) {
          var n = Prism.plugins.NormalizeWhitespace;
          if (
            (!e.settings || !1 !== e.settings["whitespace-normalization"]) &&
            Prism.util.isActive(e.element, "whitespace-normalization", !0)
          )
            if ((e.element && e.element.parentNode) || !e.code) {
              var r = e.element.parentNode;
              if (e.code && r && "pre" === r.nodeName.toLowerCase()) {
                for (var a in (null == e.settings && (e.settings = {}), t))
                  if (Object.hasOwnProperty.call(t, a)) {
                    var i = t[a];
                    if (r.hasAttribute("data-" + a))
                      try {
                        var s = JSON.parse(
                          r.getAttribute("data-" + a) || "true"
                        );
                        typeof s === i && (e.settings[a] = s);
                      } catch (e) {}
                  }
                for (
                  var l = r.childNodes, o = "", u = "", c = !1, p = 0;
                  p < l.length;
                  ++p
                ) {
                  var g = l[p];
                  g == e.element
                    ? (c = !0)
                    : "#text" === g.nodeName &&
                      (c ? (u += g.nodeValue) : (o += g.nodeValue),
                      r.removeChild(g),
                      --p);
                }
                if (e.element.children.length && Prism.plugins.KeepMarkup) {
                  var d = o + e.element.innerHTML + u;
                  (e.element.innerHTML = n.normalize(d, e.settings)),
                    (e.code = e.element.textContent);
                } else
                  (e.code = o + e.code + u),
                    (e.code = n.normalize(e.code, e.settings));
              }
            } else e.code = n.normalize(e.code, e.settings);
        });
    }
    function n(t) {
      this.defaults = e({}, t);
    }
    function r(e) {
      for (var t = 0, n = 0; n < e.length; ++n)
        e.charCodeAt(n) == "\t".charCodeAt(0) && (t += 3);
      return e.length + t;
    }
  })(),
  (function () {
    if (void 0 !== Prism) {
      var e = /^diff-([\w-]+)/i,
        t =
          /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/g,
        n = RegExp(
          /(?:__|[^\r\n<])*(?:\r\n?|\n|(?:__|[^\r\n<])(?![^\r\n]))/.source.replace(
            /__/g,
            function () {
              return t.source;
            }
          ),
          "gi"
        ),
        r = !1;
      Prism.hooks.add("before-sanity-check", function (t) {
        var n = t.language;
        e.test(n) &&
          !t.grammar &&
          (t.grammar = Prism.languages[n] = Prism.languages.diff);
      }),
        Prism.hooks.add("before-tokenize", function (t) {
          r ||
            Prism.languages.diff ||
            Prism.plugins.autoloader ||
            ((r = !0),
            console.warn(
              "Prism's Diff Highlight plugin requires the Diff language definition (prism-diff.js).Make sure the language definition is loaded or use Prism's Autoloader plugin."
            ));
          var n = t.language;
          e.test(n) &&
            !Prism.languages[n] &&
            (Prism.languages[n] = Prism.languages.diff);
        }),
        Prism.hooks.add("wrap", function (r) {
          var a, i;
          if ("diff" !== r.language) {
            var s = e.exec(r.language);
            if (!s) return;
            (a = s[1]), (i = Prism.languages[a]);
          }
          var l = Prism.languages.diff && Prism.languages.diff.PREFIXES;
          if (l && r.type in l) {
            var o,
              u = r.content
                .replace(t, "")
                .replace(/&lt;/g, "<")
                .replace(/&amp;/g, "&"),
              c = u.replace(/(^|[\r\n])./g, "$1");
            o = i ? Prism.highlight(c, i, a) : Prism.util.encode(c);
            var p,
              g = new Prism.Token("prefix", l[r.type], [/\w+/.exec(r.type)[0]]),
              d = Prism.Token.stringify(g, r.language),
              m = [];
            for (n.lastIndex = 0; (p = n.exec(o)); ) m.push(d + p[0]);
            /(?:^|[\r\n]).$/.test(u) && m.push(d),
              (r.content = m.join("")),
              i && r.classes.push("language-" + a);
          }
        });
    }
  })();